Fonte: Scaling Ethereum Efficiently; Compilação: Starknet Chinese Community
visão geral
Rollups foram um tema quente este ano sobre escalar o Ethereum. Entre vários tipos de Rollup, acreditamos que o Rollup de Prova de Validade (doravante referido como VR, ou zk-rollup) é a solução de expansão mais promissora para aumentar o rendimento do Ethereum de maneira segura e descentralizada. O núcleo desse esquema de expansão é o uso de provas de validade para cálculos verificáveis. Veja como funciona:
Rollup de Prova de Validade
Observe: Rollups de prova de validade são muitas vezes erroneamente chamados de Rollups de conhecimento zero (zkRollup), o que não é preciso. A maioria dos Rollup de Provas de Validade não emprega provas de conhecimento zero, nem são usadas para garantir a privacidade. Portanto, o termo “Acúmulo de Prova de Validade” é mais preciso.
Antes de prosseguirmos, precisamos responder à primeira pergunta: o que é uma máquina virtual (VM)? Resumindo, uma máquina virtual é um ambiente no qual programas podem ser executados, como um sistema operacional Windows rodando em um Mac. A VM transita entre os estados depois de executar cálculos em alguma entrada. A Ethereum Virtual Machine (EVM) é a VM que executa contratos inteligentes Ethereum.
Uma máquina virtual de conhecimento zero (zkVM) é um ambiente de execução de programa que, juntamente com a saída do programa, gera provas de validade facilmente verificáveis. A prova de validade é usada para provar que um programa foi executado corretamente. Quando o termo “zkEVM” é usado, geralmente se refere a um Rollup que executa a Ethereum Virtual Machine (EVM) e pode atestar a execução do EVM. Essa terminologia pode ser enganosa porque o próprio EVM não pode gerar essas provas; em vez disso, as provas são produzidas por um mecanismo de prova separado que toma o resultado da execução do EVM como ponto de partida. Além disso, as provas acima estão todas relacionadas à validade e não têm nada a ver com privacidade. Portanto, não pode ser chamado de prova de conhecimento zero para ser preciso. Para consistência, o termo tradicional “zkEVM” ainda é usado neste artigo.
Embora todos os Rollups de Prova de Validade tenham como objetivo escalar o Ethereum com Prova de Validade, esquemas diferentes fazem escolhas diferentes sobre como a VM executa transações fora da cadeia. Muitas provas de validade Rollup escolheram replicar o design EVM (daí o nome “zkEVM rollup”), tentando replicar Ethereum em um rollup L2. A Starknet usa Cairo VM (CVM), uma nova VM projetada para otimizar a eficiência da prova de validade.
Os dois métodos acima têm suas próprias vantagens e desvantagens e compensações, mas o zkEVM sacrifica o desempenho para compatibilidade com Ethereum, enquanto o Cairo VM coloca o desempenho acima da compatibilidade e prioriza a escalabilidade.
zkEVM é um rollup de prova de validade projetado para introduzir totalmente a experiência Ethereum no blockchain L2. O objetivo é replicar o ambiente do desenvolvedor Ethereum no Rollup. Com o zkEVM, os desenvolvedores não precisam ajustar o código ou abandonar as ferramentas EVM originais (e contratos inteligentes) ao escrever ou portar contratos inteligentes para soluções de expansão.
Essa abordagem tem uma falha fundamental, que reduz a escalabilidade das provas de validade. Devido ao foco em ser compatível com Ethereum, o zkEVM é mais lento e consome mais recursos. Ao contrário do CVM, o EVM não é projetado tendo em mente a eficiência da prova. Isso limita o uso de otimizações para melhorar a eficiência e a escalabilidade, afetando o desempenho geral do sistema.
O principal desafio da abordagem zkEVM reside no projeto original arraigado do EVM, que não foi originalmente projetado para ser executado em um ambiente de prova de validade. Portanto, se todo o esforço for feito para realizar as funções do Ethereum, todo o potencial da prova de validade não pode ser liberado, resultando em eficiência insatisfatória. Essa ineficiência, em última análise, reduz o desempenho geral do sistema. A compatibilidade do EVM com provas de validade é prejudicada por:
Portanto, vários tipos de zkEVM são projetados para fornecer diferentes níveis de suporte para ferramentas Ethereum, mas quanto maior a compatibilidade do zkEVM com Ethereum, menor o desempenho. (veja o final do artigo para mais tipos de zkEVM)
A solução zkEVM investiu muito tempo de desenvolvimento para “tornar o EVM adequado para acúmulo de prova de validade”, priorizando a compatibilidade em relação ao desempenho e escalabilidade de longo prazo. Há outra opção: adotar uma nova máquina virtual dedicada e adicionar uma camada adicional para dar suporte às ferramentas Ethereum. Esse é o passo que a Starknet está dando, lançando um pacote cumulativo de prova de validade sem permissão em novembro de 2021. Starknet é o primeiro Rollup de prova de validade que implementa uma plataforma de contrato inteligente de uso geral em uma rede totalmente combinável.
Starknet adota Cairo-VM (CVM) e cria a linguagem de alto nível Cairo com o mesmo nome. Cairo-VM é projetado para geração eficiente de provas de validade da execução do programa.
Com Cairo (VM e linguagem de programação) é possível:
O desenvolvimento de uma linguagem completamente nova pode ser adaptado a necessidades específicas, pode incluir recursos que não estavam disponíveis antes e atender a novas necessidades.
Para criar uma prova da validade de algum cálculo, esse cálculo deve primeiro ser expresso como uma série de restrições matemáticas que descrevem o cálculo. O processo é complexo, a dificuldade está em otimizar os cálculos para eficiência e são necessárias ferramentas específicas.
A linguagem Cairo foi projetada para simplificar esta tarefa para que a StarkEx possa facilmente adicionar funcionalidade e lógica de negócios complexa. Os programas do Cairo são compilados em código de máquina algébrico, uma sequência de números, executados por uma única VM fixa. Com Cairo, o complexo processo de geração de restrições matemáticas que descrevem cálculos (muito complicado para provas de validade) é abstraído e expresso como um conjunto fixo de restrições (menos de 50 restrições no total). Isso permite que os desenvolvedores estendam aplicativos com provas de validade escrevendo código em uma sintaxe familiar sem entender a matemática e a infraestrutura subjacentes.
O compromisso da Starknet com a inovação é evidente em sua abordagem à pluralização do código. O Cairo adota a tecnologia STARK para obter funções de extensão ideais, não se limitando a redigir contratos com o ambiente local do Cairo. Os desenvolvedores também podem escolher o método mais adequado:
Embora Cairo não exista há muito tempo, de acordo com os rankings da TVL, Cairo é a quarta linguagem de programação de contratos inteligentes mais popular, com uma avaliação de mais de US$ 350 milhões.
O zkEVM visa replicar o ambiente do desenvolvedor Ethereum no Rollup e permitir que os desenvolvedores usem ferramentas familiares do Ethereum. Mas essa abordagem limita o potencial para provas de validade e consome muitos recursos.
O Cairo VM, projetado para provas de validade, não está sujeito às limitações do EVM. Cairo VM suporta Cairo 1.0. Inspirado na linguagem Rust, o Cairo 1.0 está mais alinhado com os hábitos do desenvolvedor e mais seguro, formando uma ferramenta poderosa projetada para usar o STARK para provar a expansão eficiente do Ethereum.
É emocionante ver como o Cairo se desenvolve a cada semana, e as opções para desenvolvedores como Kakarot zkEVM e Warp estão crescendo. Com os dApps da Starknet em produção, demonstrando o poder do Cairo, acreditamos firmemente que, no futuro, o Cairo gerará projetos excepcionais que nunca foram vistos antes.
Três caminhos para a expansão do SATRK foram descritos acima e, sem dúvida, haverá mais inovações nos próximos meses. Os desenvolvedores agora têm controle sem precedentes sobre o dimensionamento de blockchains.
Vitalik divide o zkEVM em quatro tipos principais: