Fonte: Scaling Ethereum Efficiently; Compilação: Starknet Chinese Community
visão geral
Validity Proof Rollup é a maneira mais potencial de aumentar o rendimento do Ethereum de forma segura e descentralizada; zkEVM e Cairo VM (CVM) são as duas máquinas virtuais (VM) usadas no tipo Validity Proof Rollup.
O zkEVM se concentra na compatibilidade do Ethereum em detrimento do desempenho e da escalabilidade.
A VM do Cairo adotada pela Starknet prioriza desempenho e escalabilidade em vez de compatibilidade.
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:
Ao contrário do processamento de cada transação na rede principal Ethereum, o operador executa a transação em um ambiente off-chain. O ambiente off-chain é L2, a camada operacional rodando sobre o Ethereum.
Após a conclusão do processamento da transação em massa, o operador L2 retorna o resultado ao estado Ethereum, juntamente com uma prova de validade para verificar a integridade da execução off-chain. Essa comprovação garante que todas as transações do mesmo lote sejam válidas e verificadas autonomamente pelo contrato de verificação on-chain. Esta operação permite que o Ethereum aplique o resultado ao seu estado.
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.
máquina virtual off-chain
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.
Entenda como funciona o zkEVM
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.
Provabilidade do EVM
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:
**EVM usa um modelo baseado em pilha, enquanto a validade se mostra mais eficiente para um modelo baseado em registro. **A natureza baseada em pilha do EVM torna inerentemente mais difícil provar a exatidão de sua execução e fornece suporte direto para sua cadeia de ferramentas nativa.
**O layout de armazenamento do Ethereum depende fortemente de Keccak e grandes árvores Merkle Patricia, ambas as quais são compatíveis com prova de não validade e trazem uma enorme carga de prova. **Por exemplo, Keccak é muito rápido para arquiteturas x86 (normalmente usado para executar EVM), mas leva 90k etapas para provar (requer built-ins especiais). Considerando que Pedersen (uma função hash de conhecimento zero) requer apenas 32 etapas. Mesmo com compactação recursiva, o uso do Keccak no zkEVM ainda consome muitos recursos do provador e, em última análise, o custo é suportado pelo usuário.
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)
Entenda como funciona o Cairo-VM
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:
Prova da eficácia da otimização, cada instrução possui uma expressão algébrica válida
Uma linguagem moderna semelhante ao Rust para escrever programas prováveis
Expressões intermediárias (Sierra) entre a linguagem Cairo de alto nível e o assembly Cairo (instruções VM), que podem executar o código Cairo com eficiência
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.
Cairo e o pluralismo da codificação
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:
**Codificação local no Cairo:**Cairo 1.0 é inspirado em Rust, que está mais de acordo com os hábitos de uso dos desenvolvedores e mais seguro. Escrever a lógica do programa torna-se mais fácil e menos sujeito a erros.
**Compatibilidade Solidity: **Desenvolvedores Solidity podem escrever código que suporta Cairo VM. Essa abordagem fornece uma experiência de desenvolvedor semelhante ao Ethereum e suporta a migração de contratos inteligentes Solidity para Starknet. Há duas maneiras de implementar a migração:
**Tradução: **Tradução é o processo de conversão do código-fonte de uma linguagem de programação em outra linguagem. A equipe Nethermind construiu o transpiler Warp para transpilar o código Solidity para o Cairo. A Warp torna os contratos inteligentes do Solidity portáteis para o Starknet, tornando-o efetivamente um quarto tipo de zkEVM. Atualmente é usado para traduzir e implantar contratos Uniswap com alterações mínimas.
zkEVM na Starknet: A VM do Cairo pode ser usada para atestar a execução de outra VM. Kakarot é um zkEVM escrito no Cairo que pode ser usado para executar contratos inteligentes Ethereum na Starknet. Cairo VM e zkEVM não estão em competição, ao invés de escolher entre os dois, é melhor ter os dois!
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.
Resumir
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.
tipo zkEVM
Vitalik divide o zkEVM em quatro tipos principais:
**Equivalente ao Ethereum completo da primeira categoria: **Não altera nenhuma parte do ecossistema Ethereum.
**O segundo tipo de EVM totalmente equivalente: ** pode ser compatível com dApps existentes e fazer alguns ajustes no design do Ethereum para acelerar a geração de provas.
**A terceira categoria é aproximadamente equivalente a EVM: **Suporta a maioria dos opcodes EVM, remove algumas funções que o zkEVM é difícil de implementar (como funções de pré-compilação e hash).
**O quarto tipo de linguagem de alto nível equivalente: **Use Solidity/Vyper para escrever código de contrato inteligente e traduzi-lo em uma linguagem válida e compatível com provas.
Ver original
O conteúdo serve apenas de referência e não constitui uma solicitação ou oferta. Não é prestado qualquer aconselhamento em matéria de investimento, fiscal ou jurídica. Consulte a Declaração de exoneração de responsabilidade para obter mais informações sobre os riscos.
Prova detalhada de validade Rollup e características técnicas do Cairo VM
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.
máquina virtual off-chain
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.
Entenda como funciona o zkEVM
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.
Provabilidade do EVM
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)
Entenda como funciona o Cairo-VM
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.
Cairo e o pluralismo da codificação
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.
Resumir
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.
tipo zkEVM
Vitalik divide o zkEVM em quatro tipos principais: