Vários projetos ZK-Rollup anunciaram recentemente planos para oferecer suporte à rede principal ou testnet do ZK-EVM e, no início de agosto de 2022, o fundador da Ethereum, Vitalik, publicou uma postagem no blog comparando diferentes tipos de ZK-EVM. O ZK-EVM, o santo graal do ZK-Rollup, atraiu mais uma vez a atenção do mercado e pode ser uma ferramenta poderosa para a expansão do Ethereum no futuro.
O dimensionamento do Ethereum é um tópico clichê e algo que muitos usuários esperam. Muitas pessoas podem ter um mal-entendido de que a fusão do Ethereum planejada para atualizar no final de setembro mudará o mecanismo de consenso de PoW para PoS, o que melhorará o desempenho do Ethereum. Mas, na verdade, a mesclagem não alterou o tamanho do bloco, e o tempo do bloco mudou apenas de uma média de 13 segundos para 12 segundos, portanto, espera-se que a melhoria de desempenho do Ethereum seja limitada até lá. Portanto, a esperança de expansão de curto prazo do Ethereum ainda está na rede da Camada 2 (Rollup). Nas duas direções principais do Rollup, Optimisic Rollup e ZK-Rollup, um número considerável de pessoas está ansioso pelo último, porque o ZK-Rollup pode não apenas reduzir as taxas de rede ao empacotar várias transações fora da cadeia, mas, mais importante, pode passar A prova de conhecimento zero calcula uma prova de validade e a envia à rede Ethereum para herdar a segurança da Ethereum, sem definir um período de desafio como Optimistic Rollup.
ZK-Rollup que só pode ser pago
No entanto, as primeiras críticas ao ZK-Rollup é que ele não pode ser compatível com EVM e não pode suportar funções de contrato inteligente. Por exemplo, o zkSync 1.0, o principal método de pagamento para doação de Gitcoin, só pode suportar funções básicas, como transferência. Atualmente, os aplicativos ZK no mercado, como o dYdX, são aplicativos especialmente personalizados que não podem ser usados universalmente e são difíceis de desenvolver e difíceis de mudar. Ao mesmo tempo, como diferentes aplicativos ZK possuem vários circuitos especiais, eles não podem ser chamados entre si e a composição é baixa. Portanto, o mercado precisa urgentemente de ZK-Rollup que possa suportar contratos inteligentes Ethereum, e o limite principal é uma máquina virtual que possa suportar a prova de conhecimento zero. Felizmente, vários projetos ZK-Rollup anunciaram recentemente planos para oferecer suporte à rede principal ou rede de teste do ZK-EVM. Este artigo apresentará EVM, ZK-EVM e os principais projetos ZK-EVM e suas diferenças.
O que é EVM?
EVM refere-se à Ethereum Virtual Machine (Ethereum Virtual Machine), que é equivalente ao mecanismo de execução e é o ambiente de tempo de execução (Runtime) do contrato inteligente Ethereum. Os desenvolvedores escrevem a lógica de negócios por meio de linguagens de programação de alto nível, como Solidity, e, em seguida, o compilador compila o código em bytecode de linguagem de programação de baixo nível (bytecode), o EVM analisa o bytecode em instruções legíveis por máquina ou opcodes e executa o correspondente As instruções modificam o estado do sistema. EVM é uma máquina virtual (máquina de pilha) baseada em uma estrutura de pilha, que precisa interagir com pilha, memória e armazenamento ao executar o opcode.
Para o Ethereum, vários protocolos de expansão e cadeias públicas concorrentes, o EVM quase se tornou sinônimo do ecossistema Ethereum, representando os desenvolvedores, aplicativos e ferramentas do ecossistema Ethereum. Se uma cadeia pública não suporta EVM, ela precisa recultivar os desenvolvedores em seu próprio ecossistema, e os desenvolvedores precisam re-desenvolver aplicativos e ferramentas. Alguém uma vez comparou os dois gigantes do Optimisic Rollup, Optimism e Arbitrum, e apontou que um dos protocolos é apenas 99% compatível com EVM e o outro é 100% compatível com EVM. Mesmo uma diferença de 1% levará à desvantagem de Competição ecológica Ethereum. Pode-se ver que a compatibilidade com o EVM está diretamente relacionada à compatibilidade com o ecossistema Ethereum. Somente sendo compatível com o EVM os desenvolvedores podem migrar facilmente os contratos Ethereum existentes, e várias ferramentas do ecossistema Ethereum podem ser acessadas sem problemas.
Próximo ZK-EVM
Embora o EVM desempenhe um papel fundamental no ecossistema Ethereum, o desenvolvimento do ZK-EVM é bastante complexo. ZK-EVM significa que ele pode suportar a geração de prova de conhecimento zero e é compatível com EVM. Os contratos inteligentes Ethereum podem ser implantados e executados diretamente sem modificação, e a operação do programa pode provar a validade de seu cálculo por meio de conhecimento zero . O EVM não levou em consideração o ZK no início de seu projeto, porque o ZK não havia feito um grande avanço e não foi adotado pelo mainstream na época. Somente em 2016 o algoritmo de prova de conhecimento zero zk-SNARK foi adotado por Zcash pela primeira vez. Existem algumas operações no EVM que não são amigáveis ao conhecimento zero, ou seja, é difícil gerar provas de conhecimento zero, ou a eficiência de geração de provas é baixa, ou as provas geradas são muito grandes.
Muitas pessoas sabem que o limite para o desenvolvimento do ZK é muito alto, envolvendo não apenas criptografia, matemática, mas também conhecimento de hardware, e o desenvolvimento do ZK-EVM é ainda mais difícil, deve ser compatível com EVM e amigável ao conhecimento zero. Felizmente, tem havido cada vez mais grandes avanços no campo ZK nos últimos anos. Vários players na faixa ZK-EVM, incluindo Starkware, zkSync 2.0, Polygon e Scroll, estão intensificando a pesquisa e desenvolvimento do ZK-EVM, e os três últimos projetos anunciaram a notícia do lançamento da rede de teste em um futuro próximo .
Em 19 de julho, a Scroll lançou o testnet pré-alfa, onde os usuários podem experimentar alguns programas de demonstração, como a versão Uniswap fork e a carteira Metamask. Em 20 de julho, a Matter Labs anunciou que o zkSync 2.0 compatível com EVM será lançado na rede principal por volta de novembro e anunciou o roteiro. Também em 20 de julho, a Polygon anunciou que sua rede de testes ZK-EVM também estará disponível em breve.
Comparação de vários ZK-EVMs
Como o ZK-EVM não possui uma especificação ou padrão de design unificado, cada parte do projeto projeta suas próprias soluções com base em um trade-off entre EVM compatível e suporte ZK de diferentes perspectivas. Atualmente, existem basicamente duas ideias:
- Suporte no nível da linguagem de programação, personalize opcodes EVM, extraia operações amigáveis ao ZK para redesenhar novas máquinas virtuais com diferentes arquiteturas e compile Soilidity em novos opcodes de máquinas virtuais por meio do compilador
- Suporte a nível de bytecode, suporte para opcodes EVM nativos
Projetos na primeira linha de pensamento incluem StarkNet e zkSync 2.0 da Starkware. A solução universal ZK-Rollup da Starkware, StarkNet, pode executar dApps Ethereum arbitrários. Os desenvolvedores podem compilar o Solidity na linguagem de contrato inteligente da StarkNet, Cairo, por meio do compilador e, em seguida, implantar em sua VM compatível com ZK. Semelhante ao Starkware, o zkSync 2.0 implementa a funcionalidade ZK-EVM desenvolvendo front-ends de compilador Yul e Zinc. Yul é uma representação intermediária do Solidity que pode ser compilada em bytecode para diferentes back-ends. O zinco é uma linguagem baseada em Rust para contratos inteligentes e circuitos à prova de conhecimento zero de uso geral. Eles são todos baseados na estrutura de código aberto LLVM e podem implementar o bytecode ZK-EVM mais eficiente.
Esse tipo de projeto é compatível com o Solidity no nível da linguagem, e os desenvolvedores podem implantar e executar contratos inteligentes escritos no Solidity por transferência, mas a arquitetura de VM subjacente não é EVM, estritamente falando, é um zkVM. E devido à diferença no conjunto de instruções da máquina virtual subjacente, algumas ferramentas de desenvolvimento existentes não podem ser usadas diretamente, mas são amigáveis ao ZK e podem gerar provas de conhecimento zero com mais eficiência.
A segunda ideia do projeto inclui Polygon ZK-EVM e Scroll. O polígono ZK-EVM é chamado de uVM. A VM otimizada do zkCircuit possui opcodes personalizados para otimizar as operações do EVM. O bytecode do EVM é compilado primeiro em “Micro opcode” e depois executado no uVM. O Polygon ZK-EVM está planejado para oferecer suporte a todos os opcodes EVM e é uma solução de dimensionamento de conhecimento zero (ZK) totalmente compatível com o Ethereum: todos os contratos inteligentes, ferramentas de desenvolvedor e carteiras existentes funcionam perfeitamente. Scroll também é semelhante ao Polygon, e projetará circuitos para cada bytecode, incluindo a verificação de cada etapa executada pelo EVM, incluindo carregamento de bytecode, execução de opcode e atualização de armazenamento.
Na postagem do blog de Vitalik, ele divide o ZK-EVM em vários tipos. Entre eles, o tipo 1 é desenvolver diretamente o ZK-EVM no Ethereum. Esse desenvolvimento é muito complicado e a eficiência atual é muito baixa. A Fundação Ethereum está estudando isso. Tipo 2, Tipo 2.5 e Tipo 3 são os equivalentes ZK-EVM de EVM, Scroll e Polygon Hermez estão atualmente no estágio do Tipo 3, trabalhando para o Tipo 2.5 e até o Tipo 2. O tipo 4 é compatível com linguagem de alto nível ZK-EVM, incluindo Starkware e zkSync. Esses tipos não são bons ou ruins e não há um padrão uniforme para o ZK-EVM. Como Vitalik coloca: “Em teoria, o Ethereum não precisa padronizar em uma única implementação ZK-EVM para L1; clientes diferentes podem usar provas diferentes, então continuamos nos beneficiando da redundância de código.” (Teoricamente, não há necessidade de Ethereum para 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.)
Resumir
Não há nenhum bem ou mal absoluto no design de cada esquema ZK-EVM, porque o código de todos não é de código aberto e não pode ser comparado em eficiência. Como a maior plataforma de contrato inteligente, o Ethereum tem um forte ecossistema e efeitos de rede. O ZK-EVM é o santo graal do ZK-Rollup. Somente através do ZK-EVM, o ZK-Rollup pode confiar na ecologia e nos efeitos de rede do Ethereum e herdar o Segurança quadrada, taxas mais baixas e acesso mais fácil a um vibrante ecossistema de desenvolvedores, bases de código e ferramentas testadas pelo tempo. No início de 2021, Vitalik disse em seu blog que, no curto prazo, o Optimisic Rollup pode vencer para computação EVM de uso geral, enquanto o ZK-Rollup pode vencer para pagamentos simples, transações e outros casos de uso específicos de aplicativos, mas no imediato À medida que a tecnologia ZK-SNARK melhora, o ZK-Rollup de médio a longo prazo vencerá em todos os casos de uso. À medida que os testnets/mainnets de vários projetos ZK-EVM são lançados um após o outro, acredita-se que a expansão da segunda camada do Ethereum será emocionante 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