Qual zkEVM tem o melhor desempenho? Teste de implantação do contrato Ethereum L2

Autor: Jarrod Watts; Compilação: Block Beats

Na guerra de expansão do Ethereum, os rollups otimistas são altamente compatíveis ou até mesmo completamente equivalentes ao EVM, o que leva às vantagens inerentes do Arbitrum e do Optimism no caminho para os desenvolvedores adotarem.

Em contraste, a série ZK é mais difícil. Suas características técnicas inerentes fazem com que os rollups do ZK personalizem suas próprias máquinas virtuais, o que significa que a parte do projeto precisa fazer mais trabalho para "interpretar" o código do EVM ou até mesmo desenvolver e escrever um novo código do zero. No entanto, vários projetos de trilha de rollups do ZK, incluindo Taiko, Polygon, Linea, Scroll e ZkSync Era, lançaram suas próprias implementações do zkEVM.

Como o santo graal da expansão, o zkEVM tem um impacto crucial na experiência de implantação do contrato do desenvolvedor. Diante de uma variedade de projetos cumulativos do ZK, como os desenvolvedores devem escolher?

Este artigo compila um resumo dos tweets de Jarrod Watts. Ele é um engenheiro de relações com o desenvolvedor na Polygon. Ao implantar contratos inteligentes (1 contrato inteligente de Solidity e um contrato NFT) no popular projeto ZK rollups atual, ele mediu o desempenho zkEVM de projetos como Taiko, Polygon, Linea, Scroll e ZkSync Era e comparou suas respectivas vantagens e desvantagens e créditos L2 a L1 Hora de fornecer um guia de teste prático para desenvolvedores que desejam tentar implantar contratos de duas camadas.

O seguinte é uma compilação do texto original do BlockBeats:

**O que é ZK-EVM e por que precisamos dele? ****Antes de interpretar o que é o ZK-EVM, vamos ver por que o ZK-EVM é necessário? **

ZK Rollups traz escalabilidade e alto desempenho para Ethereum. Por outro lado, a solução ZK Rollups não é compatível com EVM (Ethereum Virtual Machine), o que significa que a solução ZK Rollups pode suportar apenas operações limitadas, incluindo transferência, cunhagem ou gravação, e ferramentas como carteiras devem ser desenvolvidas para os usuários.

Portanto, precisamos de ZK Rollups compatíveis com o EVM e, para isso, várias empresas desenvolveram seus próprios ZK-EVMs.

ZK-EVM, ou Zero-Knowledge EVM, é uma implementação de Máquina Virtual Ethereum compatível com Zero-Knowledge Proofs.

A principal função do ZK-EVM é processar transações em lote no Ethereum L2 (camada 2) e enviar a "prova de validade" das transações em lote de volta para o Ethereum L1. Em geral, o zkEVM pode fazer tudo pela rede principal Ethereum. Ele compila código legível por humanos em Solidity ou Vyper em bytecode, executa contratos inteligentes e atualiza o estado do blockchain.

A dificuldade em construir ZK Rollups compatíveis com EVM é que o Ethereum não foi originalmente projetado com a facilidade de ZK em mente. Isso significa que as provas de conhecimento zero exigem muitos recursos para serem computadas.

Entre eles, alguns opcodes de código de operação EVM são particularmente "unfriendly ZK", o que leva aos produtos ZK-EVM finalmente projetados por várias empresas com diferentes compatibilidades EVM.

** O que são opcodes, bytecode e EVM? **

É hora da ciência popular, o que são opcodes, bytecodes e EVM?

Em primeiro lugar, o EVM é o ambiente operacional para contratos inteligentes no Ethereum. O Ethereum armazena o chamado "estado da máquina" em uma estrutura de dados de três árvores, que muda após cada transação em um bloco ser executada.

O EVM é determinístico, o que significa que a execução de um conjunto de instruções em qualquer estado específico resultará no mesmo novo estado.

De acordo com a documentação do desenvolvedor do Ethereum, um antigo estado válido (S) + um novo conjunto de transações válidas (T), o Ethereum gerará um novo estado de saída válido S'

Você pode pensar nisso como um jogo como o xadrez. O Ethereum é como um tabuleiro de xadrez, onde existem diferentes estados do jogo, e no Ethereum as possibilidades desse estado são infinitas. Os jogos de tabuleiro têm suas próprias regras específicas de movimento (compare transações no Ethereum) e têm restrições específicas sobre quais ações podem ser executadas em quais peças. Os jogadores realizam ações (em comparação com os usuários que enviam transações no Ethereum), e o jogo (Ethereum) formula e aplica as regras, resultando em um novo estado do quadro (Ethereum global) após cada rodada (correspondente ao tempo de bloqueio).

Para Ethereum ou qualquer desenvolvimento de blockchain compatível com EVM, os contratos inteligentes precisam ser escritos em Solidity. Solidity é uma linguagem de alto nível projetada para ser legível por humanos para que os desenvolvedores possam se concentrar em escrever código em vez de registros, endereços de memória, pilhas de chamadas e outras abstrações.

No entanto, o EVM não pode ler o Solidity. Em vez disso, ele só entende "bytecode", que é um código binário de baixo nível legível por máquina.

No EVM, "bytecode" (bytecode) representa uma série de "opcodes" (opcodes) do EVM, os opcodes são instruções legíveis de baixo nível do programa, representando operações específicas que podem ser executadas no EVM.

Como uma linguagem de alto nível como o Solidity não pode ser executada diretamente no EVM, precisamos de uma maneira de converter o código de contrato inteligente do opcode da linguagem legível do Solidity para ser executado pelo EVM, que é o trabalho do compilador.

Depois de compilar o código Solidity com o compilador Remix IDE, você pode ver o opcode específico no qual o contrato inteligente é convertido e visualizar o bytecode gerado a partir do opcode.

Aqui estão os opcodes:

A seguir está o bytecode correspondente ao opcode acima.

Ao traduzir bytecodes em opcodes, é possível saber quais instruções de execução estão contidas em bytecodes.

Devido à dificuldade de comprovação de ZK para alguns opcodes específicos em EVM, surgiram no mercado ZK-EVMs com diferentes graus de compatibilidade.

Diferentes tipos de ZK-EVM

Como o design do Ethereum não considerou a compatibilidade do ZK no início, em teoria, quanto mais próximo do design do Ethereum, mais difícil e demorado é gerar provas do ZK. Em agosto de 2022, Vitalik, o fundador da Ethereum, publicou uma postagem no blog "Ouça a interpretação de Vitalik sobre o futuro de diferentes tipos de ZK-EVM", classificando diferentes ZK-EVMs.

Neste artigo, Vitalik classificou vários ZK-EVMs com base nas duas dimensões de compatibilidade EVM e tempo de geração de prova ZK (desempenho). Vitalik listou quatro (semi) tipos neste gráfico, e todos os produtos ZK-EVM atualmente no mercado podem ser incluídos.

1, o primeiro tipo de ZK-EVM é completamente equivalente ao Ethereum, eles não alteram nenhuma parte do sistema Ethereum e são mais fáceis de gerar provas. Nesses sistemas, as provas ZK levam muito tempo (várias horas) para serem geradas. Taiko pertence a este tipo de ZK-EVM.

  1. O segundo tipo é completamente equivalente ao EVM, mas altera algumas representações internas diferentes, como o método de armazenamento do estado da cadeia, para acelerar o tempo de geração de provas ZK. Atualmente, não existem ZK-EVMs desse tipo no mercado, porém, Polygon, Linea e Scroll estão trabalhando nessa direção.

2.5, entre o tipo 2 e o tipo 3, existe também um tipo 2.5. Este tipo é exatamente equivalente ao EVM, exceto que o custo do gás de certos tipos de operações é aumentado para "reduzir significativamente o tempo de prova do pior caso". Atualmente, não existe nenhum ZK-EVM deste tipo no mercado, no entanto, um novo projeto ZK-EVM chamado Kakarot está trabalhando nele.

  1. O tipo 3 é quase equivalente ao EVM, mas com alguns comprometimentos na precisão equivalente para reduzir ainda mais o tempo de prova e simplificar o desenvolvimento do EVM. Atualmente, Polygon, Linea e Scroll são desse tipo.

  2. O tipo 4 é equivalente à linguagem de alto nível do ZK-EVM. Esse tipo de ZK-EVM compila o código-fonte do contrato inteligente em uma linguagem compatível com o ZK-SNARK, que trará tempo de prova mais rápido e desvantagens correspondentes, como incompatibilidade e limitações. Atualmente, o zkSync Era se enquadra nessa categoria.

Vale ressaltar que o tempo necessário para enviar o comprovante de validade de volta para o Ethereum L1 é o tempo que o usuário leva para transferir fundos de volta para o L1. Se a geração da prova levar horas, esse usuário não poderá transferir fundos de volta para L1 durante essas horas.

Combate prático: Taiko, Polygon, Linea, Scroll e avaliação de desenvolvimento da Era ZkSync

Depois de revisar o conhecimento teórico, a seguir está a parte do combate real.

Ao implantar contratos inteligentes Solidity e contratos NFT em Taiko, Polygon, Linea, Scroll e ZkSync Era, respectivamente, o desempenho e os defeitos correspondentes de cada ZK-EVM são testados. O autor também fornece os recursos de desenvolvedor disponíveis, e a avaliação é realizada principalmente a partir das duas dimensões da experiência do desenvolvedor e do tempo de transição de L2 para L1.

Taiko ZK-EVM

Taiko é um tipo 1 ZK-EVM e está atualmente no estágio testnet. Taiko lida exatamente com o que o Ethereum faz; usando as mesmas funções de hash, preços de gás, algoritmos de criptografia, etc.

Processo de operação: implantou um contrato inteligente Solidity simples e implantou uma coleção NFT simples usando o proxy ThirdWeb.

A desvantagem do tipo 1 ZK-EVM é que leva muito tempo para gerar provas quando tudo é exatamente o mesmo que no Ethereum (mesmo internamente). Isso significa que leva várias horas para um usuário conectar o ETH do Taiko L2 de volta ao Ethereum L1 (conforme mostrado abaixo).

Linha ZK-EVM

Linea pertence ao tipo 3 ZK-EVM, e Linea ainda não pode provar todos os opcodes ou pré-compilação; representa um estado interno da cadeia diferente do Ethereum, como usar uma função de hash diferente.

O bytecode implantado é o mesmo do Ethereum.

O processo de implantação foi quase perfeito, facilitando a implantação e a interação com os dois contratos inteligentes. Este é o mesmo comportamento do Ethereum; as ferramentas e carteiras existentes podem ser usadas para implantar contratos inteligentes, interagir com eles, criar NFTs, etc.

No momento da redação deste artigo, o Linea ainda não lançou a interface front-end da ponte. Portanto, apenas as funções de contrato inteligente em ponte podem ser chamadas diretamente.

De acordo com a documentação da Linea, a ponte L2 para L1 do ETH geralmente leva cerca de 15 minutos, mas neste caso demorou cerca de algumas horas.

Polígono ZK-EVM

O Polygon ZK-EVM pertence ao tipo 3 ZK-EVM e lançou a rede principal desde o final de março deste ano.

A documentação oficial do Polygon zkEVM lista todas as diferenças atuais entre o EVM e o zkEVM.

Implantar bytecode no Polygon zkEVM é o mesmo que Ethereum, o que torna a implantação e interação com contratos inteligentes muito simples. Vitalik disse uma vez: "O Polygon zkEVM tem um design exclusivo e eles estão usando o ZK para verificar sua própria linguagem interna chamada zkASM".

A equipe de engenharia da Polygon afirmou que, além de melhorar a geração de provas e o tempo de retirada, a pré-compilação restante será concluída o mais rápido possível no futuro, com o objetivo de se tornar o Tipo 2 no diagrama Vitalik.

Nesse caso de implantação, a ponte da rede principal zkEVM ocorreu sem problemas; o processo de ponte L2 -> L1 leva cerca de 1 hora.

Rolagem

Scroll pertence ao tipo 3 ZK-EVM e está atualmente no estágio testnet. Scroll também lista as diferenças entre ZK-EVM e Ethereum EVM na documentação oficial.

Como outros ZK-EVMs Tipo 3, o processo de implantação é quase perfeito, e os contratos inteligentes Solidity e as coleções NFT são facilmente implantados e interagidos. Espera-se que a transferência de fundos de L2 para L1 leve "10 minutos a algumas horas".

Era ZkSync

ZkSync Era pertence ao Tipo 4 ZK-EVM. Completamente diferente de outros ZK-EVMs, o bytecode de contrato inteligente implantado no zkEVM do ZkSync Era é diferente do Ethereum.

Isso permite que o ZkSync Era forneça um recurso exclusivo, suporte nativo para abstração de conta, que trará uma experiência de desenvolvedor diferente. Normalmente, a maioria das carteiras criptográficas são apenas endereços padrão que podem enviar e receber fundos e interagir com contratos inteligentes. Com a abstração de contas, as carteiras criptográficas são personalizáveis e podem ser projetadas de maneiras mais complexas para fornecer uma gama mais ampla de funcionalidades. Além disso, o zkEVM ainda permite que os desenvolvedores usem as mesmas linguagens de alto nível, como Solidity.

Embora o ZK-EVM do ZkSync Era seja bem diferente do EVM, o ZkSync Era fornece um conjunto de melhores práticas e considerações para desenvolvedores. Além disso, os desenvolvedores precisarão fazer alguns pequenos ajustes no processo de desenvolvimento para criar especificamente para o ZkSync Era.

Por exemplo, no exemplo abaixo, o ambiente Hardhat deve ser instalado e configurado com uma extensão zkSync personalizada para gerar bytecode que pode ser implantado no Era ZK-EVM.

A compilação gera um novo bytecode que é completamente diferente do Ethereum, que é completamente diferente do bytecode gerado pelo ZK-EVM acima.

Vale a pena notar que a ThirdWeb lançou o zkSync Era para fornecer aos desenvolvedores uma experiência de implantação mais conveniente.

Um total de dois contratos inteligentes são implantados durante esta operação, interagem com eles e enviam ativos de L2 de volta para L1. Atualmente, há um atraso de 24 horas para retiradas da rede principal ZkSync Era para Ethereum L1 por motivos de segurança.

Kakarotto ZkEvm

Outro projeto dedicado à realização do Type 2.5 ZK-EVM é o Kakarot ZkEvm, que recebeu financiamento de várias instituições, incluindo Vitalik Buterin e StarkWare, em junho deste ano. Kakarot planeja lançar a rede de teste ainda em 2023.

Conclusão

Para os usuários finais, não importa quem ganha a corrida, pois o progresso de uma solução ZK compatível com EVM é uma grande vitória para a indústria como um todo. Para as partes do projeto, não é tanto uma competição, mas sim explorar diferentes métodos para promover o progresso de toda a indústria. Vitalik ainda tem uma "teoria multi-certificadora". A premissa básica é que diferentes Rollups podem trabalhar juntos para aumentar a segurança geral do Ethereum.

No final do dia, todo mundo quer que o Ethereum seja bem-sucedido. A transformação da expansão L2 é uma das três transformações técnicas que Vitalik acredita que o Ethereum precisa passar. Vamos esperar e ver como isso se desenvolverá no futuro.

Ver original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Recompensa
  • Comentar
  • Partilhar
Comentar
0/400
Nenhum comentário
  • Pino
Negocie cripto em qualquer lugar e a qualquer hora
qrCode
Digitalizar para transferir a aplicação Gate
Novidades
Português (Portugal)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)