Ao longo dos anos, a teoria da cadeia de aplicações foi implementada de várias maneiras. A necessidade de modularidade aumentou ao longo do tempo, à medida que os desenvolvedores de blockchain perceberam que suas plataformas podem ser dimensionadas de forma mais eficiente terceirizando parte do trabalho envolvido na execução de dApps.
Inicialmente reservada apenas para cadeias soberanas, muitas vezes construídas usando o Interchain Stack, a evolução das cadeias de aplicativos agora inclui cadeias de consumidores que alugam segurança do Cosmos Hub, bem como rollups que dependem de cadeias de camada 1 para realizar algum trabalho de liquidação e ponte, como brilhantemente. Essas mudanças trazem diferentes suposições e questões de segurança que precisam ser abordadas. Celestia pretende resolver um problema especial chamado disponibilidade de dados, mas antes de explicarmos como esse problema se relaciona com o seu projeto, vamos tentar entender a última palavra da moda na Web3: modularidade.
O trabalho realizado pelas cadeias de camada única 1, incluindo Ethereum e cadeias soberanas #Cosmos , pode ser dividido aproximadamente em 4 camadas:
A camada de execução processa as transações e é responsável por atualizar o estado da cadeia. Por exemplo: atualize o saldo da sua carteira quando um amigo lhe enviar tokens.
A camada de ponte de liquidação é responsável por concluir a transação, ou melhor, confirmar, além de qualquer dúvida razoável, que a transação é válida. Isto se aplica particularmente à sumarização, que abordaremos mais tarde. Recentemente, a camada de liquidação tem sido mais comumente vista como uma camada de ponte, fornecendo uma maneira para os Rollups se comunicarem com a rede blockchain mais ampla, enquanto a liquidação em si se tornou um tópico mais controverso. Em redes regulares como a Cosmos Application Chain, a liquidação é gratuita porque a camada de consenso valida efetivamente cada transação antes que ela chegue à camada de execução.
A camada de consenso é onde várias partes concordam sobre o que um bloco contém e como as suas transações devem ser ordenadas.
A camada de disponibilidade de dados é responsável por garantir que todos tenham acesso às transações corretas que foram submetidas à rede. Como explicaremos mais adiante, a camada de liquidação precisa de acesso a essas transações para verificar se a camada de execução é honesta.
No contexto de uma cadeia baseada no Cosmos SDK (que possui seu próprio conjunto de validadores e funciona como uma cadeia de aplicativos soberana), a camada de consenso é basicamente responsável pela disponibilidade dos dados e pela liquidação final das transações. No entanto, o lançamento de uma cadeia soberana exige que você tenha um conjunto de validadores e um token de prova de participação, a menos que você escolha uma solução de segurança compartilhada como a Interchain Security. Além das complexidades legais e operacionais de lançar uma cadeia com um token, há também considerações de escalabilidade a ter em conta.
Dimensionamento eficiente por meio de agregação
À medida que a web cresce, o trilema da escalabilidade torna-se mais aparente. À primeira vista, pode parecer que o blockchain deve fazer sacrifícios em termos de segurança da rede, grau de descentralização ou número de transações que pode processar por segundo. Para as cadeias como um todo, a melhoria de uma cadeia tem sido tradicionalmente feita às custas da outra. Porém, através do trabalho realizado em protocolos modulares, podemos perceber que alguns componentes deste trilema são específicos de cada camada da pilha modular.
Por exemplo: uma camada de execução que aceita transações e as processa em mudanças de estado requer um rendimento rápido. Se é descentralizado e seguro é indiscutivelmente irrelevante, desde que existam camadas descentralizadas e seguras de liquidação, consenso e disponibilidade de dados suficientes para garantir e verificar que as transações corretas estão sendo executadas. Um certo grau de descentralização na camada de execução contribui para a vivacidade da rede, mas não é fundamental para prevenir qualquer forma de má conduta. Em outras palavras, não afeta nenhuma suposição de confiança sobre a rede.
Com uma pilha modular de blockchain, os desenvolvedores podem terceirizar a maior parte do trabalho necessário para operar um blockchain. Os desenvolvedores de aplicativos são totalmente responsáveis pela camada de execução, o que aumenta a escalabilidade e reduz significativamente o tempo de desenvolvimento. É essencialmente por isso que os rollups são tão eficazes e populares no momento. Rollup, muitas vezes referido como Camada 2, permite que um ou mais servidores executem transações fora da cadeia sem esperar que um algoritmo de consenso lento chegue a um acordo sobre o conteúdo de um bloco. Isto pode parecer inseguro, mas eles poderiam fazê-lo sem incorrer em riscos significativos, fornecendo provas de validade computacionalmente dispendiosas no caso da chamada agregação de conhecimento zero (ZK), ou fornecendo uma janela de tempo em que os nós onde os operadores podem enviar provas do fracasso como evidência de que alguém agiu de forma inadequada, como é o caso da agregação otimista. Contudo, neste quadro, surge um novo problema: a questão da disponibilidade dos dados.
O que é um problema de disponibilidade de dados?
Quando um usuário envia uma transação no rollup, a mensagem é enviada diretamente para o sequenciador, que geralmente é apenas um computador muito rápido que agrupa essas transações em lotes por meio de um processo fora da cadeia. Após comprimi-lo para um tamanho menor, o lote é submetido a uma camada de liquidação como o Ethereum. Devido à alta demanda por espaço em bloco nessas redes, esta é uma solução muito mais barata do que publicar transações individuais diretamente na camada de liquidação. Atualmente, a maioria das agregações emprega um único sequenciador (ou seja, uma entidade que realiza a classificação), embora sequenciadores compartilhados estejam sendo explorados. Isso geralmente é seguro porque os usuários podem garantir que a execução de uma transação é válida por meio de uma prova de validade ou de falha que pode ser verificada na camada de liquidação. No entanto, a agregação não oferece garantia de que o sequenciador seja honesto sobre as transações enviadas e envie os mesmos dados para todos.
Esta é a natureza do problema de disponibilidade de dados. A camada de liquidação, ou qualquer nó completo que observe a rede, tem a tarefa de inspecionar o trabalho realizado pela agregação, e para isso são necessários dados de transação. Por padrão, a agregação não pode provar de maneira fácil e barata que o sequenciador processou todas as transações recebidas em um bloco ou que todas as transações que foram adicionadas ao bloco são de domínio público. Como resultado, os sequenciadores podem censurar os dados de transação enviados pelo usuário ou, pior, impedir que sejam verificados pela camada de liquidação.
Embora este tipo de censura possa tecnicamente acontecer também numa blockchain normal, é praticamente impossível devido ao grande número de validadores numa rede de prova de participação e ao facto de apenas um deles precisar de ser honesto. Mas o mais importante é que a camada de liquidação não exige dados para verificação porque a transação já foi liquidada através do processo de consenso.
#Celestia Como resolver este problema?
#Celestia é um blockchain de camada 1 construído usando o Cosmos SDK, fornecendo disponibilidade de dados como um serviço de agregação. Mais comumente, a rede Celestia recebe todas as transações de entrada do usuário do sequenciador, embora também possa ser o primeiro destinatário dessas transações antes de entrarem no rollup para execução, dependendo da configuração do rollup. Vamos usar um exemplo para explicá-lo do ponto de vista da transação. Assumiremos uma rede fictícia chamada Roll Protocol, que é construída como um rollup otimista baseado no Cosmos SDK.
Digamos que você esteja usando o Keplr para enviar alguns tokens $ROLL para seu amigo via Roll Protocol. Uma vez enviada, a transação de envio é primeiro transmitida ao sequenciador do Roll Protocol.
O sequenciador é um computador que executa um processo fora da cadeia do protocolo Roll, que agora analisa todas as transações e as testa em relação ao estado atual do protocolo Roll para ver se são realmente válidas. Para a mensagem que você envia, ele verifica se contém um endereço de destinatário válido, se você tem tokens $ROLL suficientes para enviar ao seu amigo, etc.
As transações válidas são então coletadas em um bloco e executadas pelo sequenciador, o que significa que alterações são feitas em seu armazenamento. O saldo da sua carteira e o do seu amigo serão atualizados para refletir as moedas que estão sendo trocadas.
Este bloco contendo as transações é então compartilhado com o Celestia pelo sequenciador e colocado sob o namespace “Roll Protocol”, que na verdade é apenas um rótulo que facilita a separação dos dados. Os validadores da rede Celestia então concordam com o conteúdo do bloco, que é finalizado na rede e distribuído a todos os nós.
Ao mesmo tempo, todas as transações bem-sucedidas que fazem parte de um bloco são convertidas em lote pelo sequenciador e submetidas à camada de liquidação, que geralmente é apenas um contrato inteligente em uma cadeia de camada 1 como Ethereum. A camada de liquidação é a blockchain para a qual uma prova de falha é enviada se alguém descobrir que uma determinada transação é inválida (por exemplo, você não tem fundos para enviar algumas moedas para seu amigo). Mas quem está fazendo esse trabalho?
Outros nós completos executados por dApps separados (como DEXs) também executarão transações ao mesmo tempo que o sequenciador. Isso permite que eles se mantenham atualizados e forneçam atualizações sobre seu saldo, por exemplo. Além do mais, eles podem verificar antecipadamente se alguma transação é inválida. Nesse caso, uma prova de falha é submetida à camada de liquidação.
Você deve se lembrar que a agregação otimista tem uma janela de tempo antes de uma negociação ser concluída. Contanto que você confie na entidade que opera o nó completo, fazer com que esses nós completos verifiquem a validade com antecedência pode ajudar os usuários a ver as transações como "finais" antes que a janela de otimismo feche. Chamamos esse sistema de “confiança minimizada” porque você só precisa realmente confiar que a rede contém pelo menos um dos muitos nós honestos para pular a janela de tempo otimista.
Para testar se o sequenciador está se comportando mal, os nós completos, bem como a camada de liquidação, precisarão acessar alguns dados publicados no Celestia, pois o sequenciador pode ter executado transações inválidas. Felizmente, a rede Celestia publicou um bloco contendo todas as transações recebidas do Roll Protocol que foram previamente incluídas no lote, por isso estamos confiantes de que temos as informações necessárias para provar a integridade do solicitante, caso seja necessário.
É importante notar que Celestia não se importa com o que cada transação contém. Na verdade, ele nem consegue entender essas transações porque não existe um ambiente de execução no Celestia que use a mesma linguagem. Ao separar estas preocupações através desta pilha modular, o ordenante pode concentrar-se na execução rápida de transacções, a camada de liquidação pode concentrar-se na segurança e fornecer capacidades de ponte, e a camada de consenso e disponibilidade de dados pode concentrar-se na descentralização. Isto melhora muito a escalabilidade e a otimização, garantindo que cada subcomponente responsável pela operação da rede seja altamente especializado.
Embora nosso exemplo use rollups baseados no Cosmos SDK, os rollups compatíveis com EVM não são excluídos. Celestia também funciona como uma camada de disponibilidade de dados para o ecossistema EVM e é indiscutivelmente muito mais barato do que alternativas como EIP-4844 (também conhecido como Danksharding) no Ethereum.
Comparação de agregação e cadeias soberanas
Há muitos benefícios em construir Rollups e usar a rede Celestia. Se você já estiver desenvolvendo interchain, poderá continuar a usar as ferramentas e o software com os quais está familiarizado enquanto aumenta o rendimento do protocolo, eliminando a necessidade de validadores na rede e, potencialmente, até mesmo lançando sem token, se necessário. Vejamos algumas das diferenças entre a construção de rollups e cadeias de aplicativos soberanas:
Escalabilidade e eficiência: Rollups que usam Celestia geralmente fornecem maior escalabilidade e eficiência em comparação com cadeias soberanas do Cosmos SDK. Isso ocorre porque os rollups movem a maior parte do processamento de transações para a Camada 2, permitindo que mais transações sejam processadas mais rapidamente, enquanto as cadeias soberanas são estranguladas pelo algoritmo de consenso. Se a sua aplicação exigir um grande número de transações, um rollup poderá ser mais adequado do que uma cadeia soberana. Nesse caso, sua aplicação precisará gastar tokens na camada de liquidação, o que pode ser caro dependendo da cadeia escolhida, embora o Celestia reduza a quantidade de dados a serem publicados.
Atividade e descentralização: os rollups normalmente são executados usando um único sequenciador. Estão em andamento pesquisas para construir sequenciadores compartilhados eficientes, mas este trabalho ainda está à frente da curva e pode reduzir a eficiência do pooling. Actualmente, a descentralização ao nível da execução não existe de facto. Portanto, se o sequenciador ficar offline, há um risco maior de que a redundância e a vivacidade do rollup sejam afetadas. Mecanismos redundantes podem ser projetados, mas os desenvolvedores de rollup herdam a complexidade da infraestrutura que normalmente é compartilhada por validadores em uma blockchain soberana.
Segurança: Os rollups utilizam a segurança da camada de liquidação subjacente, enquanto a cadeia soberana precisa garantir a segurança da sua própria rede. Se você optar por usar uma cadeia soberana do Cosmos SDK, você vai querer ter certeza de ter um conjunto grande e diversificado de validadores para proteger sua rede, bem como uma capitalização de mercado grande o suficiente (caso você use provas) para apostar seu fichas. Os rollups permitem que você herde a segurança da camada de liquidação, o que pode ser útil se a implementação de alguns dos requisitos de sua cadeia de aplicativos for desafiadora.
Complexidade: construir um sistema Rollup pode ser mais complexo do que criar uma cadeia soberana usando o Cosmos SDK. Isto se deve à necessidade de gerenciar as interações entre rollup, Celestia e a camada de liquidação. Se a sua equipe não tiver experiência em agregação ou não quiser lidar com a complexidade adicional, uma cadeia soberana pode ser uma escolha melhor. No entanto, usar a estrutura Rollkit torna o processo de desenvolvimento muito mais fácil, permitindo construir rollups com relativa facilidade.
Interoperabilidade: As cadeias Cosmos SDK se beneficiam do protocolo Inter-Blockchain Communication (IBC), que permite a interoperabilidade de diferentes cadeias. Embora os rollups possam interagir com outras cadeias, os detalhes dependerão da implementação específica e podem ser mais complexos. Na maioria dos casos, a agregação utiliza uma camada de liquidação como ponto central de ligação.