Grokking Cartesi Rollups — Parte 1

Visão geral do problema da escalabilidade
Frequentemente, a tecnologia blockchain é vista como tendo várias funções cruciais, incluindo consenso, disponibilidade de dados e execução. Até pouco tempo atrás, estas funções eram todas executadas por blockchains individuais como o Ethereum. Essa configuração, conhecida como blockchain monolítico, não é muito escalonável.
As redes monolíticas lutam para escalar sem sacrificar a descentralização, devido às exigências impostas aos nós que validam o estado da rede. Com uma só rede cuidando de todas as funções, o mesmo conjunto de nós é chamado simultaneamente para verificar cada ação, por cada DApp e usuário na rede.
À medida que o uso da tecnologia aumenta, os DApps e os usuários são forçados a competir por espaço de bloco, fazendo com que esse se torne um recurso escasso. O resultado é que aqueles que não conseguem vencer as guerras de apostas por espaço de bloco são excluídos da participação na rede.
Em última análise, esta configuração monolítica acarreta taxas elevadas, representando uma barreira de entrada cada vez maior tanto para projetos como para usuários. Por exemplo, um único NFT popular ou um airdrop antecipado podem tornar a rede inutilizável para os demais.
O que é um Rollup?
Para resolver alguns desses problemas de escalabilidade, a Ethereum adotou, no final de 2020, um roadmap focado em rollup. De forma geral, os rollups de blockchain oferecem às redes da primeira camada (layer 1 — L1) uma maneira de aliviar o congestionamento, delegando certas funções a sistemas executados fora da rede. Os resultados são então adicionados a L1 subjacente, de forma que seja verificável criptograficamente.
A abordagem centrada em rollups do Ethereum estava enraizada na ideia de que as restrições de escalabilidade podem ser divididas em duas questões distintas: escalabilidade de dados e escalabilidade computacional. O que isto significa? Em termos simples, o uso do Ethereum pode ser limitado devido a dois problemas fundamentais: quantos dados a rede pode armazenar e quantas tarefas ela pode processar. Como resultado, o Ethereum mudou seu foco para dimensionar a quantidade de blocos de dados que podem conter, ao mesmo tempo em que delegava a escalabilidade computacional (poder de processamento) para projetos de rollups.
O rollup “compartilhado”
A primeira onda de adoção de rollups começou em 2021, com o lançamento de projetos de segunda camada (layer 2 — L2), como Arbitrum e Optimism, baseados em arquiteturas de rollups “compartilhadas”. Os rollups desses projetos são “compartilhados” no sentido de que cada dApp no protocolo compartilha espaço dentro de um único rollup, com outros dApps implantados na mesmo L2.
Teoricamente, Os DApps implantados em rollups compartilhados ganham poder de computação, desde que a L2 esteja menos congestionado do que a L1 subjacente. Mas há um problema nisso. Com dApps compartilhando espaço dentro do mesmo rollup, ainda existe uma competição entre os dApps pelo poder de processamento dos validadores L2.
Assim como acontece com blockchains monolíticas, períodos de intenso uso em rollups compartilhados de blockchain podem fazer com que as taxas na L2 aumentem para níveis imprevisíveis. Em última análise, uma vez que um rollup compartilhado ganha popularidade suficiente, ele fica vulnerável ao mesmo congestionamento e à mesma dinâmica de custos imposta por um design monolítico.
A abordagem de rollup compartilhado nos traz de volta à estaca zero — embora com um pouco de tempo de reserva.
A chegada de rollups específicos para aplicativos
Buscando obter o máximo de escalabilidade, personalização e previsibilidade de taxas, projetos como a Cartesi foram além das arquiteturas de rollups compartilhados, especializando-se na construção de rollups específicos para aplicativos (comumente chamados de appchains).
Semelhante aos rollups compartilhados, os rollups específicos para aplicativos atuam como uma camada de execução fora da rede, que herda as garantias de segurança e censura da camada base Ethereum. Mas agora, em vez de compartilhar espaço dentro de um único rollup, cada dApp tem seu próprio rollup para processar computação fora da rede.
Essa configuração, além de resolver o problema das guerras de apostas entre os aplicativos, também traz ganhos consideráveis em escalabilidade computacional. Com apenas um aplicativo por rollup, cada dApp comanda todo o poder da computação (não compartilhado) dos validadores encarregados de processar o estado do rollup. Em vez de competir em um jogo de soma zero pelo poder computacional do validador, cada dApp tem sua própria rede de rollups de alto desempenho.
Com esse aumento na capacidade computacional, os DApps implantados em rollups específicos para aplicativos podem começar a reproduzir mais de perto os aplicativos de software tradicionais, em termos de programabilidade, eficiência de custos, previsibilidade de taxas e experiência do usuário.
O cone de inovação da Web3
Uma visão centrada no rollup do Ethereum exige um esforço coletivo. Por sua vez, o Ethereum tem diversas iniciativas em seu roadmap que visam dimensionar a disponibilidade de dados, como EIP4844 e sharding. Mas para que a Web3 atinja todo o seu potencial inovador, os projetos de rollups devem continuar a ultrapassar os limites da computação descentralizada.
A figura acima ajuda a visualizar como o dimensionamento em conjunto da disponibilidade de dados e da computação tem potencial de abrir caminhos para aplicações descentralizadas, que até então eram impossíveis. No eixo x, a disponibilidade de dados melhora com a implementação do EIP4844 e do sharding. No eixo y, a capacidade computacional aumenta à medida que passamos de uma blockchain L1 monolítica para rollups compartilhados, para rollups específicos para aplicativos.
A área cinza-claro no gráfico é o que podemos chamar de Cone de Inovação da Web3. À medida que o dimensionamento avança em ambas as direções, dApps mais complexos tornam-se possíveis. Por outro lado, as áreas escuras fora do cone mostram o que acontece quando a disponibilidade de dados e a computação não aumentam em conjunto.
(Os aplicativos e o posicionamento deles dentro do cone não pretendem ser considerados como verdade. Em vez disso, a figura pretende fornecer uma visão intuitiva do horizonte crescente dos aplicativos descentralizados.)
A principal conclusão é que o aumento na disponibilidade de dados não pode ser utilizado em sua totalidade, sem ganhos simultâneos na capacidade computacional e vice-versa. Ambos precisam crescer juntos se quisermos ultrapassar os limites da inovação na web3.
Rollups específicos para aplicativos são uma solução excelente para dimensionar o poder de computação da rede Ethereum.
Fique ligado na parte 2, na qual iremos nos aprofundar no vasto e novo espaço de design, que se torna possível em virtude da capacidade computacional que os rollups específicos para aplicativos disponibilizam.
Se aprofunde na documentação. Você também pode ficar por dentro de tudo que acontece no ecossistema Cartesi juntando-se a nossa comunidade. Melhor ainda, comece a testar rollups específicos para aplicativos com o novo desafio Honeypot, o primeiro Cartesi Rollup DApp a ser lançado na mainnet!
Faça parte da Cartesi Brasil!
Telegram: https://t.me/cartesiBR
Twitter: https://twitter.com/CartesiBR
Canais oficiais:
Canal de Notícias no Telegram | Telegram | Discord (Comunidade de Desenvolvimento) | Reddit | Twitter | Github | StackOverflow | LinkedIn | Facebook | Instagram | Youtube | Cartesi Improvement Proposal (CIP) | Website Cartesi