O que é a ZkEVM e como ela pode melhorar o ecossistema da Ethereum?
Página Inicial
Artigos
O que é a ZkEVM e como ela pode melhorar o ecossistema da Ethereum?

O que é a ZkEVM e como ela pode melhorar o ecossistema da Ethereum?

Avançado
Publicado em Apr 14, 2023Atualizado em Jun 15, 2023
8m

Este artigo é um envio da comunidade. O autor é Kenny Li, cofundador da Manta Network, um protocolo de Layer-1 de privacidade programável, fomentado pela tecnologia de zero-knowledge proof (prova de conhecimento zero). 

As opiniões neste artigo são do colaborador/autor e não refletem necessariamente as opiniões da Binance Academy.

TL;DR

  • A máquina virtual de conhecimento zero da Ethereum (zkEVM) é uma máquina de estados capaz de executar contratos inteligentes de maneira compatível com a tecnologia de zero-knowledge proof (ZKP). 

  • As zkEVMs aprimoram as capacidades de zero-knowledge rollups (zk-rollups) na Ethereum para oferecer suporte a aplicativos descentralizados (DApps). 

  • As zkEVMs facilitam a implantação de projetos Ethereum, existentes e novos, usando ZKPs para melhorar o ecossistema da Ethereum.

Introdução 

Inicialmente, ao propor a rede em 2014, os desenvolvedores da Ethereum não consideraram a tecnologia ZKP. Nos últimos anos, no entanto, a ZKP ganhou atenção e há a expectativa de que ela tenha um papel muito mais relevante no espaço blockchain. Sendo assim, os esforços para combinar a tecnologia ZKP e a máquina virtual da Ethereum se intensificaram. 

Para compreender o que é zkEVM, vamos primeiro fazer uma breve revisão de seus dois conceitos fundamentais: zk-rollups e EVM. 

O que são zk-rollups? 

Um rollup é uma solução de escalabilidade que consolida várias execuções de transações fora da blockchain principal e envia os dados de volta para a rede principal como uma única transação. Esse processo aumenta a taxa de transferência, ao mesmo tempo em que reduz o custo de execução dessas transações.

Na Ethereum, as transações dentro de um rollup são compactadas e enviadas para a mainnet (rede principal) da Ethereum pelo custo de verificação de uma única transação. A mainnet da Ethereum fornece liquidação e verifica os dados das transações incluídas no rollup.

Um zk-rollup é um tipo de rollup que usa a tecnologia ZKP, uma tecnologia criptográfica que permite que a validade de uma informação seja verificada sem revelar a informação em si. Zk-rollups não precisam publicar todos os dados de transações na mainnet da Ethereum; eles precisam apenas das diferenças de estado (como alterações no status da conta do usuário) e da comprovação de validade, o que reduz as taxas de Gas do processo.

A segurança dos zk-rollups vem da criptografia ZKP, que usa meios criptográficos para verificar a prova e alcançar um estado onde não há necessidade de confiança (trustlessness). Eles são diferentes de outros rollups, como optimistic rollups, cuja segurança vem da economia da teoria dos jogos, onde os usuários são incentivados a agir honestamente e em benefício da rede para evitar possíveis perdas e receber recompensas.

O que é EVM?

A EVM é uma máquina de estados na qual o sistema de contas e os contratos inteligentes da Ethereum são executados. Cada execução de contrato inteligente aciona a EVM para fazer a transição de um estado antigo para um novo estado. A EVM define as regras para calcular novos estados válidos de um bloco para outro.

O conceito de estado é importante na Ethereum. É uma estrutura de dados de árvore de Merkle (Merkle Patricia Trie) que representa o estado atual da Ethereum e permite que qualquer pessoa rastreie informações de transação desde o bloco atual até o bloco de gênese.

Todos os nodes envolvidos na manutenção da Ethereum existem para garantir continuidade e consenso, o que permite que cada node consulte o estado atual exato. A EVM desempenha um papel fundamental na manutenção dessa consistência.

Como a ZkEVM funciona? 

Por padrão, a EVM não oferece suporte para ZKPs. O objetivo da zkEVM é garantir a continuidade do estado da Ethereum, fornecendo uma prova de que todas as informações estão corretas. Dessa forma, os vários fatores envolvidos no cálculo desses processos são verificados, mantendo a segurança e a privacidade da rede. 

A zkEVM faz isso replicando o ambiente da Ethereum como zk-rollups. Ele pega o estado inicial, calcula todas as transações e, em seguida, gera um novo estado atualizado juntamente com uma prova ZKP correspondente. Essa prova é enviada a um contrato inteligente que verifica a exatidão dos dados (tanto o output do estado inicial quanto o do novo estado) sem precisar verificar todas as transações individualmente. 

Como as zkEVMs são baseadas na EVM, os desenvolvedores podem facilmente transferir DApps e contratos inteligentes da Ethereum para zkEVMs, sem precisar fazer todo o trabalho de desenvolvimento da ZKP. Em outras palavras, as zkEVMs permitem que zk-rollups executem contratos inteligentes, além de oferecer suporte para swap (troca) de tokens e pagamentos previamente suportados sem zkEVMs.   

Devido aos recursos de compatibilidade da EVM, os desenvolvedores podem criar novos produtos usando as mesmas ferramentas e a linguagem de programação (Solidity) da EVM, ao mesmo tempo em que desfrutam da segurança aprimorada proporcionada pela zkEVM. Os mesmos benefícios também se aplicam aos usuários — eles podem continuar usando os mesmos DApps e ferramentas que já conhecem, mas com maior segurança e privacidade.

Compatibilidade EVM vs. Equivalência EVM 

Quando dizemos que uma blockchain é compatível com EVM, significa que ela oferece um ambiente capaz de implantar DApps escritos na linguagem de programação Solidity. A linguagem Solidity é projetada para desenvolvimento de contratos inteligentes executados na rede Ethereum. 

Na realidade, desenvolvedores da Ethereum podem facilmente copiar códigos de DApps existentes na Ethereum e implantá-los em outras redes compatíveis com a EVM, com poucas modificações necessárias. Para os usuários, qualquer endereço blockchain compatível com a EVM será o mesmo que seu endereço Ethereum

Isso significa que os endereços são compatíveis com carteiras convencionais, como Metamask e Trust Wallet. Atualmente, as principais blockchains compatíveis com EVM incluem BNB Chain, Avalanche C-Chain e Polygon. 

A compatibilidade da EVM não deve ser confundida com a equivalência da EVM, que significa que, da perspectiva do desenvolvedor de DApps, os rollups de Layer-2 são quase idênticos à Layer-1 da Ethereum. 

Usando uma analogia de sistema operacional, a equivalência EVM é semelhante à restauração de arquivos e configurações através do iCloud da Apple quando um usuário muda de um computador antigo para um novo (ambos executando o sistema operacional da Apple).

Por outro lado, pensando no mesmo exemplo ao considerar a compatibilidade EVM, se o novo computador mudar para um sistema Windows, será necessário baixar os arquivos originais por meio do armazenamento em nuvem e convertê-los para recuperar as configurações e arquivos antigos. 

Diferentes tipos de ZkEVMs 

Gerar e verificar ZKPs diretamente usando EVM é um processo extremamente lento, pois a Ethereum não foi originalmente projetada para suportar a tecnologia ZKP. Em alguns casos, isso pode demorar horas. No entanto, é fundamental encontrar um equilíbrio entre compatibilidade EVM e eficiência ZKP.

O fundador da Ethereum, Vitalik Buterin, categorizou as zkEVMs nos quatro tipos a seguir. Semelhante ao trilema blockchain, cada categoria tem suas vantagens e desvantagens em termos de eficiência de desempenho ZKP e compatibilidade EVM.    

Tipo 1: Equivalência em nível de consenso — zkEVM completamente equivalente à Ethereum

A nível de consenso, o tipo 1 de zkEVM — também conhecido como enshrined rollup — é equivalente ao da Ethereum. As transações e o estado blockchain da zkEVM também são idênticos aos da Ethereum. Esse tipo de zkEVM pode verificar blocos e ser usado diretamente com clientes de execução da Ethereum.

As zkEVMs de tipo 1 oferecem mais escalabilidade à própria Ethereum e podem ser introduzidas diretamente na mainnet da Ethereum. A desvantagem é que a eficiência ZKP é extremamente baixa e requer uma grande quantidade de poder computacional para verificação. A solução é usar validadores paralelos em larga escala ou circuitos integrados especializados para zk-SNARKs no futuro.

ZkEVMs de tipo 1 com alta eficiência ZK seriam a forma ideal de zkEVM. Atualmente, existem muitos projetos construindo ou explorando esse tipo de zkEVM.

Tipo 2: Equivalência em nível de bytecode — completamente equivalente à EVM

O tipo 2 é completamente equivalente à EVM, mas não à Ethereum. Difere da Ethereum em termos de estruturas de dados (como estrutura de bloco e árvore de estado) e exclui algumas operações de stack que são incompatíveis com ZKs. 

É um tipo totalmente compatível com os DApps existentes, ferramentas de remoção de bugs e infraestrutura de desenvolvedor da Ethereum. A equivalência em nível de bytecode pode acelerar os tempos de comprovação, embora não significativamente. Algumas desvantagens do tipo 2 são custo, falta de sinergia com ZKs e baixa eficiência. 

Tipo 2.5: Semelhante ao tipo 2, mas com modificações nas taxas de Gas

O tipo 2.5 compartilha as vantagens e desvantagens do tipo 2, mas tem taxas de Gas um pouco mais baixas.

Tipo 3: Equivalência em nível de bytecode — quase equivalente à EVM

Em comparação com o tipo 2, o tipo 3 sacrifica ainda mais a compatibilidade para melhorar a eficiência ZK. Ele exclui funções difíceis de implementar na zkEVM, como pré-compilações. Portanto, é preciso reescrever alguns códigos usados em DApps que exigem essa função.

Tipo 4: Equivalência em nível de linguagem de desenvolvimento — linguagem de alto nível equivalente à EVM

As EVMs do tipo 4 têm o melhor desempenho ZK, mas uma compatibilidade relativa abaixo da média.

Considerações finais 

O principal objetivo da implementação da zkEVM é ampliar o suporte da computação ZKP para a execução de contratos inteligentes e, ao fazê-lo, estender os DApps a todos os protocolos compatíveis com EVM. Mas as aplicações das ZKPs não param por aí. 

A tecnologia ZKP tem potencial para ser compatível com casos de uso da Web2. A combinação de vários casos de uso da Web2 com ZKPs pode tornar os aplicativos da Web3 mais práticos e fáceis de usar. Com isso, os usuários que já estão acostumados com os navegadores de internet tradicionais também teriam mais acesso à Web3, o que por sua vez, impulsionaria a adoção da tecnologia.

Leituras adicionais


Aviso de Risco e Isenção de Responsabilidade: este conteúdo é apresentado a você “no estado em que se encontra“ apenas para fins informativos e educacionais, sem qualquer tipo de garantia. O conteúdo não deve ser interpretado como aconselhamento financeiro, jurídico ou profissional, e não tem o objetivo de recomendar a compra de qualquer produto ou serviço específico. Você deve buscar seu próprio conselho de consultores profissionais. No caso de contribuições e artigos enviados por colaboradores terceirizados, note que as opiniões expressas pertencem ao respectivo autor e não refletem necessariamente as opiniões da Binance Academy. Para mais detalhes, por favor leia nosso aviso aqui. Os preços dos ativos digitais podem ser voláteis. O valor do seu investimento pode aumentar ou diminuir e você pode não recuperar o valor investido. Você é o único responsável por suas decisões de investimento e a Binance Academy não se responsabiliza por nenhuma de suas possíveis perdas. Este material não deve ser interpretado como aconselhamento financeiro, jurídico ou profissional. Para mais informações, por favor consulte nossos Termos de Uso e Aviso de Risco.