Recentemente, vários projetos ZK-Rollup anunciaram planos de sua própria mainnet ou testnet que suportará ZK-EVM. Enquanto isso, no início de agosto de 2022, o fundador do Ethereum, Vitalik, comparou em publicação em um blog os diferentes tipos de ZK-EVM.
O santo graal do ZK-Rollup, que pode ser uma ferramenta poderosa de escalonamento do Ethereum, voltou aos holofotes do mercado, um tópico frequentemente discutido, e esperado por muitos investidores cripto.
Há um equívoco generalizado de que o Merge do Ethereum, agendado para o final de setembro, mudará a rede de PoW para PoS e melhorará seu desempenho.
Na verdade, o Merge não altera o tamanho do bloco, e o tempo médio passará de 13 segundos para 12 segundos. Portanto, a melhoria no desempenho será muito limitada. No curto prazo, o Ethereum terá que contar com Rollups para dimensionamento.
Dos dois tipos principais de Rollups, ou seja, Optimistic Rollups e ZK-Rollups, muitos usuários preferem o último, pois o ZK-Rollups também pode reduzir as taxas de transação ao acoplar várias transações off-chain. Além disso, podem calcular uma prova de validade (validity proof) através da prova de conhecimento zero e enviá-la ao Ethereum e assim herdar as propriedades de segurança da rede, sem precisar configurar um período de contestação como Optimistic Rollups.
ZK-Rollups somente em pagamentos
Dito isto, nos primeiros dias, os ZK-Rollups foram criticados principalmente por sua incompatibilidade com as funções de EVM e contrato inteligente. Por exemplo, o zkSync 1.0, principal método de pagamento para fazer doações de Gitcoin, suporta apenas funções básicas, como transferência.
No momento, as aplicações ZK existentes, como o dYdX, são personalizadas e não suportam uso geral, o que as tornam difíceis de desenvolver e modificar. Enquanto isso, as diferentes aplicações ZK vêm com circuitos específicos, e elas não interagem entre si, resultando em baixa composição.
Como resultado, há uma necessidade urgente de ZK-Rollups que suportem contratos inteligentes baseados em Ethereum. Além disso, a compatibilidade com máquinas virtuais que suportam a prova de conhecimento zero é a chave.
Felizmente, vários projetos ZK-Rollup anunciaram recentemente planos de oferecer suporte à mainnet ou testnet do ZK-EVM. Hoje, vamos conhecer o EVM, ZK-EVM, o principal projeto ZK-EVM e suas diferenças.
O que é EVM?
Funciona como mecanismo de execução, o EVM (Ethereum Virtual Machine) é o ambiente de tempo de execução de contratos inteligentes na rede Ethereum, opera da seguinte forma:
- Os desenvolvedores escrevem a lógica de negócios (código) com linguagens de alto nível, como Solidity;
- o compilador compila o código em um bytecode de baixo nível;
- o EVM analisa o bytecode em instruções legíveis por máquina (opcodes) e executa o comando correspondente para modificar o estado do sistema.
EVM é uma máquina de empilhamento virtual baseada em estrutura de pilha, portanto, precisa interagir com a pilha, a memória e o armazenamento ao executar os opcodes.
Para o Ethereum, protocolos de dimensionamento e redes públicas rivais, o EVM se tornou quase um sinônimo do ecossistema Ethereum, pois representa seus desenvolvedores, aplicações e ferramentas.
Se uma rede pública não suporta EVM, então ela teria que treinar desenvolvedores em seu próprio ecossistema a partir do zero e eles precisariam desenvolver novas aplicações e ferramentas. Ao considerar o Optimism e o Arbitrum, os dois gigantes do Optimistic Rollup, um é 99% compatível com EVM, enquanto o outro é 100%.
Dito isto, no ecossistema Ethereum a diferença de 1% resulta em vantagens e desvantagens claras.
Isso também mostra que a compatibilidade de um projeto com o EVM determina diretamente o quão compatível ele é com o ecossistema Ethereum, e apenas projetos compatíveis podem permitir a migração perfeita de contratos Ethereum existentes, bem como o fácil acesso às muitas ferramentas disponíveis no ecossistema.
O próximo ZK-EVM
Apesar do papel fundamental desempenhado pela EVM no ecossistema Ethereum, o desenvolvimento do ZK-EVM envolve um processo muito complexo.
Os projetos ZK-EVM são compatíveis com EVM e permitem que os desenvolvedores gerem provas ZK. Com eles,é possível implantar e executar contratos inteligentes Ethereum diretamente e sem precisar fazer nenhuma modificação. Ao mesmo tempo, a validade do cálculo referente à operação dos programas pode ser comprovada através do conhecimento zero.
Os desenvolvedores EVM não consideraram o ZK inicialmente, pois quando o EVM foi construído, ele não havia feito nenhum avanço e, portanto, não era reconhecido pelo mainstream.
Em 2016, o Zcash adotou o zk-SNARK, que marca a primeira adoção de um algoritmo de prova de conhecimento zero. Algumas operações EVM não são compatíveis com ZK, e gerar provas ZK com EVM é pode ser difícil ou ineficiente.
O desenvolvimento do ZK, conhecido por seu alto limite, requer experiência em criptografia, matemática e hardware, e o desenvolvimento do ZK-EVM é ainda mais desafiador, pois devem ser compatíveis com EVM e compatíveis com ZK ao mesmo tempo.
Felizmente, o campo do ZK testemunhou grandes avanços nos últimos anos, e projetos que incluem Starkware, zkSync 2.0, Polygon e Scroll estão acelerando com a pesquisa e desenvolvimento de ZK-EVMs. Em particular, os três últimos projetos anunciaram recentemente planos para o lançamento da testnet.
- Em 19 de julho, o Scroll lançou o testnet pré-alfa, onde os usuários podem experimentar programas de demonstração como Uniswap (versão fork) e Metamask.
- Em 20 de julho, o Matter Labs anunciou que o zkSync 2.0 compatível com EVM será lançado na mainnet por volta de novembro e divulgou seu roteiro.
- Em 20 de julho, o Polygon também anunciou que sua testnet ZK-EVM também será lançada em breve.
Comparação entre diferentes ZK-EVMs
Como não há especificações ou critérios de projeto unificados para o ZK-EVM, cada equipe cria sua solução que equilibra a compatibilidade do EVM e o suporte ao ZK em diferentes ângulos.
No momento, a maioria dos projetos ZK-EVM adota uma das duas abordagens a seguir:
- Suporte em nível de idioma:
- criação de opcodes EVM personalizados;
- construção de novas máquinas virtuais com diferentes arquiteturas extraindo operações amigáveis ao ZK;
- transpilação de Solidity para novos opcodes de máquina virtual por meio do compilador.
- Suporte em nível de bytecode: suporte a opcodes nativos EVM.
Os projetos que adotam a primeira abordagem incluem: StarkNet e zkSync 2.0 da Starkware.
O StarkNet é a solução ZK-Rollup de uso geral da Starkware, e pode executar qualquer dApp Ethereum. Os desenvolvedores podem usar um compilador e compilar Solidity para Cairo (linguagem de contrato inteligente da StarkNet) e, em seguida, implantar o dApp em sua VM compatível com ZK.
Semelhante ao Starkware, o zkSync 2.0 cumpre as funções do ZK-EVM desenvolvendo dois front-ends de compilador: Yul e Zinc, que são baseados na estrutura LLVM de código aberto, e geram o bytecode zkEVM mais eficiente.
- Yul é uma representação intermediária do Solidity que pode ser compilada em bytecode em diferentes back-ends;
- Zinc é uma linguagem baseada em Rust para contratos inteligentes e circuitos à prova de conhecimento zero de uso geral.
Esses projetos são compatíveis com o Solidity no nível da linguagem, e os desenvolvedores podem implementar e executar contratos inteligentes através damigração. No entanto, sua arquitetura de VM subjacente não é EVM. Estritamente falando, esses projetos usam um tipo de zkVM.
Além disso, como eles vêm com diferentes comandos de máquina virtual subjacentes, algumas ferramentas de desenvolvimento existentes não podem ser usadas diretamente. Dito isso, os projetos compatíveis com ZK podem gerar provas de conhecimento zero com maior eficiência.
Os projetos que adotam a segunda abordagem incluem Polygon ZK-EVM e Scroll. O Polygon ZK-EVM é chamado de uVM, VM otimizada para zkCircuit com opcodes feitos sob medida no intuito de otimizar a interpretação de EVM.
O bytecode EVM é o primeiro “Micro opcode” compilado e executado em uVM. Planejando oferecer suporte a todos os opcodes EVM, o Polygon ZK-EVM é uma solução de dimensionamento ZK totalmente compatível com Ethereum. Funciona perfeitamente com os contratos inteligentes, ferramentas de desenvolvedor e carteiras existentes.
Assim como o Polygon, o Scroll projetará um circuito em todo bytecode, que envolve a verificação de cada etapa executada pelo EVM, incluindo:
- carregamento;
- execução;
- atualização de armazenamento, etc.
Em sua postagem no blog, Vitalik divide o ZK-EVM em vários tipos:
- Tipo 1: desenvolvidos diretamente no Ethereum, o que envolve um processo excessivamente complicado e ineficiente, e a Ethereum Foundation está agora analisando o assunto.
- Tipo 2, Tipo 2.5 e Tipo 3: Scroll e Polygon Hermez estão crescendo em direção a ZK-EVMs tipo 2 ou mesmo Tipo 2.5, mas no momento ambos os projetos devem ser considerados tipo 3.
- Tipo 4: como Starkware e zkSync, são compatíveis com linguagens de alto nível.
Nenhum tipo é "melhor" ou “pior” que o outro, e não há critérios unificados de avaliação de ZK-EVMs. Como Vitalik colocou: “Teoricamente, não há necessidade de o Ethereum padronizar em uma única implementação ZK-EVM para uso L1; clientes diferentes podem usar provas diferentes, então continuamos nos beneficiando da redundância de código.”
Conclusão
Como os códigos ainda não são abertos, os projetos do ZK-EVM não são categoricamente melhores ou piores do que outros projetos, porque não podemos comparar sua eficiência neste estágio.
Ethereum, a maior plataforma de contrato inteligente, possui um forte ecossistema e grande influência na rede.
Deve-se notar que o ZK-EVM é o santo graal dos ZK-Rollups, que só fazem bom uso do ecossistema do Ethereum através do ZK-EVM, o que lhe permite herdar a segurança da rede e obter acesso mais fácil ao ecossistema, bem como bases de código e ferramentas eficientes.
No início de 2021, Vitalik disse em uma postagem no blog que “no curto prazo, os rollups otimistas provavelmente vencerão para computação EVM de uso geral e os ZK vencerão pagamentos simples, exchanges e outros casos de uso específicos de aplicativos, mas a médio e longo prazo, os rollups de ZK vencerão em todos os casos de uso à medida que a tecnologia ZK-SNARK for aprimorada.”
Conforme o testnet/mainnet de vários projetos ZK-EVM for lançado, o dimensionamento da camada 2 do Ethereum será fascinante em um futuro próximo.
Referências:
Visão geral do ZK-EVM-p1,https://drive.google.com/file/d/1dhZ5GtSK4sHCNcklGzNHfR-lSzplpD8J/view
https://vitalik.ca/general/2022/08/04/zkevm.html
https://starkware.co/starknet/
https://blog.matter-labs.io/zksync-2-0-hello-ethereum-ca48588de179