A principal vantagem do Web3 é a verificabilidade - os usuários podem verificar como os sistemas realmente operam. Essa característica explica por que muitos dentro e fora da indústria de criptomoedas descrevem o web3 como um passo em direção a um internet mais transparente e verificável.
Ao contrário das plataformas Web2 como o Facebook ou o Instagram, onde os algoritmos e as regras permanecem opacos mesmo quando documentados, os protocolos de criptografia são projetados para total auditabilidade. Mesmo que sejam compartilhados, você não tem a capacidade de verificar se a plataforma opera conforme o especificado. Isso é o oposto da criptografia, onde cada protocolo é projetado para ser o mais auditável possível - ou pelo menos, espera-se que seja.
Hoje, vamos explorar “The Verge”, uma seção da recém-publicada Vitalik’s série de seis partes sobre o futuro do Ethereum, para analisar os passos que o Ethereum está dando em direção à alcançar verificabilidade, sustentabilidade e escalabilidade no futuro. Sob o título “The Verge”, discutiremos como as arquiteturas de blockchain podem ser tornadas mais verificáveis, as inovações que essas mudanças trazem no nível do protocolo e como elas proporcionam aos usuários um ecossistema mais seguro. Vamos começar!
Aplicações Web2 funcionam como “caixas-pretas” – os usuários só podem ver suas entradas e as saídas resultantes, sem visibilidade sobre como a aplicação realmente funciona. Em contraste, os protocolos de criptomoedas geralmente disponibilizam seu código-fonte publicamente, ou pelo menos têm planos para fazê-lo. Essa transparência serve a dois propósitos: permite que os usuários interajam diretamente com o código do protocolo, se assim o desejarem, e os ajuda a entender exatamente como o sistema opera e quais regras o governam.
“Descentralize o que puder, verifique o resto.”
A verificabilidade garante que os sistemas sejam responsáveis e, em muitos casos, garante que os protocolos funcionem como pretendido. Esse princípio destaca a importância de minimizar a centralização, pois muitas vezes leva a estruturas opacas e sem responsabilidade, onde os usuários não podem verificar as operações. Em vez disso, devemos nos esforçar para descentralizar o máximo possível e tornar os elementos restantes verificáveis e responsáveis onde a descentralização não for viável.
A comunidade Ethereum parece alinhar-se com esta perspectiva, como o roteiroinclui um marco (chamado de “The Verge”) com o objetivo de tornar o Ethereum mais verificável. No entanto, antes de mergulhar no The Verge, precisamos entender quais aspectos das blockchains devem ser verificados e quais partes são cruciais do ponto de vista dos usuários.
As blockchains funcionam essencialmente como relógios globais. Em uma rede distribuída com cerca de 10.000 computadores, pode levar uma quantidade significativa de tempo para que uma transação se propague do nó de origem para todos os outros nós. Por essa razão, os nós em toda a rede não podem determinar a ordem exata das transações - se uma chegou antes ou depois de outra - uma vez que eles têm apenas suas próprias perspectivas subjetivas.
Devido à importância da ordem das transações, as redes blockchain utilizam métodos especializados chamados “algoritmos de consenso” para garantir que os nós permaneçam sincronizados e processem sequências de transações na mesma ordem. Embora os nós não possam determinar a ordem da transação globalmente, os mecanismos de consenso permitem que todos os nós concordem com a mesma sequência, permitindo que a rede funcione como um único e coeso computador.
Além da camada de consenso, há também a camada de execução que existe em todas as blockchains. A camada de execução é moldada pelas transações que os usuários desejam executar.
Uma vez que as transações tenham sido ordenadas com êxito por consenso, cada transação deve ser aplicada ao estado atual na camada de execução. Se você está se perguntando: “Qual é o estado?”, provavelmente já viu blockchains em comparação com bancos de dados – ou, mais especificamente, com o banco de dados de um banco, porque blockchains, como bancos, mantêm um registro dos saldos de todos.
Se você tem $100 no estado que chamamos de “S” e deseja enviar $10 para outra pessoa, seu saldo no próximo estado, “S+1”, será de $90. Esse processo de aplicar transações para mover de um estado para outro é o que chamamos de STF (Função de Transição de Estado).
No Bitcoin, o STF é principalmente limitado a alterações de saldo, tornando-o relativamente simples. No entanto, ao contrário do Bitcoin, o STF do Ethereum é muito mais complexo porque o Ethereum é uma blockchain totalmente programável com uma camada de execução capaz de executar código.
Em uma blockchain, existem três componentes fundamentais que você precisa - ou é capaz de - verificar:
Se isso parecer confuso ou obscuro, não se preocupe. Vamos passar por cada um desses aspectos em detalhes. Vamos começar com como verificar o estado do blockchain!
O ‘estado’ do Ethereum refere-se ao conjunto de dados armazenados no blockchain em qualquer momento. Isso inclui saldos de contas (contas de contrato e contas de propriedade externa ou EOAs), código de contrato inteligente, armazenamento de contrato e muito mais. O Ethereum é uma máquina baseada no estado porque as transações processadas na Máquina Virtual Ethereum (EVM) alteram o estado anterior e produzem um novo estado.
Cada bloco do Ethereum contém um valor que resume o estado atual da rede após esse bloco: o stateRoot. Esse valor é uma representação compacta do estado inteiro do Ethereum, consistindo em um hash de 64 caracteres.
À medida que cada nova transação modifica o estado, o stateRoot registrado no bloco subsequente é atualizado de acordo. Para calcular esse valor, os validadores do Ethereum usam uma combinação da função de hash Keccak e uma estrutura de dados chamada de Árvore de Merkleorganizar e resumir diferentes partes do estado.
As funções de hash são funções unidirecionais que transformam uma entrada em uma saída de comprimento fixo. No Ethereum, funções de hash como Keccaksão usadas para gerar resumos de dados, servindo como uma espécie de impressão digital para a entrada. As funções hash têm quatro propriedades fundamentais:
Graças a essas propriedades, os validadores do Ethereum podem executar a STF (Função de Transição de Estado) para cada bloco - executando todas as transações no bloco e aplicando-as ao estado - e verificar se o estado indicado no bloco corresponde ao estado obtido após a STF. Esse processo garante que o proponente do bloco tenha agido honestamente, tornando-o uma das principais responsabilidades dos validadores.
No entanto, os validadores do Ethereum não fazem o hash do estado inteiro diretamente para encontrar seu resumo. Devido à natureza unidirecional das funções de hash, fazer o hash diretamente do estado eliminaria a verificabilidade, pois a única maneira de reproduzir o hash seria possuir o estado inteiro.
Como o estado do Ethereum tem terabytes de tamanho, é impraticável armazenar todo o estado em dispositivos cotidianos como telefones ou computadores pessoais. Por esse motivo, o Ethereum usa uma estrutura de árvore de Merkle para calcular o stateRoot, preservando a verificabilidade do estado tanto quanto possível.
Um árvore de Merkle é uma estrutura de dados criptográficos usada para verificar de forma segura e eficiente a integridade e a correção dos dados. As árvores Merkle são construídas sobre funções de hash e organizam os hashes de um conjunto de dados hierarquicamente, permitindo a verificação da integridade e correção desses dados. Essa estrutura de árvore consiste em três tipos de nós:
Se você está se perguntando como construir uma árvore dessas, envolve apenas dois passos simples:
O hash final obtido no topo da árvore é chamado de raiz de Merkle. O Merkle Root representa o resumo criptográfico de toda a árvore e permite a verificação segura da integridade dos dados.
Provas de Merkle permitem que o Verificador valide eficientemente peças específicas de dados, fornecendo uma série de valores hash que criam um caminho dos dados alvo (um nó folha) até a Raiz de Merkle armazenada no cabeçalho do bloco. Essa cadeia de hashes intermediários permite ao Verificador confirmar a autenticidade dos dados sem precisar fazer o hash do estado inteiro.
A partir do ponto de dados específico, o Verificador combina-o com cada hash “irmão” fornecido na Prova de Merkle e os hash passo a passo até a árvore. Esse processo continua até que um único hash seja produzido. Se este hash calculado coincidir com a Raiz de Merkle armazenada, os dados são considerados válidos; caso contrário, o Verificador pode determinar que os dados não correspondem ao estado alegado.
Digamos que recebemos o Dado #4 de uma RPC e queremos verificar sua autenticidade usando uma Prova de Merkle. Para fazer isso, a RPC forneceria um conjunto de valores de hash ao longo do caminho necessário para alcançar a Raiz de Merkle. Para o Dado 4, esses hashes irmãos incluiriam o Hash #3, o Hash #12 e o Hash #5678.
Se a Raiz de Merkle computada corresponder à raiz do estado no bloco, confirmamos que os Dados #4 são de fato válidos dentro deste estado. Caso contrário, sabemos que os dados não pertencem ao estado reivindicado, indicando possíveis adulterações. Como você pode ver, sem fornecer os hashes de todos os dados ou exigir que o Verificador reconstrua a árvore de Merkle inteira do zero, o Provador pode provar que os Dados #4 existem no estado e não foram alterados durante sua jornada—usando apenas três hashes. Esta é a razão principal pela qual as Provas de Merkle são consideradas eficientes.
Embora as árvores de Merkle sejam, sem dúvida, eficazes na fornecimento de verificação de dados segura e eficiente em grandes sistemas de blockchain como o Ethereum, elas são realmente eficientes o suficiente? Para responder a isso, devemos analisar como o desempenho e o tamanho da Árvore de Merkle impactam o relacionamento Prover-Verifier.
Vamos usar um exemplo para entender melhor seu impacto. O fator de ramificação determina quantos ramos surgem de cada nó na árvore.
À medida que a blockchain do Ethereum cresce, com cada nova transação, contrato ou interação do usuário adicionada ao conjunto de dados, a Merkle Tree também deve se expandir. Esse crescimento não apenas aumenta o tamanho da árvore, mas também afeta o tamanho da prova e o tempo de verificação.
Em resumo, embora as Árvores de Merkle ofereçam um grau de eficiência, elas não são uma solução ideal para o conjunto de dados em constante crescimento do Ethereum. Por esse motivo, durante a fase The Verge, o Ethereum visa substituir as Árvores de Merkle por uma estrutura mais eficiente conhecida comoVerkle Trees. As árvores Verkle têm o potencial de fornecer tamanhos de prova menores, mantendo o mesmo nível de segurança, tornando o processo de verificação mais sustentável e escalável tanto para os Provadores quanto para os Verificadores.
A Verge foi desenvolvida como um marco na estratégia do Ethereum com o objetivo de melhorar a verificabilidade, fortalecer a estrutura descentralizada do blockchain e aumentar a segurança da rede. Um dos principais objetivos da rede Ethereum é permitir que qualquer pessoa execute facilmente um validador para verificar a cadeia, criando uma estrutura em que a participação seja aberta a todos sem centralização. A acessibilidade desse processo de verificação é uma das principais características que distinguem blockchains de sistemas centralizados. Enquanto sistemas centralizados não oferecem capacidades de verificação, a correção de um blockchain está inteiramente nas mãos de seus usuários. No entanto, para manter essa garantia, a execução de um validador deve ser acessível a todos - um desafio que, no sistema atual, é limitado devido aos requisitos de armazenamento e computação.
Desde a transição para um modelo de consenso de Prova de Participação com o The Merge, os validadores Ethereum tiveram duas responsabilidades principais:
Para cumprir a segunda responsabilidade, os validadores devem ter acesso ao estado anterior ao bloco. Isso lhes permite executar as transações do bloco e derivar o estado subsequente. No entanto, esse requisito impõe uma carga pesada aos validadores, pois eles precisam lidar com requisitos significativos de armazenamento. Embora o Ethereum seja projetado para ser viável e os custos de armazenamento tenham diminuído globalmente, o problema é menos sobre o custo e mais sobre a dependência de hardware especializado para os validadores. A Verge tem como objetivo superar esse desafio criando uma infraestrutura onde a verificação completa possa ser realizada mesmo em dispositivos com armazenamento limitado, como telefones celulares, carteiras de navegador e até smartwatches, permitindo que os validadores funcionem nesses dispositivos.
A transição para as árvores Verkle é uma parte fundamental desse processo. Inicialmente, o Verge focou em substituir as estruturas de árvores Merkle do Ethereum por árvores Verkle. A principal razão para adotar as árvores Verkle é que as árvores Merkle representam um obstáculo significativo para a verificabilidade do Ethereum. Embora as árvores Merkle e suas provas possam funcionar de forma eficiente em cenários normais, seu desempenho degrada drasticamente em cenários de pior caso.
De acordo com os cálculos de Vitalik, o tamanho médio da prova é de cerca de 4 KB, o que parece gerenciável. No entanto, em cenários de pior caso, o tamanho da prova pode chegar a 330 MB. Sim, você leu corretamente - 330 MB.
A extrema ineficiência das Merkle Trees da Ethereum nos piores cenários decorre de duas razões principais:
O tamanho da prova é diretamente proporcional ao fator de ramificação. Reduzir o fator de ramificação diminui o tamanho da prova. Para resolver esses problemas e melhorar os cenários de pior caso, o Ethereum poderia mudar de Árvores Hexary para Árvores Merkle Binárias e começar a merklizar códigos de contrato. Se o fator de ramificação no Ethereum for reduzido de 16 para 2 e os códigos de contrato também forem merklizados, o tamanho máximo da prova poderia diminuir para 10 MB. Embora esta seja uma melhoria significativa, é importante notar que esse custo se aplica à verificação de apenas uma peça de dados. Mesmo uma transação simples que acessa várias peças de dados exigiria provas maiores. Dado o número de transações por bloco e o estado continuamente crescente do Ethereum, essa solução, embora melhor, ainda não é totalmente viável.
Por esses motivos, a comunidade Ethereum propôs duas soluções distintas para abordar a questão:
Verkle Trees, como o nome sugere, são estruturas de árvore semelhantes às Árvores de Merkle. No entanto, a diferença mais significativa está na eficiência que oferecem durante os processos de verificação. Nas Árvores de Merkle, se um ramo contiver 16 peças de dados e quisermos verificar apenas uma delas, uma cadeia de hash que cubra as outras 15 peças também deve ser fornecida. Isso aumenta significativamente a carga computacional da verificação e resulta em tamanhos de prova grandes.
Por outro lado, as Árvores Verkle utilizam uma estrutura especializada conhecida como “Compromissos de Vetor Baseados em Curvas Elípticas”, mais especificamente, um Compromisso de Vetor Baseado em Argumento de Produto Interno (IPA). Um vetor é essencialmente uma lista de elementos de dados organizados em uma sequência específica. O estado do Ethereum pode ser pensado como um vetor: uma estrutura onde numerosas peças de dados são armazenadas em uma ordem particular, sendo cada elemento crucial. Este estado é composto por vários componentes de dados, como endereços, códigos de contrato e informações de armazenamento, onde a ordem desses elementos desempenha um papel crítico no acesso e verificação.
As Compromissos Vetoriais são métodos criptográficos usados para provar e verificar elementos de dados dentro de um conjunto de dados. Esses métodos permitem a verificação tanto da existência quanto da ordem de cada elemento em um conjunto de dados simultaneamente. Por exemplo, as Provas de Merkle, usadas em Árvores de Merkle, também podem ser consideradas uma forma de Compromisso Vetorial. Embora as Árvores de Merkle exijam todas as cadeias de hash relevantes para verificar um elemento, a estrutura comprova inherentemente que todos os elementos de um vetor estão conectados em uma sequência específica.
Ao contrário da Merkle Trees, a Verkle Trees emprega compromissos vetoriais baseados em curvas elípticas que oferecem duas vantagens principais:
Esses recursos de compromissos vetoriais baseados em curvas elípticas reduzem significativamente a quantidade de dados necessários para verificação, permitindo que a Verkle Trees produza provas pequenas e de tamanho constante, mesmo nos piores cenários. Isso minimiza a sobrecarga de dados e os tempos de verificação, melhorando a eficiência de redes de grande escala como o Ethereum. Como resultado, o uso de compromissos vetoriais baseados em curvas elípticas em Verkle Trees permite um tratamento mais gerenciável e eficiente do estado em expansão do Ethereum.
Como todas as inovações, as Árvores Verkle têm suas limitações. Uma das principais desvantagens é que elas dependem da criptografia de curva elíptica, que é vulnerável a computadores quânticos. Computadores quânticos possuem poder computacional muito maior do que os métodos clássicos, representando uma ameaça significativa aos protocolos criptográficos baseados em curva elíptica. Algoritmos quânticos poderiam potencialmente quebrar ou enfraquecer esses sistemas criptográficos, levantando preocupações sobre a segurança de longo prazo das Árvores Verkle.
Por esse motivo, embora as Árvores Verkle ofereçam uma solução promissora para a falta de estado, elas não são a solução final. No entanto, figuras como Dankrad Feist enfatizaram que, embora seja necessária consideração cuidadosa ao integrar criptografia resistente à quântica no Ethereum, vale ressaltar que os compromissos KZG atualmente usados para blobs no Ethereum também não são resistentes à quântica. Assim, as Árvores Verkle podem servir como solução intermediária, fornecendo à rede tempo adicional para desenvolver alternativas mais robustas.
As Árvores Verkle oferecem tamanhos de prova menores e processos de verificação eficientes em comparação com as Árvores Merkle, tornando mais fácil gerenciar o estado em constante crescimento do Ethereum. Graças aos Compromissos de Vetor Baseados em Curva Elíptica, provas em larga escala podem ser geradas com significativamente menos dados. No entanto, apesar de suas impressionantes vantagens, a vulnerabilidade das Árvores Verkle a computadores quânticos as torna apenas uma solução temporária. Enquanto a comunidade Ethereum vê as Árvores Verkle como uma ferramenta de curto prazo para ganhar tempo, o foco de longo prazo está na transição para soluções resistentes a computadores quânticos. É aí que as Provas STARK e as Árvores Merkle Binárias se apresentam como uma forte alternativa para a construção de uma infraestrutura de verificabilidade mais robusta para o futuro.
No processo de verificação de estado do Ethereum, o fator de ramificação das Árvores de Merkle pode ser reduzido (de 16 para 2) usando Árvores de Merkle Binárias. Essa mudança é um passo crítico para reduzir os tamanhos das provas e tornar os processos de verificação mais eficientes. No entanto, mesmo no pior cenário, os tamanhos das provas ainda podem atingir 10 MB, o que é substancial. É aqui que as Provas STARK entram em jogo, comprimindo essas grandes Provas de Merkle Binárias para apenas 100-300 kB.
Essa otimização é particularmente vital ao considerar as restrições de validadores operacionais em clientes leves ou dispositivos com hardware limitado, especialmente se você levar em conta que as velocidades médias globais de download e upload de dispositivos móveis são de aproximadamente 7,625 MB/s e 1,5 MB/s, respectivamente. Os usuários podem verificar transações com provas pequenas e portáteis sem precisar acessar o estado completo, e os validadores podem executar tarefas de verificação de bloco sem armazenar todo o estado.
Esta abordagem de benefício duplo reduz tanto os requisitos de largura de banda quanto de armazenamento para validadores, ao mesmo tempo em que acelera a verificação, três melhorias-chave que apoiam diretamente a visão de escalabilidade do Ethereum.
Embora as provas STARK se destaquem no manuseio de grandes conjuntos de dados, elas são menos eficientes ao comprovar pequenas quantidades de dados, o que pode dificultar sua aplicação em certos cenários. Ao lidar com programas que envolvem etapas ou conjuntos de dados menores, o tamanho da prova relativamente grande dos STARKs pode torná-los menos práticos ou econômicos.
A Prova de Merkle de um bloco pode incluir aproximadamente 330.000 hashes, e em cenários de pior caso, esse número pode chegar a 660.000. Em tais casos, uma prova STARK precisaria processar cerca de 200.000 hashes por segundo.
É aqui que funções de hash amigáveis ao zk, como o Poseidon, entram em jogo, especificamente otimizadas para provas STARK para reduzir essa carga. O Poseidon foi projetado para funcionar mais perfeitamente com provas de ZK em comparação com algoritmos de hash tradicionais como SHA256 e Keccak. A principal razão para essa compatibilidade está em como os algoritmos de hash tradicionais operam: eles processam entradas como dados binários (0s e 1s). Por outro lado, as provas de ZK trabalham com campos primos, estruturas matemáticas que são fundamentalmente diferentes. Esta situação é análoga aos computadores que operam em binário, enquanto os seres humanos usam um sistema decimal na vida cotidiana. A tradução de dados baseados em bits para formatos compatíveis com ZK envolve uma sobrecarga computacional significativa. O Poseidon resolve esse problema operando nativamente dentro de campos nobres, acelerando drasticamente sua integração com as provas de ZK.
No entanto, como o Poseidon é uma função de hash relativamente nova, ela requer uma análise de segurança mais extensa para estabelecer o mesmo nível de confiança que as funções de hash tradicionais, como SHA256 e Keccak. Para isso, iniciativas como a Iniciativa de criptanálise Poseidon, lançado pela Fundação Ethereum, convida especialistas para testar e analisar rigorosamente a segurança do Poseidon, garantindo que ele possa resistir ao escrutínio adversário e se tornar um padrão robusto para aplicações criptográficas. Por outro lado, funções mais antigas como SHA256 e Keccak já foram extensivamente testadas e têm um histórico de segurança comprovado, mas não são amigáveis ao ZK, resultando em quedas de desempenho quando usadas com provas STARK.
Por exemplo, as provas STARK usando essas funções de hash tradicionais atualmente podem processar apenas 10.000 a 30.000 hashes. Felizmente, os avanços na tecnologia STARK sugerem que essa taxa de transferência pode aumentar em breve para 100.000 a 200.000 hashes, melhorando significativamente sua eficiência.
Embora as provas STARK sejam excelentes em escalabilidade e transparência para conjuntos de dados grandes, elas mostram limitações ao trabalhar com elementos de dados pequenos e numerosos. Nesses cenários, os dados a serem comprovados geralmente são pequenos, mas a necessidade de várias provas permanece inalterada. Exemplos incluem:
Nesses casos de uso, as provas STARK oferecem pouca vantagem. STARKs, enfatizando escalabilidade (como destacado pelo “S” em seu nome), têm bom desempenho para conjuntos de dados grandes, mas têm dificuldades em cenários com poucos dados. Por outro lado, SNARKs, projetados para concisão (como enfatizado pelo “S” em seu nome), focam em minimizar o tamanho da prova, oferecendo claras vantagens em ambientes com restrições de largura de banda ou armazenamento.
As provas STARK geralmente têm um tamanho de 40 a 50 KB, cerca de 175 vezes maior do que provas SNARK, que têm apenas 288 bytes. Essa diferença de tamanho aumenta tanto o tempo de verificação quanto os custos de rede. A principal razão para as provas maiores do STARK é a dependência da transparência e dos compromissos polinomiais para garantir a escalabilidade, o que introduz custos de desempenho em cenários de pequenos dados. Em tais casos, métodos mais rápidos e eficientes em termos de espaço, como Provas de Merkle, podem ser mais práticos. As Provas de Merkle oferecem baixos custos computacionais e atualizações rápidas, tornando-as adequadas para essas situações.
No entanto, as provas STARK continuam sendo cruciais para o futuro sem estado do Ethereum devido à sua segurança quântica.
Algoritmo | Tamanho da Prova | Segurança Suposições | Pior caso Latência do verificador |
Árvores Verkle | ~100 - 2.000 kB | curva elíptica (não resistente a quântica) | |
STARK + Funções de hash conservadoras | ~100 - 300 kB | Funções hash conservadoras | > 10s |
STARK + Funções de hash relativamente novas | ~100 - 300 kB | Funções hash relativamente novas e menos testadas | 1-2s |
Árvores Merkle baseadas em treliça | Verkle Trees > x > STARKs | Problema da Solução Inteira Curta de Anel (RSIS) | - |
Conforme resumido na tabela, o Ethereum tem quatro caminhos potenciais para escolher:
No entanto, é importante observar que as árvores Verkle, devido à sua falta de dependência de hash, são significativamente mais comprováveis do que as árvores Merkle.
Tudo o que discutimos até agora gira em torno da remoção da necessidade de validadores para armazenar o estado anterior, que eles usam para fazer a transição de um estado para o outro. O objetivo é criar um ambiente mais descentralizado onde os validadores possam executar suas funções sem manter terabytes de dados de estado. Mesmo com as soluções que mencionamos, os validadores não precisariam armazenar todo o estado, pois receberiam todos os dados necessários para a execução por meio de testemunhas incluídas no bloco. No entanto, para fazer a transição para o próximo estado — e, assim, verificar o stateRoot na parte superior do bloco — os validadores ainda devem executar o STF. Esse requisito, por sua vez, representa outro desafio para a natureza sem permissão e descentralização do Ethereum.
Inicialmente, o Verge foi concebido como um marco que se concentrou exclusivamente na transição da árvore de estado do Ethereum de Árvores de Merkle para Árvores de Verkle para melhorar a verificabilidade do estado. Com o tempo, no entanto, evoluiu para uma iniciativa mais ampla destinada a aprimorar a verificabilidade das transições de estado e do consenso. Em um mundo onde o trio Estado, Execução e Consenso é totalmente verificável, os validadores do Ethereum poderiam operar em praticamente qualquer dispositivo com conexão à internet que possa ser categorizado como um Cliente Leve. Isso aproximaria o Ethereum de alcançar sua visão de “verdadeira descentralização”.
Como mencionamos anteriormente, os validadores executam uma função chamada STF (Função de Transição de Estado) a cada 12 segundos. Esta função recebe o estado anterior e um bloco como entradas e produz o próximo estado como saída. Os validadores devem executar esta função toda vez que um novo bloco é proposto e verificar se o hash que representa o estado no topo do bloco - comumente referido como a raiz do estado - está correto.
Os altos requisitos do sistema para se tornar um validador derivam principalmente da necessidade de executar esse processo de forma eficiente.
Se você deseja transformar uma geladeira inteligente - sim, até mesmo uma geladeira - em um validador do Ethereum com a ajuda de algum software instalado, você enfrenta dois obstáculos principais:
Para resolver os problemas causados pelos Light Clients não terem acesso nem ao estado anterior nem à totalidade do último bloco, o Verge propõe que o proponente execute e anexe uma prova ao bloco. Essa prova incluiria a transição da raiz do estado anterior para a raiz do próximo estado, bem como o hash do bloco. Com isso, os Light Clients podem validar a transição de estado usando apenas três hashes de 32 bytes, sem precisar de uma prova de conhecimento-zero (zk-proof).
No entanto, como essa prova funciona por meio de hashes, seria incorreto dizer que ela apenas valida a transição de estado. Pelo contrário, a prova anexada ao bloco deve validar várias coisas simultaneamente:
Raiz do estado no bloco anterior = S, Raiz do estado no próximo bloco = S + 1, Hash do bloco = H
Na analogia de Provador-Verificador que referimos anteriormente, é geralmente justo dizer que geralmente há um equilíbrio computacional entre os dois atores. Embora a capacidade de provas necessárias para tornar o STF verificável para validar várias coisas simultaneamente ofereça vantagens significativas para o Verificador, também indica que gerar tais provas para garantir a correção da execução será relativamente desafiador para o Provador. Com a velocidade atual do Ethereum, um bloco do Ethereum precisa ser comprovado em menos de 4 segundos. No entanto, mesmo o Provador EVM mais rápido que temos hoje só consegue provar um bloco médio em aproximadamente 15 segundos.[1]
Dito isso, existem três caminhos distintos que podemos seguir para superar esse grande desafio:
Durante a geração de prova, cada pequena parte do processo de execução (por exemplo, etapas de computação ou acesso de dados) pode ser provada individualmente e essas provas podem ser agregadas posteriormente em uma única estrutura. Com o mecanismo correto, essa abordagem permite que as provas de um bloco sejam geradas rapidamente e de forma descentralizada por muitas fontes diferentes (por exemplo, centenas de GPUs). Isso aumenta o desempenho e contribui para o objetivo de descentralização, envolvendo uma ampla gama de participantes.
Esta abordagem pode minimizar a diferença entre os cenários de pior caso e caso médio, permitindo um desempenho mais consistente. Por exemplo, operações que são mais difíceis de provar podem ter custos de gás mais altos, enquanto aquelas que são mais fáceis de provar podem ter custos mais baixos. Além disso, substituir as estruturas de dados do Ethereum (como a árvore de estados ou a lista de transações) por alternativas amigáveis ao STARK poderia acelerar ainda mais os processos de prova. Essas mudanças ajudariam o Ethereum a alcançar seus objetivos de escalabilidade e segurança, ao mesmo tempo que tornariam sua visão de verificabilidade mais realista.
Os esforços da Ethereum para permitir provas de execução representam uma oportunidade significativa para atingir suas metas de verificabilidade. No entanto, alcançar esse objetivo requer não apenas inovações técnicas, mas também maiores esforços de engenharia e decisões críticas dentro da comunidade. Tornar os processos de execução verificáveis na Camada 1 deve encontrar um equilíbrio entre ser acessível a uma ampla base de usuários, preservando a descentralização e alinhando-se com a infraestrutura existente. O estabelecimento desse equilíbrio aumenta a complexidade dos métodos utilizados para comprovar as operações durante a execução, destacando a necessidade de avanços como a geração paralela de provas. Além disso, os requisitos de infraestrutura dessas tecnologias (por exemplo, tabelas de pesquisa) deve ser implementada e operacionalizada, o que ainda exige uma pesquisa e desenvolvimento substanciais.
Por outro lado, circuitos especializados (por exemplo, ASICs, FPGAs, GPUs) projetados especificamente para certas tarefas têm um potencial significativo para acelerar o processo de geração de prova. Essas soluções fornecem uma eficiência muito maior em comparação com hardware tradicional e podem acelerar os processos de execução. No entanto, os objetivos de descentralização do Ethereum no nível da Camada 1 impedem que esse hardware seja acessível apenas a um grupo seleto de atores. Como resultado, espera-se que essas soluções sejam mais amplamente utilizadas em sistemas da Camada 2. No entanto, a comunidade também precisa chegar a um consenso sobre os requisitos de hardware para a geração de prova. Uma questão de design fundamental surge: a geração de prova deve funcionar em hardware de consumo, como laptops de alto desempenho, ou exigir infraestrutura industrial? A resposta molda toda a arquitetura do Ethereum - permitindo otimização agressiva para soluções da Camada 2, ao mesmo tempo em que exige abordagens mais conservadoras para a Camada 1.
Finalmente, a implementação de provas de execução está diretamente ligada aos outros objetivos de roadmap da Ethereum. A introdução de provas de validade não apenas suportaria conceitos como a falta de estado, mas também aprimoraria a descentralização da Ethereum, tornando áreas como o solo staking mais acessíveis. O objetivo é permitir o staking até nos dispositivos de menor especificação. Além disso, a reestruturação dos custos de gás na EVM com base na dificuldade computacional e na provabilidade poderia minimizar a lacuna entre os cenários de caso médio e pior caso. No entanto, tais mudanças poderiam quebrar a compatibilidade com o sistema atual e forçar os desenvolvedores a reescreverem seu código. Por essa razão, a implementação de provas de execução não é apenas um desafio técnico - é uma jornada que deve ser projetada para manter os valores de longo prazo da Ethereum.
O mecanismo de consenso do Ethereum se esforça para estabelecer um equilíbrio único que preserva a descentralização e a acessibilidade, ao mesmo tempo em que alcança objetivos de verificabilidade. Nesse contexto, métodos de consenso probabilísticos e determinísticos oferecem vantagens e desafios distintos.
O consenso probabilístico é construído com base em um modelo de comunicação por fofoca. Neste modelo, em vez de se comunicar diretamente com todos os nós que representam a rede, um nó compartilha informações com um conjunto selecionado aleatoriamente de 64 ou 128 nós. A seleção da cadeia de um nó é baseada nessas informações limitadas, o que introduz a possibilidade de erro. No entanto, com o tempo, à medida que o blockchain avança, espera-se que essas seleções converjam para a cadeia correta com uma taxa de erro de 0%.
Uma vantagem da estrutura probabilística é que cada nó não transmite sua visão em cadeia como uma mensagem separada, reduzindo a sobrecarga de comunicação. Consequentemente, essa estrutura pode operar com nós descentralizados muito mais sem permissão e com requisitos de sistema mais baixos. Em contraste, o consenso determinista opera por meio de um modelo de comunicação um-para-todos. Aqui, um nó envia sua visão em cadeia como um voto para todos os outros nós. Essa abordagem gera maior intensidade de mensagem e, à medida que o número de nós cresce, o sistema pode eventualmente atingir seus limites. No entanto, a maior vantagem do consenso determinístico é a disponibilidade de votos concretos, permitindo saber exatamente qual nó votou em qual bifurcação. Isso garante uma finalização rápida e definitiva da cadeia, garantindo que os blocos não possam ter sua ordem alterada e tornando-os verificáveis.
Para fornecer um mecanismo de consenso verificável, preservando a descentralização e uma estrutura sem permissão, o Ethereum conseguiu um equilíbrio entre slots e épocas. Os slots, que representam intervalos de 12 segundos, são as unidades básicas em que um validador é responsável por produzir um bloco. Embora o consenso probabilístico usado no nível do slot permita que a cadeia opere de forma mais flexível e descentralizada, ele tem limitações em termos de ordem definitiva e verificabilidade.
Épocas, que englobam 32 slots, introduzem consenso determinístico. Neste nível, os validadores votam para finalizar a ordem da cadeia, garantindo certeza e tornando a cadeia verificável. No entanto, embora esta estrutura determinística forneça verificabilidade através de votos concretos no nível da época, não pode oferecer verificabilidade completa dentro das próprias épocas devido à estrutura probabilística. Para abordar essa lacuna e fortalecer a estrutura probabilística dentro das épocas, o Ethereum desenvolveu uma solução conhecida como o Comitê de Sincronização.
O Comitê de Sincronização é um mecanismo introduzido com a atualização Altair para superar as limitações do consenso probabilístico do Ethereum e melhorar a verificabilidade da cadeia para clientes leves. O comitê é composto por 512 validadores selecionados aleatoriamente que atuam por 256 épocas (~27 horas). Esses validadores produzem uma assinatura representando a cabeça da cadeia, permitindo que clientes leves verifiquem a validade da cadeia sem precisar baixar dados históricos da cadeia. A operação do Comitê de Sincronização pode ser resumida da seguinte forma:
No entanto, o Comitê de Sincronização tem sido alvo de críticas em algumas áreas. Notavelmente, o protocolo carece de um mecanismo para cortar validadores por comportamento malicioso, mesmo que os validadores selecionados atuem intencionalmente contra o protocolo. Como resultado, muitos consideram o Comitê de Sincronização como um risco à segurança e se abstêm de classificá-lo completamente como um Protocolo de Cliente Leve. No entanto, a segurança do Comitê de Sincronização foi matematicamente comprovada, e mais detalhes podem ser encontrados em este artigo sobre Cortes de Comitê de Sincronização.
A ausência de um mecanismo de corte no protocolo não é uma escolha de design, mas uma necessidade decorrente da natureza do consenso probabilístico. O consenso probabilístico não fornece garantias absolutas sobre o que um validador observa. Mesmo que a maioria dos validadores relate um determinado fork como o mais pesado, ainda pode haver validadores excepcionais observando um fork diferente como mais pesado. Essa incerteza torna desafiador provar a intenção maliciosa e, portanto, impossível penalizar o mau comportamento.
Nesse contexto, em vez de rotular o Comitê de Sincronização como inseguro, seria mais preciso descrevê-lo como uma solução ineficiente. O problema não decorre do design mecânico ou da operação do Comitê de Sincronização, mas da natureza inerente do consenso probabilístico. Como o consenso probabilístico não pode oferecer garantias definitivas sobre o que os nós observam, o Comitê de Sincronização é uma das melhores soluções que pode ser projetada dentro de tal modelo. No entanto, isso não elimina as fraquezas do consenso probabilístico na garantia da finalidade da cadeia. O problema não está no mecanismo, mas na estrutura de consenso atual do Ethereum.
Devido a essas limitações, há esforços contínuos no ecossistema Ethereum para redesenhar o mecanismo de consenso e implementar soluções que forneçam finalidade determinística em períodos mais curtos. Propostas como Orbit-SSFe3SFpretende reformular a estrutura de consenso do Ethereum desde o início, criando um sistema mais eficaz para substituir o consenso probabilístico. Tais abordagens buscam não apenas encurtar o tempo de finalização da cadeia, mas também oferecer uma estrutura de rede mais eficiente e verificável. A comunidade do Ethereum continua a desenvolver e preparar ativamente essas propostas para implementações futuras.
O Verge tem como objetivo melhorar os mecanismos de consenso atuais e futuros do Ethereum tornando-os mais verificáveis por meio da tecnologia zk-proof, em vez de substituí-los completamente. Essa abordagem busca modernizar os processos de consenso do Ethereum, preservando seus princípios fundamentais de descentralização e segurança. A otimização de todos os processos de consenso históricos e atuais da cadeia com tecnologias zk desempenha um papel fundamental na conquista dos objetivos de escalabilidade e eficiência de longo prazo do Ethereum. As operações fundamentais utilizadas na camada de consenso do Ethereum são de grande importância nessa transformação tecnológica. Vamos dar uma olhada mais de perto nessas operações e nos desafios que elas enfrentam.
As operações ECADD, Pairing e SHA256 usadas na camada de consenso atual desempenham um papel crítico nos objetivos de verificabilidade do Ethereum. No entanto, a falta de zk-amizade apresenta desafios significativos no caminho para alcançar esses objetivos. As operações ECADD criam um ônus custoso devido ao alto volume de votos de validadores, enquanto as operações de Pairing, apesar de serem menos numerosas, são milhares de vezes mais caras de provar com zk-provas. Além disso, a falta de zk-amizade das funções de hash SHA256 torna extremamente desafiador provar a transição de estado da cadeia de beacons. Essas questões destacam a necessidade de uma transformação abrangente para alinhar a infraestrutura existente do Ethereum com as tecnologias de conhecimento zero.
Em 12 de novembro de 2024, durante sua apresentação na Devcon, Justin Drake apresentou uma proposta chamada “Beam Chain” com o objetivo de transformar fundamental e abrangentemente a Camada de Consenso do Ethereum. A Beacon Chain tem sido o núcleo da rede Ethereum há quase cinco anos. No entanto, durante este período, não houve grandes mudanças estruturais na Beacon Chain. Em contraste, os avanços tecnológicos progrediram rapidamente, superando em muito a natureza estática da Beacon Chain.
Em sua apresentação, Justin Drake enfatizou que o Ethereum aprendeu lições significativas ao longo desses cinco anos em áreas críticas, como compreensão de MEV, avanços nas tecnologias SNARK e consciência retrospectiva de erros tecnológicos. Os projetos informados por esses novos aprendizados são categorizados em três pilares principais: Produção de Blocos, Staking e Criptografia. O visual a seguir resume esses projetos e o roteiro proposto:
Nesta seção, examinamos em detalhes as etapas de Consenso, Estado e Execução do Verge, e um dos problemas mais proeminentes destacados durante esse processo é o uso da função de hash SHA256 na Beacon Chain do Ethereum. Embora o SHA256 desempenhe um papel central na garantia da segurança da rede e no processamento de transações, sua falta de amizade com zk representa um obstáculo significativo para alcançar os objetivos de verificabilidade do Ethereum. Seu alto custo computacional e incompatibilidade com tecnologias zk tornam-se um problema crítico que deve ser abordado no futuro desenvolvimento do Ethereum.
O roteiro de Justin Drake, apresentado durante sua palestra no Devcon, prevê substituir o SHA256 no Beacon Chain por funções de hash amigáveis ao zk, como o Poseidon. Esta proposta visa modernizar a camada de consenso do Ethereum, tornando-a mais verificável, eficiente e alinhada com as tecnologias à prova de zk.
Nesse contexto, vemos que o Ethereum não apenas enfrenta desafios com funções de hash incompatíveis com zk, mas também precisa reavaliar as assinaturas digitais usadas em sua camada de consenso para segurança a longo prazo. Com o avanço da computação quântica, algoritmos de assinatura digital como ECDSA atualmente em uso podem enfrentar ameaças significativas. Conforme observado nas diretrizes publicadas pelo NIST, variantes do ECDSA com um nível de segurança de 112 bits serão obsoletas até 2030 e completamente proibidas até 2035. Isso exige uma transição para o Ethereum e redes similares em direção a alternativas mais resistentes, como assinaturas quânticas seguras no futuro.
Neste ponto, as assinaturas baseadas em hash surgem como soluções resistentes a quantum que poderiam desempenhar um papel crítico no suporte aos objetivos de segurança e verificabilidade da rede. Abordar essa necessidade também remove o segundo grande obstáculo para tornar a Beacon Chain verificável: Assinaturas BLS. Um dos passos mais significativos que o Ethereum pode dar em direção à garantia de segurança quântica é adotar soluções pós-quânticas como assinaturas baseadas em hash e SNARKs baseados em hash.
Como Justin Drake enfatizou emsua apresentação Devcon, as funções de hash são inherentemente resistentes a computadores quânticos devido à sua dependência de resistência à pré-imagem, tornando-as um dos blocos de construção fundamentais da criptografia moderna. Essa propriedade garante que mesmo os computadores quânticos não consigam reverter eficientemente a entrada original a partir de um determinado hash, preservando sua segurança. Os sistemas de assinatura baseados em hash permitem que validadores e atestadores gerem assinaturas inteiramente com base em funções de hash, garantindo segurança pós-quântica e também fornecendo um nível mais alto de verificabilidade em toda a rede - especialmente se uma função de hash amigável ao SNARK for usada. Essa abordagem não apenas aprimora a segurança da rede, mas também torna a infraestrutura de segurança de longo prazo do Ethereum mais robusta e à prova de futuro.
Este sistema baseia-se na combinação de assinaturas baseadas em hash e SNARKs baseados em hash (provas semelhantes a STARK) para criar esquemas de assinatura agregáveis. As assinaturas agregáveis comprimem milhares de assinaturas em uma única estrutura, reduzindo para apenas algumas centenas de quilobytes de prova. Esta compressão diminui significativamente a carga de dados na rede, ao mesmo tempo que acelera muito os processos de verificação. Por exemplo, as milhares de assinaturas de validador produzidas para um único slot no Ethereum podem ser representadas por uma única assinatura agregada, poupando tanto espaço de armazenamento quanto energia computacional.
No entanto, a característica mais notável deste esquema é a sua agregação infinitamente recursiva. Ou seja, um grupo de assinaturas pode ser combinado ainda mais sob outro grupo, e este processo pode continuar pela cadeia. Com este mecanismo e considerando os avanços tecnológicos futuros, é justo dizer que isso abre a porta para possibilidades atualmente inatingíveis com BLS.
O caminho do Ethereum para a verificabilidade representa uma mudança fundamental na tecnologia blockchain. A iniciativa Verge aborda as ineficiências principais por meio de Verkle Trees para verificação de estado e provas STARK para transições escaláveis.
Uma das propostas mais ambiciosas é a Beam Chain, uma reformulação abrangente da camada de consenso do Ethereum. Ao abordar as limitações da Beacon Chain e incorporar alternativas zk-friendly, essa abordagem visa aprimorar a escalabilidade do Ethereum, ao mesmo tempo em que preserva seus princípios fundamentais de descentralização e acessibilidade. No entanto, a transição também destaca os desafios que o Ethereum enfrenta ao equilibrar as demandas computacionais com seu objetivo de manter uma rede sem permissão, inclusiva.
Com o NIST planejando eliminar a criptografia de curva elíptica atual até 2035, o Ethereum deve adotar soluções resistentes a quântica como assinaturas baseadas em hash e Poseidon. Essas soluções apresentam seus próprios compromissos de eficiência.
O uso de STARKs no roteiro do Ethereum enfatiza ainda mais a escalabilidade e a verificabilidade. Embora sejam excelentes para fornecer provas transparentes e resistentes à computação quântica, sua integração apresenta desafios relacionados aos custos computacionais do lado do provador e às ineficiências de pequenos dados. Esses obstáculos devem ser abordados para alcançar totalmente a visão do Ethereum de estado sem estado e verificação eficiente de blocos, garantindo que a rede permaneça robusta diante da crescente demanda.
Apesar desses avanços, permanecem desafios-chave. O Ethereum deve lidar com questões de zk-friendliness, escalabilidade de consenso e as complexidades da integração de criptografia resistente a quantos. Além disso, a compatibilidade com as infraestruturas existentes apresenta obstáculos práticos que exigem soluções de engenharia cuidadosas para evitar interrupções tanto para desenvolvedores quanto para usuários.
O que diferencia o Ethereum não são apenas suas inovações técnicas, mas sua abordagem iterativa para resolver alguns dos problemas mais difíceis na blockchain. O caminho a seguir - seja por meio de tecnologias como Beam Chain, Verkle Trees ou STARK proofs - depende de um esforço colaborativo de desenvolvedores, pesquisadores e da comunidade em geral. Esses avanços não se tratam de alcançar a perfeição da noite para o dia, mas de criar uma base para uma internet transparente, descentralizada e verificável.
A evolução do Ethereum destaca seu papel como um jogador crucial na formação da era Web3. Ao enfrentar os desafios de hoje com soluções práticas, o Ethereum se aproxima de um futuro em que verificabilidade, resistência quântica e escalabilidade se tornam o padrão, e não a exceção.
Compartilhar
İçerik
A principal vantagem do Web3 é a verificabilidade - os usuários podem verificar como os sistemas realmente operam. Essa característica explica por que muitos dentro e fora da indústria de criptomoedas descrevem o web3 como um passo em direção a um internet mais transparente e verificável.
Ao contrário das plataformas Web2 como o Facebook ou o Instagram, onde os algoritmos e as regras permanecem opacos mesmo quando documentados, os protocolos de criptografia são projetados para total auditabilidade. Mesmo que sejam compartilhados, você não tem a capacidade de verificar se a plataforma opera conforme o especificado. Isso é o oposto da criptografia, onde cada protocolo é projetado para ser o mais auditável possível - ou pelo menos, espera-se que seja.
Hoje, vamos explorar “The Verge”, uma seção da recém-publicada Vitalik’s série de seis partes sobre o futuro do Ethereum, para analisar os passos que o Ethereum está dando em direção à alcançar verificabilidade, sustentabilidade e escalabilidade no futuro. Sob o título “The Verge”, discutiremos como as arquiteturas de blockchain podem ser tornadas mais verificáveis, as inovações que essas mudanças trazem no nível do protocolo e como elas proporcionam aos usuários um ecossistema mais seguro. Vamos começar!
Aplicações Web2 funcionam como “caixas-pretas” – os usuários só podem ver suas entradas e as saídas resultantes, sem visibilidade sobre como a aplicação realmente funciona. Em contraste, os protocolos de criptomoedas geralmente disponibilizam seu código-fonte publicamente, ou pelo menos têm planos para fazê-lo. Essa transparência serve a dois propósitos: permite que os usuários interajam diretamente com o código do protocolo, se assim o desejarem, e os ajuda a entender exatamente como o sistema opera e quais regras o governam.
“Descentralize o que puder, verifique o resto.”
A verificabilidade garante que os sistemas sejam responsáveis e, em muitos casos, garante que os protocolos funcionem como pretendido. Esse princípio destaca a importância de minimizar a centralização, pois muitas vezes leva a estruturas opacas e sem responsabilidade, onde os usuários não podem verificar as operações. Em vez disso, devemos nos esforçar para descentralizar o máximo possível e tornar os elementos restantes verificáveis e responsáveis onde a descentralização não for viável.
A comunidade Ethereum parece alinhar-se com esta perspectiva, como o roteiroinclui um marco (chamado de “The Verge”) com o objetivo de tornar o Ethereum mais verificável. No entanto, antes de mergulhar no The Verge, precisamos entender quais aspectos das blockchains devem ser verificados e quais partes são cruciais do ponto de vista dos usuários.
As blockchains funcionam essencialmente como relógios globais. Em uma rede distribuída com cerca de 10.000 computadores, pode levar uma quantidade significativa de tempo para que uma transação se propague do nó de origem para todos os outros nós. Por essa razão, os nós em toda a rede não podem determinar a ordem exata das transações - se uma chegou antes ou depois de outra - uma vez que eles têm apenas suas próprias perspectivas subjetivas.
Devido à importância da ordem das transações, as redes blockchain utilizam métodos especializados chamados “algoritmos de consenso” para garantir que os nós permaneçam sincronizados e processem sequências de transações na mesma ordem. Embora os nós não possam determinar a ordem da transação globalmente, os mecanismos de consenso permitem que todos os nós concordem com a mesma sequência, permitindo que a rede funcione como um único e coeso computador.
Além da camada de consenso, há também a camada de execução que existe em todas as blockchains. A camada de execução é moldada pelas transações que os usuários desejam executar.
Uma vez que as transações tenham sido ordenadas com êxito por consenso, cada transação deve ser aplicada ao estado atual na camada de execução. Se você está se perguntando: “Qual é o estado?”, provavelmente já viu blockchains em comparação com bancos de dados – ou, mais especificamente, com o banco de dados de um banco, porque blockchains, como bancos, mantêm um registro dos saldos de todos.
Se você tem $100 no estado que chamamos de “S” e deseja enviar $10 para outra pessoa, seu saldo no próximo estado, “S+1”, será de $90. Esse processo de aplicar transações para mover de um estado para outro é o que chamamos de STF (Função de Transição de Estado).
No Bitcoin, o STF é principalmente limitado a alterações de saldo, tornando-o relativamente simples. No entanto, ao contrário do Bitcoin, o STF do Ethereum é muito mais complexo porque o Ethereum é uma blockchain totalmente programável com uma camada de execução capaz de executar código.
Em uma blockchain, existem três componentes fundamentais que você precisa - ou é capaz de - verificar:
Se isso parecer confuso ou obscuro, não se preocupe. Vamos passar por cada um desses aspectos em detalhes. Vamos começar com como verificar o estado do blockchain!
O ‘estado’ do Ethereum refere-se ao conjunto de dados armazenados no blockchain em qualquer momento. Isso inclui saldos de contas (contas de contrato e contas de propriedade externa ou EOAs), código de contrato inteligente, armazenamento de contrato e muito mais. O Ethereum é uma máquina baseada no estado porque as transações processadas na Máquina Virtual Ethereum (EVM) alteram o estado anterior e produzem um novo estado.
Cada bloco do Ethereum contém um valor que resume o estado atual da rede após esse bloco: o stateRoot. Esse valor é uma representação compacta do estado inteiro do Ethereum, consistindo em um hash de 64 caracteres.
À medida que cada nova transação modifica o estado, o stateRoot registrado no bloco subsequente é atualizado de acordo. Para calcular esse valor, os validadores do Ethereum usam uma combinação da função de hash Keccak e uma estrutura de dados chamada de Árvore de Merkleorganizar e resumir diferentes partes do estado.
As funções de hash são funções unidirecionais que transformam uma entrada em uma saída de comprimento fixo. No Ethereum, funções de hash como Keccaksão usadas para gerar resumos de dados, servindo como uma espécie de impressão digital para a entrada. As funções hash têm quatro propriedades fundamentais:
Graças a essas propriedades, os validadores do Ethereum podem executar a STF (Função de Transição de Estado) para cada bloco - executando todas as transações no bloco e aplicando-as ao estado - e verificar se o estado indicado no bloco corresponde ao estado obtido após a STF. Esse processo garante que o proponente do bloco tenha agido honestamente, tornando-o uma das principais responsabilidades dos validadores.
No entanto, os validadores do Ethereum não fazem o hash do estado inteiro diretamente para encontrar seu resumo. Devido à natureza unidirecional das funções de hash, fazer o hash diretamente do estado eliminaria a verificabilidade, pois a única maneira de reproduzir o hash seria possuir o estado inteiro.
Como o estado do Ethereum tem terabytes de tamanho, é impraticável armazenar todo o estado em dispositivos cotidianos como telefones ou computadores pessoais. Por esse motivo, o Ethereum usa uma estrutura de árvore de Merkle para calcular o stateRoot, preservando a verificabilidade do estado tanto quanto possível.
Um árvore de Merkle é uma estrutura de dados criptográficos usada para verificar de forma segura e eficiente a integridade e a correção dos dados. As árvores Merkle são construídas sobre funções de hash e organizam os hashes de um conjunto de dados hierarquicamente, permitindo a verificação da integridade e correção desses dados. Essa estrutura de árvore consiste em três tipos de nós:
Se você está se perguntando como construir uma árvore dessas, envolve apenas dois passos simples:
O hash final obtido no topo da árvore é chamado de raiz de Merkle. O Merkle Root representa o resumo criptográfico de toda a árvore e permite a verificação segura da integridade dos dados.
Provas de Merkle permitem que o Verificador valide eficientemente peças específicas de dados, fornecendo uma série de valores hash que criam um caminho dos dados alvo (um nó folha) até a Raiz de Merkle armazenada no cabeçalho do bloco. Essa cadeia de hashes intermediários permite ao Verificador confirmar a autenticidade dos dados sem precisar fazer o hash do estado inteiro.
A partir do ponto de dados específico, o Verificador combina-o com cada hash “irmão” fornecido na Prova de Merkle e os hash passo a passo até a árvore. Esse processo continua até que um único hash seja produzido. Se este hash calculado coincidir com a Raiz de Merkle armazenada, os dados são considerados válidos; caso contrário, o Verificador pode determinar que os dados não correspondem ao estado alegado.
Digamos que recebemos o Dado #4 de uma RPC e queremos verificar sua autenticidade usando uma Prova de Merkle. Para fazer isso, a RPC forneceria um conjunto de valores de hash ao longo do caminho necessário para alcançar a Raiz de Merkle. Para o Dado 4, esses hashes irmãos incluiriam o Hash #3, o Hash #12 e o Hash #5678.
Se a Raiz de Merkle computada corresponder à raiz do estado no bloco, confirmamos que os Dados #4 são de fato válidos dentro deste estado. Caso contrário, sabemos que os dados não pertencem ao estado reivindicado, indicando possíveis adulterações. Como você pode ver, sem fornecer os hashes de todos os dados ou exigir que o Verificador reconstrua a árvore de Merkle inteira do zero, o Provador pode provar que os Dados #4 existem no estado e não foram alterados durante sua jornada—usando apenas três hashes. Esta é a razão principal pela qual as Provas de Merkle são consideradas eficientes.
Embora as árvores de Merkle sejam, sem dúvida, eficazes na fornecimento de verificação de dados segura e eficiente em grandes sistemas de blockchain como o Ethereum, elas são realmente eficientes o suficiente? Para responder a isso, devemos analisar como o desempenho e o tamanho da Árvore de Merkle impactam o relacionamento Prover-Verifier.
Vamos usar um exemplo para entender melhor seu impacto. O fator de ramificação determina quantos ramos surgem de cada nó na árvore.
À medida que a blockchain do Ethereum cresce, com cada nova transação, contrato ou interação do usuário adicionada ao conjunto de dados, a Merkle Tree também deve se expandir. Esse crescimento não apenas aumenta o tamanho da árvore, mas também afeta o tamanho da prova e o tempo de verificação.
Em resumo, embora as Árvores de Merkle ofereçam um grau de eficiência, elas não são uma solução ideal para o conjunto de dados em constante crescimento do Ethereum. Por esse motivo, durante a fase The Verge, o Ethereum visa substituir as Árvores de Merkle por uma estrutura mais eficiente conhecida comoVerkle Trees. As árvores Verkle têm o potencial de fornecer tamanhos de prova menores, mantendo o mesmo nível de segurança, tornando o processo de verificação mais sustentável e escalável tanto para os Provadores quanto para os Verificadores.
A Verge foi desenvolvida como um marco na estratégia do Ethereum com o objetivo de melhorar a verificabilidade, fortalecer a estrutura descentralizada do blockchain e aumentar a segurança da rede. Um dos principais objetivos da rede Ethereum é permitir que qualquer pessoa execute facilmente um validador para verificar a cadeia, criando uma estrutura em que a participação seja aberta a todos sem centralização. A acessibilidade desse processo de verificação é uma das principais características que distinguem blockchains de sistemas centralizados. Enquanto sistemas centralizados não oferecem capacidades de verificação, a correção de um blockchain está inteiramente nas mãos de seus usuários. No entanto, para manter essa garantia, a execução de um validador deve ser acessível a todos - um desafio que, no sistema atual, é limitado devido aos requisitos de armazenamento e computação.
Desde a transição para um modelo de consenso de Prova de Participação com o The Merge, os validadores Ethereum tiveram duas responsabilidades principais:
Para cumprir a segunda responsabilidade, os validadores devem ter acesso ao estado anterior ao bloco. Isso lhes permite executar as transações do bloco e derivar o estado subsequente. No entanto, esse requisito impõe uma carga pesada aos validadores, pois eles precisam lidar com requisitos significativos de armazenamento. Embora o Ethereum seja projetado para ser viável e os custos de armazenamento tenham diminuído globalmente, o problema é menos sobre o custo e mais sobre a dependência de hardware especializado para os validadores. A Verge tem como objetivo superar esse desafio criando uma infraestrutura onde a verificação completa possa ser realizada mesmo em dispositivos com armazenamento limitado, como telefones celulares, carteiras de navegador e até smartwatches, permitindo que os validadores funcionem nesses dispositivos.
A transição para as árvores Verkle é uma parte fundamental desse processo. Inicialmente, o Verge focou em substituir as estruturas de árvores Merkle do Ethereum por árvores Verkle. A principal razão para adotar as árvores Verkle é que as árvores Merkle representam um obstáculo significativo para a verificabilidade do Ethereum. Embora as árvores Merkle e suas provas possam funcionar de forma eficiente em cenários normais, seu desempenho degrada drasticamente em cenários de pior caso.
De acordo com os cálculos de Vitalik, o tamanho médio da prova é de cerca de 4 KB, o que parece gerenciável. No entanto, em cenários de pior caso, o tamanho da prova pode chegar a 330 MB. Sim, você leu corretamente - 330 MB.
A extrema ineficiência das Merkle Trees da Ethereum nos piores cenários decorre de duas razões principais:
O tamanho da prova é diretamente proporcional ao fator de ramificação. Reduzir o fator de ramificação diminui o tamanho da prova. Para resolver esses problemas e melhorar os cenários de pior caso, o Ethereum poderia mudar de Árvores Hexary para Árvores Merkle Binárias e começar a merklizar códigos de contrato. Se o fator de ramificação no Ethereum for reduzido de 16 para 2 e os códigos de contrato também forem merklizados, o tamanho máximo da prova poderia diminuir para 10 MB. Embora esta seja uma melhoria significativa, é importante notar que esse custo se aplica à verificação de apenas uma peça de dados. Mesmo uma transação simples que acessa várias peças de dados exigiria provas maiores. Dado o número de transações por bloco e o estado continuamente crescente do Ethereum, essa solução, embora melhor, ainda não é totalmente viável.
Por esses motivos, a comunidade Ethereum propôs duas soluções distintas para abordar a questão:
Verkle Trees, como o nome sugere, são estruturas de árvore semelhantes às Árvores de Merkle. No entanto, a diferença mais significativa está na eficiência que oferecem durante os processos de verificação. Nas Árvores de Merkle, se um ramo contiver 16 peças de dados e quisermos verificar apenas uma delas, uma cadeia de hash que cubra as outras 15 peças também deve ser fornecida. Isso aumenta significativamente a carga computacional da verificação e resulta em tamanhos de prova grandes.
Por outro lado, as Árvores Verkle utilizam uma estrutura especializada conhecida como “Compromissos de Vetor Baseados em Curvas Elípticas”, mais especificamente, um Compromisso de Vetor Baseado em Argumento de Produto Interno (IPA). Um vetor é essencialmente uma lista de elementos de dados organizados em uma sequência específica. O estado do Ethereum pode ser pensado como um vetor: uma estrutura onde numerosas peças de dados são armazenadas em uma ordem particular, sendo cada elemento crucial. Este estado é composto por vários componentes de dados, como endereços, códigos de contrato e informações de armazenamento, onde a ordem desses elementos desempenha um papel crítico no acesso e verificação.
As Compromissos Vetoriais são métodos criptográficos usados para provar e verificar elementos de dados dentro de um conjunto de dados. Esses métodos permitem a verificação tanto da existência quanto da ordem de cada elemento em um conjunto de dados simultaneamente. Por exemplo, as Provas de Merkle, usadas em Árvores de Merkle, também podem ser consideradas uma forma de Compromisso Vetorial. Embora as Árvores de Merkle exijam todas as cadeias de hash relevantes para verificar um elemento, a estrutura comprova inherentemente que todos os elementos de um vetor estão conectados em uma sequência específica.
Ao contrário da Merkle Trees, a Verkle Trees emprega compromissos vetoriais baseados em curvas elípticas que oferecem duas vantagens principais:
Esses recursos de compromissos vetoriais baseados em curvas elípticas reduzem significativamente a quantidade de dados necessários para verificação, permitindo que a Verkle Trees produza provas pequenas e de tamanho constante, mesmo nos piores cenários. Isso minimiza a sobrecarga de dados e os tempos de verificação, melhorando a eficiência de redes de grande escala como o Ethereum. Como resultado, o uso de compromissos vetoriais baseados em curvas elípticas em Verkle Trees permite um tratamento mais gerenciável e eficiente do estado em expansão do Ethereum.
Como todas as inovações, as Árvores Verkle têm suas limitações. Uma das principais desvantagens é que elas dependem da criptografia de curva elíptica, que é vulnerável a computadores quânticos. Computadores quânticos possuem poder computacional muito maior do que os métodos clássicos, representando uma ameaça significativa aos protocolos criptográficos baseados em curva elíptica. Algoritmos quânticos poderiam potencialmente quebrar ou enfraquecer esses sistemas criptográficos, levantando preocupações sobre a segurança de longo prazo das Árvores Verkle.
Por esse motivo, embora as Árvores Verkle ofereçam uma solução promissora para a falta de estado, elas não são a solução final. No entanto, figuras como Dankrad Feist enfatizaram que, embora seja necessária consideração cuidadosa ao integrar criptografia resistente à quântica no Ethereum, vale ressaltar que os compromissos KZG atualmente usados para blobs no Ethereum também não são resistentes à quântica. Assim, as Árvores Verkle podem servir como solução intermediária, fornecendo à rede tempo adicional para desenvolver alternativas mais robustas.
As Árvores Verkle oferecem tamanhos de prova menores e processos de verificação eficientes em comparação com as Árvores Merkle, tornando mais fácil gerenciar o estado em constante crescimento do Ethereum. Graças aos Compromissos de Vetor Baseados em Curva Elíptica, provas em larga escala podem ser geradas com significativamente menos dados. No entanto, apesar de suas impressionantes vantagens, a vulnerabilidade das Árvores Verkle a computadores quânticos as torna apenas uma solução temporária. Enquanto a comunidade Ethereum vê as Árvores Verkle como uma ferramenta de curto prazo para ganhar tempo, o foco de longo prazo está na transição para soluções resistentes a computadores quânticos. É aí que as Provas STARK e as Árvores Merkle Binárias se apresentam como uma forte alternativa para a construção de uma infraestrutura de verificabilidade mais robusta para o futuro.
No processo de verificação de estado do Ethereum, o fator de ramificação das Árvores de Merkle pode ser reduzido (de 16 para 2) usando Árvores de Merkle Binárias. Essa mudança é um passo crítico para reduzir os tamanhos das provas e tornar os processos de verificação mais eficientes. No entanto, mesmo no pior cenário, os tamanhos das provas ainda podem atingir 10 MB, o que é substancial. É aqui que as Provas STARK entram em jogo, comprimindo essas grandes Provas de Merkle Binárias para apenas 100-300 kB.
Essa otimização é particularmente vital ao considerar as restrições de validadores operacionais em clientes leves ou dispositivos com hardware limitado, especialmente se você levar em conta que as velocidades médias globais de download e upload de dispositivos móveis são de aproximadamente 7,625 MB/s e 1,5 MB/s, respectivamente. Os usuários podem verificar transações com provas pequenas e portáteis sem precisar acessar o estado completo, e os validadores podem executar tarefas de verificação de bloco sem armazenar todo o estado.
Esta abordagem de benefício duplo reduz tanto os requisitos de largura de banda quanto de armazenamento para validadores, ao mesmo tempo em que acelera a verificação, três melhorias-chave que apoiam diretamente a visão de escalabilidade do Ethereum.
Embora as provas STARK se destaquem no manuseio de grandes conjuntos de dados, elas são menos eficientes ao comprovar pequenas quantidades de dados, o que pode dificultar sua aplicação em certos cenários. Ao lidar com programas que envolvem etapas ou conjuntos de dados menores, o tamanho da prova relativamente grande dos STARKs pode torná-los menos práticos ou econômicos.
A Prova de Merkle de um bloco pode incluir aproximadamente 330.000 hashes, e em cenários de pior caso, esse número pode chegar a 660.000. Em tais casos, uma prova STARK precisaria processar cerca de 200.000 hashes por segundo.
É aqui que funções de hash amigáveis ao zk, como o Poseidon, entram em jogo, especificamente otimizadas para provas STARK para reduzir essa carga. O Poseidon foi projetado para funcionar mais perfeitamente com provas de ZK em comparação com algoritmos de hash tradicionais como SHA256 e Keccak. A principal razão para essa compatibilidade está em como os algoritmos de hash tradicionais operam: eles processam entradas como dados binários (0s e 1s). Por outro lado, as provas de ZK trabalham com campos primos, estruturas matemáticas que são fundamentalmente diferentes. Esta situação é análoga aos computadores que operam em binário, enquanto os seres humanos usam um sistema decimal na vida cotidiana. A tradução de dados baseados em bits para formatos compatíveis com ZK envolve uma sobrecarga computacional significativa. O Poseidon resolve esse problema operando nativamente dentro de campos nobres, acelerando drasticamente sua integração com as provas de ZK.
No entanto, como o Poseidon é uma função de hash relativamente nova, ela requer uma análise de segurança mais extensa para estabelecer o mesmo nível de confiança que as funções de hash tradicionais, como SHA256 e Keccak. Para isso, iniciativas como a Iniciativa de criptanálise Poseidon, lançado pela Fundação Ethereum, convida especialistas para testar e analisar rigorosamente a segurança do Poseidon, garantindo que ele possa resistir ao escrutínio adversário e se tornar um padrão robusto para aplicações criptográficas. Por outro lado, funções mais antigas como SHA256 e Keccak já foram extensivamente testadas e têm um histórico de segurança comprovado, mas não são amigáveis ao ZK, resultando em quedas de desempenho quando usadas com provas STARK.
Por exemplo, as provas STARK usando essas funções de hash tradicionais atualmente podem processar apenas 10.000 a 30.000 hashes. Felizmente, os avanços na tecnologia STARK sugerem que essa taxa de transferência pode aumentar em breve para 100.000 a 200.000 hashes, melhorando significativamente sua eficiência.
Embora as provas STARK sejam excelentes em escalabilidade e transparência para conjuntos de dados grandes, elas mostram limitações ao trabalhar com elementos de dados pequenos e numerosos. Nesses cenários, os dados a serem comprovados geralmente são pequenos, mas a necessidade de várias provas permanece inalterada. Exemplos incluem:
Nesses casos de uso, as provas STARK oferecem pouca vantagem. STARKs, enfatizando escalabilidade (como destacado pelo “S” em seu nome), têm bom desempenho para conjuntos de dados grandes, mas têm dificuldades em cenários com poucos dados. Por outro lado, SNARKs, projetados para concisão (como enfatizado pelo “S” em seu nome), focam em minimizar o tamanho da prova, oferecendo claras vantagens em ambientes com restrições de largura de banda ou armazenamento.
As provas STARK geralmente têm um tamanho de 40 a 50 KB, cerca de 175 vezes maior do que provas SNARK, que têm apenas 288 bytes. Essa diferença de tamanho aumenta tanto o tempo de verificação quanto os custos de rede. A principal razão para as provas maiores do STARK é a dependência da transparência e dos compromissos polinomiais para garantir a escalabilidade, o que introduz custos de desempenho em cenários de pequenos dados. Em tais casos, métodos mais rápidos e eficientes em termos de espaço, como Provas de Merkle, podem ser mais práticos. As Provas de Merkle oferecem baixos custos computacionais e atualizações rápidas, tornando-as adequadas para essas situações.
No entanto, as provas STARK continuam sendo cruciais para o futuro sem estado do Ethereum devido à sua segurança quântica.
Algoritmo | Tamanho da Prova | Segurança Suposições | Pior caso Latência do verificador |
Árvores Verkle | ~100 - 2.000 kB | curva elíptica (não resistente a quântica) | |
STARK + Funções de hash conservadoras | ~100 - 300 kB | Funções hash conservadoras | > 10s |
STARK + Funções de hash relativamente novas | ~100 - 300 kB | Funções hash relativamente novas e menos testadas | 1-2s |
Árvores Merkle baseadas em treliça | Verkle Trees > x > STARKs | Problema da Solução Inteira Curta de Anel (RSIS) | - |
Conforme resumido na tabela, o Ethereum tem quatro caminhos potenciais para escolher:
No entanto, é importante observar que as árvores Verkle, devido à sua falta de dependência de hash, são significativamente mais comprováveis do que as árvores Merkle.
Tudo o que discutimos até agora gira em torno da remoção da necessidade de validadores para armazenar o estado anterior, que eles usam para fazer a transição de um estado para o outro. O objetivo é criar um ambiente mais descentralizado onde os validadores possam executar suas funções sem manter terabytes de dados de estado. Mesmo com as soluções que mencionamos, os validadores não precisariam armazenar todo o estado, pois receberiam todos os dados necessários para a execução por meio de testemunhas incluídas no bloco. No entanto, para fazer a transição para o próximo estado — e, assim, verificar o stateRoot na parte superior do bloco — os validadores ainda devem executar o STF. Esse requisito, por sua vez, representa outro desafio para a natureza sem permissão e descentralização do Ethereum.
Inicialmente, o Verge foi concebido como um marco que se concentrou exclusivamente na transição da árvore de estado do Ethereum de Árvores de Merkle para Árvores de Verkle para melhorar a verificabilidade do estado. Com o tempo, no entanto, evoluiu para uma iniciativa mais ampla destinada a aprimorar a verificabilidade das transições de estado e do consenso. Em um mundo onde o trio Estado, Execução e Consenso é totalmente verificável, os validadores do Ethereum poderiam operar em praticamente qualquer dispositivo com conexão à internet que possa ser categorizado como um Cliente Leve. Isso aproximaria o Ethereum de alcançar sua visão de “verdadeira descentralização”.
Como mencionamos anteriormente, os validadores executam uma função chamada STF (Função de Transição de Estado) a cada 12 segundos. Esta função recebe o estado anterior e um bloco como entradas e produz o próximo estado como saída. Os validadores devem executar esta função toda vez que um novo bloco é proposto e verificar se o hash que representa o estado no topo do bloco - comumente referido como a raiz do estado - está correto.
Os altos requisitos do sistema para se tornar um validador derivam principalmente da necessidade de executar esse processo de forma eficiente.
Se você deseja transformar uma geladeira inteligente - sim, até mesmo uma geladeira - em um validador do Ethereum com a ajuda de algum software instalado, você enfrenta dois obstáculos principais:
Para resolver os problemas causados pelos Light Clients não terem acesso nem ao estado anterior nem à totalidade do último bloco, o Verge propõe que o proponente execute e anexe uma prova ao bloco. Essa prova incluiria a transição da raiz do estado anterior para a raiz do próximo estado, bem como o hash do bloco. Com isso, os Light Clients podem validar a transição de estado usando apenas três hashes de 32 bytes, sem precisar de uma prova de conhecimento-zero (zk-proof).
No entanto, como essa prova funciona por meio de hashes, seria incorreto dizer que ela apenas valida a transição de estado. Pelo contrário, a prova anexada ao bloco deve validar várias coisas simultaneamente:
Raiz do estado no bloco anterior = S, Raiz do estado no próximo bloco = S + 1, Hash do bloco = H
Na analogia de Provador-Verificador que referimos anteriormente, é geralmente justo dizer que geralmente há um equilíbrio computacional entre os dois atores. Embora a capacidade de provas necessárias para tornar o STF verificável para validar várias coisas simultaneamente ofereça vantagens significativas para o Verificador, também indica que gerar tais provas para garantir a correção da execução será relativamente desafiador para o Provador. Com a velocidade atual do Ethereum, um bloco do Ethereum precisa ser comprovado em menos de 4 segundos. No entanto, mesmo o Provador EVM mais rápido que temos hoje só consegue provar um bloco médio em aproximadamente 15 segundos.[1]
Dito isso, existem três caminhos distintos que podemos seguir para superar esse grande desafio:
Durante a geração de prova, cada pequena parte do processo de execução (por exemplo, etapas de computação ou acesso de dados) pode ser provada individualmente e essas provas podem ser agregadas posteriormente em uma única estrutura. Com o mecanismo correto, essa abordagem permite que as provas de um bloco sejam geradas rapidamente e de forma descentralizada por muitas fontes diferentes (por exemplo, centenas de GPUs). Isso aumenta o desempenho e contribui para o objetivo de descentralização, envolvendo uma ampla gama de participantes.
Esta abordagem pode minimizar a diferença entre os cenários de pior caso e caso médio, permitindo um desempenho mais consistente. Por exemplo, operações que são mais difíceis de provar podem ter custos de gás mais altos, enquanto aquelas que são mais fáceis de provar podem ter custos mais baixos. Além disso, substituir as estruturas de dados do Ethereum (como a árvore de estados ou a lista de transações) por alternativas amigáveis ao STARK poderia acelerar ainda mais os processos de prova. Essas mudanças ajudariam o Ethereum a alcançar seus objetivos de escalabilidade e segurança, ao mesmo tempo que tornariam sua visão de verificabilidade mais realista.
Os esforços da Ethereum para permitir provas de execução representam uma oportunidade significativa para atingir suas metas de verificabilidade. No entanto, alcançar esse objetivo requer não apenas inovações técnicas, mas também maiores esforços de engenharia e decisões críticas dentro da comunidade. Tornar os processos de execução verificáveis na Camada 1 deve encontrar um equilíbrio entre ser acessível a uma ampla base de usuários, preservando a descentralização e alinhando-se com a infraestrutura existente. O estabelecimento desse equilíbrio aumenta a complexidade dos métodos utilizados para comprovar as operações durante a execução, destacando a necessidade de avanços como a geração paralela de provas. Além disso, os requisitos de infraestrutura dessas tecnologias (por exemplo, tabelas de pesquisa) deve ser implementada e operacionalizada, o que ainda exige uma pesquisa e desenvolvimento substanciais.
Por outro lado, circuitos especializados (por exemplo, ASICs, FPGAs, GPUs) projetados especificamente para certas tarefas têm um potencial significativo para acelerar o processo de geração de prova. Essas soluções fornecem uma eficiência muito maior em comparação com hardware tradicional e podem acelerar os processos de execução. No entanto, os objetivos de descentralização do Ethereum no nível da Camada 1 impedem que esse hardware seja acessível apenas a um grupo seleto de atores. Como resultado, espera-se que essas soluções sejam mais amplamente utilizadas em sistemas da Camada 2. No entanto, a comunidade também precisa chegar a um consenso sobre os requisitos de hardware para a geração de prova. Uma questão de design fundamental surge: a geração de prova deve funcionar em hardware de consumo, como laptops de alto desempenho, ou exigir infraestrutura industrial? A resposta molda toda a arquitetura do Ethereum - permitindo otimização agressiva para soluções da Camada 2, ao mesmo tempo em que exige abordagens mais conservadoras para a Camada 1.
Finalmente, a implementação de provas de execução está diretamente ligada aos outros objetivos de roadmap da Ethereum. A introdução de provas de validade não apenas suportaria conceitos como a falta de estado, mas também aprimoraria a descentralização da Ethereum, tornando áreas como o solo staking mais acessíveis. O objetivo é permitir o staking até nos dispositivos de menor especificação. Além disso, a reestruturação dos custos de gás na EVM com base na dificuldade computacional e na provabilidade poderia minimizar a lacuna entre os cenários de caso médio e pior caso. No entanto, tais mudanças poderiam quebrar a compatibilidade com o sistema atual e forçar os desenvolvedores a reescreverem seu código. Por essa razão, a implementação de provas de execução não é apenas um desafio técnico - é uma jornada que deve ser projetada para manter os valores de longo prazo da Ethereum.
O mecanismo de consenso do Ethereum se esforça para estabelecer um equilíbrio único que preserva a descentralização e a acessibilidade, ao mesmo tempo em que alcança objetivos de verificabilidade. Nesse contexto, métodos de consenso probabilísticos e determinísticos oferecem vantagens e desafios distintos.
O consenso probabilístico é construído com base em um modelo de comunicação por fofoca. Neste modelo, em vez de se comunicar diretamente com todos os nós que representam a rede, um nó compartilha informações com um conjunto selecionado aleatoriamente de 64 ou 128 nós. A seleção da cadeia de um nó é baseada nessas informações limitadas, o que introduz a possibilidade de erro. No entanto, com o tempo, à medida que o blockchain avança, espera-se que essas seleções converjam para a cadeia correta com uma taxa de erro de 0%.
Uma vantagem da estrutura probabilística é que cada nó não transmite sua visão em cadeia como uma mensagem separada, reduzindo a sobrecarga de comunicação. Consequentemente, essa estrutura pode operar com nós descentralizados muito mais sem permissão e com requisitos de sistema mais baixos. Em contraste, o consenso determinista opera por meio de um modelo de comunicação um-para-todos. Aqui, um nó envia sua visão em cadeia como um voto para todos os outros nós. Essa abordagem gera maior intensidade de mensagem e, à medida que o número de nós cresce, o sistema pode eventualmente atingir seus limites. No entanto, a maior vantagem do consenso determinístico é a disponibilidade de votos concretos, permitindo saber exatamente qual nó votou em qual bifurcação. Isso garante uma finalização rápida e definitiva da cadeia, garantindo que os blocos não possam ter sua ordem alterada e tornando-os verificáveis.
Para fornecer um mecanismo de consenso verificável, preservando a descentralização e uma estrutura sem permissão, o Ethereum conseguiu um equilíbrio entre slots e épocas. Os slots, que representam intervalos de 12 segundos, são as unidades básicas em que um validador é responsável por produzir um bloco. Embora o consenso probabilístico usado no nível do slot permita que a cadeia opere de forma mais flexível e descentralizada, ele tem limitações em termos de ordem definitiva e verificabilidade.
Épocas, que englobam 32 slots, introduzem consenso determinístico. Neste nível, os validadores votam para finalizar a ordem da cadeia, garantindo certeza e tornando a cadeia verificável. No entanto, embora esta estrutura determinística forneça verificabilidade através de votos concretos no nível da época, não pode oferecer verificabilidade completa dentro das próprias épocas devido à estrutura probabilística. Para abordar essa lacuna e fortalecer a estrutura probabilística dentro das épocas, o Ethereum desenvolveu uma solução conhecida como o Comitê de Sincronização.
O Comitê de Sincronização é um mecanismo introduzido com a atualização Altair para superar as limitações do consenso probabilístico do Ethereum e melhorar a verificabilidade da cadeia para clientes leves. O comitê é composto por 512 validadores selecionados aleatoriamente que atuam por 256 épocas (~27 horas). Esses validadores produzem uma assinatura representando a cabeça da cadeia, permitindo que clientes leves verifiquem a validade da cadeia sem precisar baixar dados históricos da cadeia. A operação do Comitê de Sincronização pode ser resumida da seguinte forma:
No entanto, o Comitê de Sincronização tem sido alvo de críticas em algumas áreas. Notavelmente, o protocolo carece de um mecanismo para cortar validadores por comportamento malicioso, mesmo que os validadores selecionados atuem intencionalmente contra o protocolo. Como resultado, muitos consideram o Comitê de Sincronização como um risco à segurança e se abstêm de classificá-lo completamente como um Protocolo de Cliente Leve. No entanto, a segurança do Comitê de Sincronização foi matematicamente comprovada, e mais detalhes podem ser encontrados em este artigo sobre Cortes de Comitê de Sincronização.
A ausência de um mecanismo de corte no protocolo não é uma escolha de design, mas uma necessidade decorrente da natureza do consenso probabilístico. O consenso probabilístico não fornece garantias absolutas sobre o que um validador observa. Mesmo que a maioria dos validadores relate um determinado fork como o mais pesado, ainda pode haver validadores excepcionais observando um fork diferente como mais pesado. Essa incerteza torna desafiador provar a intenção maliciosa e, portanto, impossível penalizar o mau comportamento.
Nesse contexto, em vez de rotular o Comitê de Sincronização como inseguro, seria mais preciso descrevê-lo como uma solução ineficiente. O problema não decorre do design mecânico ou da operação do Comitê de Sincronização, mas da natureza inerente do consenso probabilístico. Como o consenso probabilístico não pode oferecer garantias definitivas sobre o que os nós observam, o Comitê de Sincronização é uma das melhores soluções que pode ser projetada dentro de tal modelo. No entanto, isso não elimina as fraquezas do consenso probabilístico na garantia da finalidade da cadeia. O problema não está no mecanismo, mas na estrutura de consenso atual do Ethereum.
Devido a essas limitações, há esforços contínuos no ecossistema Ethereum para redesenhar o mecanismo de consenso e implementar soluções que forneçam finalidade determinística em períodos mais curtos. Propostas como Orbit-SSFe3SFpretende reformular a estrutura de consenso do Ethereum desde o início, criando um sistema mais eficaz para substituir o consenso probabilístico. Tais abordagens buscam não apenas encurtar o tempo de finalização da cadeia, mas também oferecer uma estrutura de rede mais eficiente e verificável. A comunidade do Ethereum continua a desenvolver e preparar ativamente essas propostas para implementações futuras.
O Verge tem como objetivo melhorar os mecanismos de consenso atuais e futuros do Ethereum tornando-os mais verificáveis por meio da tecnologia zk-proof, em vez de substituí-los completamente. Essa abordagem busca modernizar os processos de consenso do Ethereum, preservando seus princípios fundamentais de descentralização e segurança. A otimização de todos os processos de consenso históricos e atuais da cadeia com tecnologias zk desempenha um papel fundamental na conquista dos objetivos de escalabilidade e eficiência de longo prazo do Ethereum. As operações fundamentais utilizadas na camada de consenso do Ethereum são de grande importância nessa transformação tecnológica. Vamos dar uma olhada mais de perto nessas operações e nos desafios que elas enfrentam.
As operações ECADD, Pairing e SHA256 usadas na camada de consenso atual desempenham um papel crítico nos objetivos de verificabilidade do Ethereum. No entanto, a falta de zk-amizade apresenta desafios significativos no caminho para alcançar esses objetivos. As operações ECADD criam um ônus custoso devido ao alto volume de votos de validadores, enquanto as operações de Pairing, apesar de serem menos numerosas, são milhares de vezes mais caras de provar com zk-provas. Além disso, a falta de zk-amizade das funções de hash SHA256 torna extremamente desafiador provar a transição de estado da cadeia de beacons. Essas questões destacam a necessidade de uma transformação abrangente para alinhar a infraestrutura existente do Ethereum com as tecnologias de conhecimento zero.
Em 12 de novembro de 2024, durante sua apresentação na Devcon, Justin Drake apresentou uma proposta chamada “Beam Chain” com o objetivo de transformar fundamental e abrangentemente a Camada de Consenso do Ethereum. A Beacon Chain tem sido o núcleo da rede Ethereum há quase cinco anos. No entanto, durante este período, não houve grandes mudanças estruturais na Beacon Chain. Em contraste, os avanços tecnológicos progrediram rapidamente, superando em muito a natureza estática da Beacon Chain.
Em sua apresentação, Justin Drake enfatizou que o Ethereum aprendeu lições significativas ao longo desses cinco anos em áreas críticas, como compreensão de MEV, avanços nas tecnologias SNARK e consciência retrospectiva de erros tecnológicos. Os projetos informados por esses novos aprendizados são categorizados em três pilares principais: Produção de Blocos, Staking e Criptografia. O visual a seguir resume esses projetos e o roteiro proposto:
Nesta seção, examinamos em detalhes as etapas de Consenso, Estado e Execução do Verge, e um dos problemas mais proeminentes destacados durante esse processo é o uso da função de hash SHA256 na Beacon Chain do Ethereum. Embora o SHA256 desempenhe um papel central na garantia da segurança da rede e no processamento de transações, sua falta de amizade com zk representa um obstáculo significativo para alcançar os objetivos de verificabilidade do Ethereum. Seu alto custo computacional e incompatibilidade com tecnologias zk tornam-se um problema crítico que deve ser abordado no futuro desenvolvimento do Ethereum.
O roteiro de Justin Drake, apresentado durante sua palestra no Devcon, prevê substituir o SHA256 no Beacon Chain por funções de hash amigáveis ao zk, como o Poseidon. Esta proposta visa modernizar a camada de consenso do Ethereum, tornando-a mais verificável, eficiente e alinhada com as tecnologias à prova de zk.
Nesse contexto, vemos que o Ethereum não apenas enfrenta desafios com funções de hash incompatíveis com zk, mas também precisa reavaliar as assinaturas digitais usadas em sua camada de consenso para segurança a longo prazo. Com o avanço da computação quântica, algoritmos de assinatura digital como ECDSA atualmente em uso podem enfrentar ameaças significativas. Conforme observado nas diretrizes publicadas pelo NIST, variantes do ECDSA com um nível de segurança de 112 bits serão obsoletas até 2030 e completamente proibidas até 2035. Isso exige uma transição para o Ethereum e redes similares em direção a alternativas mais resistentes, como assinaturas quânticas seguras no futuro.
Neste ponto, as assinaturas baseadas em hash surgem como soluções resistentes a quantum que poderiam desempenhar um papel crítico no suporte aos objetivos de segurança e verificabilidade da rede. Abordar essa necessidade também remove o segundo grande obstáculo para tornar a Beacon Chain verificável: Assinaturas BLS. Um dos passos mais significativos que o Ethereum pode dar em direção à garantia de segurança quântica é adotar soluções pós-quânticas como assinaturas baseadas em hash e SNARKs baseados em hash.
Como Justin Drake enfatizou emsua apresentação Devcon, as funções de hash são inherentemente resistentes a computadores quânticos devido à sua dependência de resistência à pré-imagem, tornando-as um dos blocos de construção fundamentais da criptografia moderna. Essa propriedade garante que mesmo os computadores quânticos não consigam reverter eficientemente a entrada original a partir de um determinado hash, preservando sua segurança. Os sistemas de assinatura baseados em hash permitem que validadores e atestadores gerem assinaturas inteiramente com base em funções de hash, garantindo segurança pós-quântica e também fornecendo um nível mais alto de verificabilidade em toda a rede - especialmente se uma função de hash amigável ao SNARK for usada. Essa abordagem não apenas aprimora a segurança da rede, mas também torna a infraestrutura de segurança de longo prazo do Ethereum mais robusta e à prova de futuro.
Este sistema baseia-se na combinação de assinaturas baseadas em hash e SNARKs baseados em hash (provas semelhantes a STARK) para criar esquemas de assinatura agregáveis. As assinaturas agregáveis comprimem milhares de assinaturas em uma única estrutura, reduzindo para apenas algumas centenas de quilobytes de prova. Esta compressão diminui significativamente a carga de dados na rede, ao mesmo tempo que acelera muito os processos de verificação. Por exemplo, as milhares de assinaturas de validador produzidas para um único slot no Ethereum podem ser representadas por uma única assinatura agregada, poupando tanto espaço de armazenamento quanto energia computacional.
No entanto, a característica mais notável deste esquema é a sua agregação infinitamente recursiva. Ou seja, um grupo de assinaturas pode ser combinado ainda mais sob outro grupo, e este processo pode continuar pela cadeia. Com este mecanismo e considerando os avanços tecnológicos futuros, é justo dizer que isso abre a porta para possibilidades atualmente inatingíveis com BLS.
O caminho do Ethereum para a verificabilidade representa uma mudança fundamental na tecnologia blockchain. A iniciativa Verge aborda as ineficiências principais por meio de Verkle Trees para verificação de estado e provas STARK para transições escaláveis.
Uma das propostas mais ambiciosas é a Beam Chain, uma reformulação abrangente da camada de consenso do Ethereum. Ao abordar as limitações da Beacon Chain e incorporar alternativas zk-friendly, essa abordagem visa aprimorar a escalabilidade do Ethereum, ao mesmo tempo em que preserva seus princípios fundamentais de descentralização e acessibilidade. No entanto, a transição também destaca os desafios que o Ethereum enfrenta ao equilibrar as demandas computacionais com seu objetivo de manter uma rede sem permissão, inclusiva.
Com o NIST planejando eliminar a criptografia de curva elíptica atual até 2035, o Ethereum deve adotar soluções resistentes a quântica como assinaturas baseadas em hash e Poseidon. Essas soluções apresentam seus próprios compromissos de eficiência.
O uso de STARKs no roteiro do Ethereum enfatiza ainda mais a escalabilidade e a verificabilidade. Embora sejam excelentes para fornecer provas transparentes e resistentes à computação quântica, sua integração apresenta desafios relacionados aos custos computacionais do lado do provador e às ineficiências de pequenos dados. Esses obstáculos devem ser abordados para alcançar totalmente a visão do Ethereum de estado sem estado e verificação eficiente de blocos, garantindo que a rede permaneça robusta diante da crescente demanda.
Apesar desses avanços, permanecem desafios-chave. O Ethereum deve lidar com questões de zk-friendliness, escalabilidade de consenso e as complexidades da integração de criptografia resistente a quantos. Além disso, a compatibilidade com as infraestruturas existentes apresenta obstáculos práticos que exigem soluções de engenharia cuidadosas para evitar interrupções tanto para desenvolvedores quanto para usuários.
O que diferencia o Ethereum não são apenas suas inovações técnicas, mas sua abordagem iterativa para resolver alguns dos problemas mais difíceis na blockchain. O caminho a seguir - seja por meio de tecnologias como Beam Chain, Verkle Trees ou STARK proofs - depende de um esforço colaborativo de desenvolvedores, pesquisadores e da comunidade em geral. Esses avanços não se tratam de alcançar a perfeição da noite para o dia, mas de criar uma base para uma internet transparente, descentralizada e verificável.
A evolução do Ethereum destaca seu papel como um jogador crucial na formação da era Web3. Ao enfrentar os desafios de hoje com soluções práticas, o Ethereum se aproxima de um futuro em que verificabilidade, resistência quântica e escalabilidade se tornam o padrão, e não a exceção.