ZK-EVM: O Santo Graal do ZK-Rollup
- ZEC0%
- ETH0%
- ZK0%
- DYDX0%
- GTC0%
O escalonamento do Ethereum tem sido um tópico em alta, aguardado ansiosamente por muitos usuários. Um equívoco comum é que a Fusão do Ethereum em setembro de 2022, que transitou seu mecanismo de consenso de PoW para PoS, melhoraria o desempenho do Ethereum. Na realidade, a Fusão não alterou o tamanho do bloco, e o tempo do bloco diminuiu apenas de uma média de 13 segundos para 12 segundos, significando que os ganhos de desempenho devem ser limitados. A esperança de escalonamento do Ethereum a curto prazo ainda repousa nas redes de camada 2 (Rollups). Entre as duas principais abordagens de Rollup—Optimistic Rollup e ZK-Rollup—muitas pessoas favorecem a última. O ZK-Rollup não apenas reduz as taxas de rede ao agrupar múltiplas transações off-chain, mas também herda a segurança do Ethereum através de prova de conhecimento zero, eliminando a necessidade de um período de contestação como no Optimistic Rollup.
ZK-Rollups Apenas para Pagamentos
Os primeiros ZK-Rollups foram criticados por falta de compatibilidade com EVM e, portanto, não suportavam funcionalidade de contratos inteligentes. Por exemplo, o zkSync 1.0, principal método de pagamento de doação do Gitcoin, só podia suportar transferências básicas. Aplicações ZK atuais, como dYdX, são personalizadas e não interoperáveis, tornando o desenvolvimento desafiador. Além disso, diferentes aplicações ZK usam circuitos personalizados distintos, limitando a composabilidade. Portanto, o mercado necessita urgentemente de um ZK-Rollup compatível com contratos inteligentes Ethereum, para o qual o principal obstáculo é alcançar uma máquina virtual compatível com prova de conhecimento zero. Este artigo apresentará EVM, ZK-EVM e os principais projetos ZK-EVM e suas diferenças.
O que é EVM?
A Máquina Virtual Ethereum (EVM) serve como motor de execução do Ethereum, funcionando como ambiente de execução para contratos inteligentes. Desenvolvedores escrevem lógica de negócios em linguagens de alto nível como Solidity, que é então compilada em bytecode. A EVM interpreta este bytecode em opcodes legíveis por máquina, executando instruções correspondentes para atualizar o estado do sistema. A EVM é uma máquina virtual baseada em pilha que interage com pilha, memória e armazenamento. Para o Ethereum e várias soluções de escalonamento ou cadeias concorrentes, a EVM tornou-se sinônimo do ecossistema Ethereum, representando seus desenvolvedores, aplicações e ferramentas. Blockchains não compatíveis com EVM devem construir seu próprio ecossistema, exigindo que desenvolvedores recriem aplicações e ferramentas. A compatibilidade com EVM permite que desenvolvedores migrem facilmente contratos Ethereum existentes e acessem as ferramentas do Ethereum.
O Emergente ZK-EVM
Embora a EVM desempenhe um papel crucial no ecossistema Ethereum, desenvolver uma ZK-EVM é desafiador. Uma ZK-EVM gera provas de conhecimento zero enquanto mantém compatibilidade com EVM, permitindo que contratos inteligentes Ethereum sejam implantados sem modificação e validem computações via prova de conhecimento zero. A EVM não foi projetada com compatibilidade ZK em mente, já que algoritmos de prova de conhecimento zero, como zk-SNARKs, não foram amplamente adotados até 2016 pela Zcash. Algumas operações EVM não são amigáveis a ZK, tornando a geração de prova difícil, lenta ou grande.
Desenvolver ZK é notoriamente complexo, envolvendo criptografia, matemática e expertise em hardware. Construir uma ZK-EVM adiciona a este desafio, pois requer tanto compatibilidade EVM quanto compatibilidade com ZK. Felizmente, avanços significativos foram feitos na tecnologia ZK nos últimos anos. Participantes no espaço ZK-EVM, incluindo Starkware, zkSync 2.0, Polygon e Scroll, têm acelerado o desenvolvimento de ZK-EVM, com a maioria anunciando lançamentos de mainnet a partir de 2023.
Comparação de Projetos ZK-EVM
ZK-EVMs não seguem um design ou padrão unificado, e cada projeto estabelece seu próprio equilíbrio entre compatibilidade EVM e suporte ZK. Existem duas abordagens principais:
1. Suporte em Nível de Linguagem de Programação: Personalização de opcodes EVM para otimizar para ZK, reestruturando a máquina virtual para suportar operações amigáveis a ZK e compilando Solidity em um novo opcode VM.
2. Suporte em Nível de Bytecode: Mantendo compatibilidade nativa com opcodes EVM.
Projetos na primeira categoria incluem StarkNet da Starkware e zkSync 2.0. O StarkNet pode executar qualquer dApp Ethereum compilando Solidity na linguagem do StarkNet, Cairo, para implantação em sua VM amigável a ZK. Similarmente, o zkSync 2.0 alcança funcionalidade ZK-EVM através de seus compiladores Yul e Zinc, com Yul como uma representação intermediária de Solidity e Zinc, uma linguagem baseada em Rust, para contratos inteligentes e circuitos ZK gerais. Ambos são construídos no framework LLVM para permitir bytecode ZK-EVM altamente eficiente.
Estes projetos oferecem compatibilidade Solidity no nível da linguagem, permitindo que desenvolvedores migrem contratos Solidity, embora a arquitetura VM subjacente difira da EVM e seja tecnicamente uma zkVM. Algumas ferramentas de desenvolvedor existentes podem não funcionar diretamente devido a conjuntos de instruções VM diferentes, mas esta abordagem é mais amigável a ZK e pode gerar provas mais eficientemente.
Na segunda abordagem, projetos como Polygon ZK-EVM e Scroll mantêm compatibilidade nativa com opcode EVM. A uVM da Polygon, uma VM otimizada para ZK, usa opcodes personalizados para melhorar operações EVM compilando bytecode EVM em micro-opcodes para execução. O Polygon ZK-EVM é totalmente compatível com EVM, permitindo operação perfeita de contratos inteligentes existentes, ferramentas de desenvolvedor e carteiras. O Scroll similarmente projeta circuitos para cada bytecode, verificando cada passo de execução EVM, incluindo carregamento de bytecode, execução de opcodes e atualização de armazenamento.
No blog de Vitalik, ele categoriza ZK-EVMs em tipos. Tipo 1 refere-se a ZK-EVMs desenvolvidas diretamente no Ethereum, que é complexo e ineficiente, com pesquisa em andamento pela Ethereum Foundation. Tipos 2, 2,5 e 3 são ZK-EVMs equivalentes a EVM, com Scroll e Polygon Hermez atualmente no Tipo 3, trabalhando em direção ao Tipo 2,5 ou até mesmo Tipo 2. Tipo 4 inclui ZK-EVMs compatíveis com linguagens de alto nível, como Starkware e zkSync. Estes tipos não têm vantagem ou desvantagem intrínseca, pois não há modelo ZK-EVM padronizado. Como Vitalik afirmou, "Teoricamente, não há necessidade de o Ethereum padronizar uma única implementação ZK-EVM para uso L1; diferentes clientes poderiam usar diferentes provas, então continuamos a nos beneficiar da redundância de código."
Conclusão
Cada solução ZK-EVM tem pontos fortes únicos, e como a maioria dos projetos ainda não disponibilizou seu código como open source, comparações de eficiência não estão disponíveis. Como a maior plataforma de contratos inteligentes, o ecossistema e os efeitos de rede do Ethereum são fortes. ZK-EVM, o santo graal dos ZK-Rollups, aproveita o ecossistema e os efeitos de rede do Ethereum para herdar sua segurança, reduzir taxas e fomentar um ecossistema vibrante de desenvolvedores. No início de 2021, Vitalik sugeriu em seu blog que o Optimistic Rollup poderia superar em computação EVM geral no curto prazo, enquanto o ZK-Rollup poderia se destacar em pagamentos mais simples, negociações e casos de uso específicos de aplicações. No entanto, com avanços na tecnologia zk-SNARK, o ZK-Rollup poderia prevalecer em todos os casos de uso no médio a longo prazo. Com múltiplos projetos ZK-EVM lançando mainnets, o panorama de escalonamento da camada 2 do Ethereum promete ser empolgante no futuro próximo.