Validity Rollups: A melhor opção para escalabilidade do Ethereum
Os Validity Rollups (também conhecidos como zk-rollups) são considerados a solução mais promissora para aumentar a capacidade do Ethereum de forma segura e descentralizada. O núcleo dessa solução de escalabilidade está no uso de provas de validade para realizar cálculos verificáveis. O funcionamento é o seguinte:
Os operadores descarregam a execução de transações para um ambiente fora da cadeia (ou seja, a segunda camada) para processamento. Após processar um grande número de transações, os operadores da segunda camada retornam os resultados à rede principal do Ethereum, juntamente com uma prova de validade da integridade da execução fora da cadeia. Esta prova garante que todas as transações no lote são válidas e são automaticamente verificadas por um contrato de validadores na cadeia. Isso permite que o Ethereum aplique os resultados ao seu estado.
É importante notar que os Validity Rollups são frequentemente erroneamente chamados de rollups de conhecimento zero, mas isso não é preciso. A maioria dos Validity Rollups na verdade não utiliza provas de conhecimento zero e não é utilizada para fins de proteção de privacidade. Portanto, é mais apropriado usar o termo "Validity Rollup".
Máquina virtual off-chain
Antes de discutir, precisamos entender o que é a máquina virtual (VM). Em termos simples, uma VM é um ambiente onde programas podem ser executados, assim como executar o sistema operativo Windows no Mac. Ela alterna entre diferentes estados após realizar cálculos com certas entradas. A máquina virtual Ethereum (EVM) é a VM utilizada para executar contratos inteligentes Ethereum.
Zero-Knowledge Virtual Machine ( zkVM ) é um ambiente de execução de programas especial que não apenas executa programas, mas também gera provas de validade fáceis de verificar, para comprovar que o programa foi executado corretamente. O termo "zkEVM" geralmente se refere a sistemas de rollup que podem utilizar a Ethereum Virtual Machine ( EVM ) e provar a execução do EVM. Este termo pode causar mal-entendidos, pois o EVM em si não gera essas provas; em vez disso, as provas são geradas por um mecanismo de prova independente, que se baseia nos resultados da execução do EVM. Além disso, essas provas se concentram principalmente na validade e não na privacidade, portanto, não são exatamente provas de conhecimento zero. No entanto, para manter a consistência, ainda usaremos o termo tradicional "zkEVM" neste artigo.
Embora todos os Validity Rollups tenham como objetivo utilizar provas de validade para escalar o Ethereum, eles diferem na escolha do VM para executar transações fora da cadeia. Muitos Validity Rollups optam por replicar o design do EVM (daí serem chamados de "zkEVM rollups"), tentando replicar as funcionalidades do Ethereum no L2 rollup. Já o Starknet utiliza um novo VM — Cairo VM(CVM), projetado especificamente para otimizar a eficiência das provas de validade.
Esses dois métodos têm suas vantagens e desvantagens. O zkEVM sacrifica a compatibilidade com Ethereum em troca de desempenho, enquanto o Cairo VM coloca o desempenho acima da compatibilidade, priorizando a capacidade de escalabilidade.
Método zkEVM
zkEVM é um Validity Rollup, cujo objetivo é trazer a experiência completa do Ethereum para blockchains Layer-2. Ele visa replicar o ambiente de desenvolvimento do Ethereum para o rollup. Com o zkEVM, os desenvolvedores, ao escrever contratos inteligentes ou portar contratos inteligentes para soluções mais escaláveis, não precisam alterar o código ou abrir mão de suas ferramentas EVM (e contratos inteligentes).
Uma das principais desvantagens deste método é que ele reduz o potencial de escalabilidade da prova de eficácia. Como o zkEVM se compromete a ser compatível com Ethereum, isso resulta em uma velocidade mais lenta e maior consumo de recursos. Ao contrário do CVM, o EVM não foi projetado considerando a eficiência da prova. Isso limita o uso de otimizações que poderiam melhorar a eficiência e a escalabilidade, afetando, em última análise, o desempenho geral do sistema.
A comprovabilidade do EVM
Os principais desafios do método zkEVM decorrem do design original do EVM - não foi projetado para funcionar em um ambiente de prova de validade. Assim, os esforços para refletir suas funcionalidades não conseguem aproveitar plenamente o potencial da prova de validade, resultando em uma eficiência abaixo do ideal. Essa baixa eficiência acaba por prejudicar o desempenho global do sistema. A compatibilidade do EVM com a prova de validade é impedida pelos seguintes fatores:
O EVM adota um modelo baseado em pilha, enquanto a prova de validade é mais adequada para um modelo baseado em registradores. A característica baseada em pilha do EVM torna mais difícil provar a correção da sua execução e fornecer suporte direto à sua cadeia de ferramentas nativa.
O layout de armazenamento do Ethereum depende fortemente do Keccak e da grande Árvore Merkle Patricia, ambos os quais não favorecem a prova de validade e aumentam significativamente a carga de prova. Por exemplo, o Keccak opera rapidamente na arquitetura x86, mas requer 90k passos para ser provado. Em contraste, a função de hash de Pedersen amigável ao zk necessita apenas de 32 passos. Mesmo com a compressão recursiva, usar o Keccak no zkEVM significa que os usuários precisam arcar com altos custos de recursos de provadores.
Assim, várias implementações de zkEVM oferecem diferentes níveis de suporte às ferramentas Ethereum - quanto maior a compatibilidade do zkEVM com o Ethereum, pior é o desempenho.
Método Cairo-VM
Ao contrário da solução zkEVM, o Starknet adotou uma abordagem diferente: utiliza uma nova máquina virtual dedicada e adiciona suporte a ferramentas Ethereum como uma camada adicional. O Starknet foi lançado em novembro de 2021 e é o primeiro Validity Rollup a oferecer uma plataforma de contratos inteligentes genéricos em uma rede totalmente combinável.
Starknet usa Cairo-VM(CVM), que é uma linguagem de programação de alto nível homônima. Cairo-VM foi projetado especificamente para gerar eficientemente provas de validade para a execução de programas.
Usando Cairo (máquina virtual e linguagem), podemos obter:
Prova de eficácia otimizada - cada instrução tem uma representação algébrica válida.
Linguagem tipo Rust usada para escrever programas verificáveis
Representação intermediária entre Cairo avançado e montagem Cairo (instruções da VM) (Sierra), permitindo a execução eficiente de código Cairo.
Desenvolver uma nova linguagem pode permitir que as pessoas a personalizem de acordo com necessidades específicas e a equipem com funcionalidades que atendam a necessidades que anteriormente não eram satisfeitas.
Cairo e diversidade de codificação
A linguagem Cairo foi originalmente projetada para simplificar o processo de criação de provas de validade computacional e tornar mais fácil a adição de funcionalidades e lógica de negócios complexa ao StarkEx. Programas Cairo são compilados em código de máquina algébrico - uma sequência numérica - executada por uma VM fixa. Com o Cairo, a complexidade de gerar as restrições matemáticas que descrevem o cálculo é abstraída e capturada por um conjunto fixo de restrições (no total menos de 50 restrições). Assim, os desenvolvedores podem aproveitar as provas de validade para expandir seus aplicativos sem precisar entender a matemática subjacente e a infraestrutura, podendo simplesmente escrever código usando a sintaxe com a qual estão familiarizados.
A Starknet foca na inovação, que se reflete na sua abordagem diversificada de codificação. O Cairo utiliza STARKs para obter a melhor capacidade de escalabilidade, que não se limita apenas àqueles que escrevem contratos localmente em Cairo. Os desenvolvedores podem escolher a abordagem que melhor se adapta a eles:
Escrever código localmente em Cairo: com o lançamento do Cairo 1.0, os desenvolvedores agora podem usar a linguagem Rust, que é ergonômica e segura, tornando a escrita da lógica do programa mais fácil e menos propensa a erros.
Compatibilidade com Solidity: desenvolvedores Solidity podem escrever código que pode ser usado pela Cairo VM. Essa abordagem oferece uma experiência de desenvolvimento semelhante à do Ethereum e torna os contratos inteligentes Solidity portáveis para a Starknet. Existem duas maneiras de alcançar isso:
Tradução: A equipe Nethermind criou o tradutor Warp para converter código Solidity em Cairo. O Warp torna os contratos inteligentes Solidity portáteis para o Starknet, efetivamente tornando-os um zkEVM do Tipo 4. Já foi utilizado para traduzir e implantar contratos Uniswap, com apenas pequenas modificações.
zkEVM no Starknet: a Cairo VM pode ser usada para provar a execução de outra VM. Kakarot é um zkEVM escrito em Cairo, que pode ser usado para executar contratos inteligentes Ethereum no Starknet.
Apesar de ter um tempo relativamente curto, o Cairo tornou-se a quarta linguagem de contratos inteligentes mais popular em termos de TVL e já recebeu mais de 350 milhões de dólares em apoio financeiro.
Resumo
zkEVM visa replicar o ambiente Ethereum como um rollup, permitindo que os desenvolvedores utilizem ferramentas familiares do Ethereum. No entanto, essa abordagem limita todo o potencial da prova de validade e pode ser intensiva em recursos.
A Cairo VM é projetada especificamente para sistemas de prova de validade, não limitada pelo EVM. É suportada por uma nova linguagem de programação inspirada em Rust, ergonômica e segura, chamada Cairo 1.0, formando uma ferramenta poderosa destinada a obter a máxima eficiência ao expandir o Ethereum utilizando provas STARK.
Com o contínuo progresso do Cairo e o crescimento de diferentes opções de desenvolvimento, como Kakarot zkEVM e Warp, o futuro parece promissor. Com o dApp Starknet entrando na fase de produção, demonstrando as poderosas capacidades do Cairo, acreditamos que ele será utilizado em projetos mais ambiciosos no futuro.
Graças a várias abordagens de escalabilidade STARK e a outras soluções que podem surgir nos próximos meses, os desenvolvedores agora têm um controle sem precedentes sobre a escalabilidade da blockchain.
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
Validity Rollups: O segredo da nova tendência de escalabilidade do Ethereum
Validity Rollups: A melhor opção para escalabilidade do Ethereum
Os Validity Rollups (também conhecidos como zk-rollups) são considerados a solução mais promissora para aumentar a capacidade do Ethereum de forma segura e descentralizada. O núcleo dessa solução de escalabilidade está no uso de provas de validade para realizar cálculos verificáveis. O funcionamento é o seguinte:
Os operadores descarregam a execução de transações para um ambiente fora da cadeia (ou seja, a segunda camada) para processamento. Após processar um grande número de transações, os operadores da segunda camada retornam os resultados à rede principal do Ethereum, juntamente com uma prova de validade da integridade da execução fora da cadeia. Esta prova garante que todas as transações no lote são válidas e são automaticamente verificadas por um contrato de validadores na cadeia. Isso permite que o Ethereum aplique os resultados ao seu estado.
É importante notar que os Validity Rollups são frequentemente erroneamente chamados de rollups de conhecimento zero, mas isso não é preciso. A maioria dos Validity Rollups na verdade não utiliza provas de conhecimento zero e não é utilizada para fins de proteção de privacidade. Portanto, é mais apropriado usar o termo "Validity Rollup".
Máquina virtual off-chain
Antes de discutir, precisamos entender o que é a máquina virtual (VM). Em termos simples, uma VM é um ambiente onde programas podem ser executados, assim como executar o sistema operativo Windows no Mac. Ela alterna entre diferentes estados após realizar cálculos com certas entradas. A máquina virtual Ethereum (EVM) é a VM utilizada para executar contratos inteligentes Ethereum.
Zero-Knowledge Virtual Machine ( zkVM ) é um ambiente de execução de programas especial que não apenas executa programas, mas também gera provas de validade fáceis de verificar, para comprovar que o programa foi executado corretamente. O termo "zkEVM" geralmente se refere a sistemas de rollup que podem utilizar a Ethereum Virtual Machine ( EVM ) e provar a execução do EVM. Este termo pode causar mal-entendidos, pois o EVM em si não gera essas provas; em vez disso, as provas são geradas por um mecanismo de prova independente, que se baseia nos resultados da execução do EVM. Além disso, essas provas se concentram principalmente na validade e não na privacidade, portanto, não são exatamente provas de conhecimento zero. No entanto, para manter a consistência, ainda usaremos o termo tradicional "zkEVM" neste artigo.
Embora todos os Validity Rollups tenham como objetivo utilizar provas de validade para escalar o Ethereum, eles diferem na escolha do VM para executar transações fora da cadeia. Muitos Validity Rollups optam por replicar o design do EVM (daí serem chamados de "zkEVM rollups"), tentando replicar as funcionalidades do Ethereum no L2 rollup. Já o Starknet utiliza um novo VM — Cairo VM(CVM), projetado especificamente para otimizar a eficiência das provas de validade.
Esses dois métodos têm suas vantagens e desvantagens. O zkEVM sacrifica a compatibilidade com Ethereum em troca de desempenho, enquanto o Cairo VM coloca o desempenho acima da compatibilidade, priorizando a capacidade de escalabilidade.
Método zkEVM
zkEVM é um Validity Rollup, cujo objetivo é trazer a experiência completa do Ethereum para blockchains Layer-2. Ele visa replicar o ambiente de desenvolvimento do Ethereum para o rollup. Com o zkEVM, os desenvolvedores, ao escrever contratos inteligentes ou portar contratos inteligentes para soluções mais escaláveis, não precisam alterar o código ou abrir mão de suas ferramentas EVM (e contratos inteligentes).
Uma das principais desvantagens deste método é que ele reduz o potencial de escalabilidade da prova de eficácia. Como o zkEVM se compromete a ser compatível com Ethereum, isso resulta em uma velocidade mais lenta e maior consumo de recursos. Ao contrário do CVM, o EVM não foi projetado considerando a eficiência da prova. Isso limita o uso de otimizações que poderiam melhorar a eficiência e a escalabilidade, afetando, em última análise, o desempenho geral do sistema.
A comprovabilidade do EVM
Os principais desafios do método zkEVM decorrem do design original do EVM - não foi projetado para funcionar em um ambiente de prova de validade. Assim, os esforços para refletir suas funcionalidades não conseguem aproveitar plenamente o potencial da prova de validade, resultando em uma eficiência abaixo do ideal. Essa baixa eficiência acaba por prejudicar o desempenho global do sistema. A compatibilidade do EVM com a prova de validade é impedida pelos seguintes fatores:
O EVM adota um modelo baseado em pilha, enquanto a prova de validade é mais adequada para um modelo baseado em registradores. A característica baseada em pilha do EVM torna mais difícil provar a correção da sua execução e fornecer suporte direto à sua cadeia de ferramentas nativa.
O layout de armazenamento do Ethereum depende fortemente do Keccak e da grande Árvore Merkle Patricia, ambos os quais não favorecem a prova de validade e aumentam significativamente a carga de prova. Por exemplo, o Keccak opera rapidamente na arquitetura x86, mas requer 90k passos para ser provado. Em contraste, a função de hash de Pedersen amigável ao zk necessita apenas de 32 passos. Mesmo com a compressão recursiva, usar o Keccak no zkEVM significa que os usuários precisam arcar com altos custos de recursos de provadores.
Assim, várias implementações de zkEVM oferecem diferentes níveis de suporte às ferramentas Ethereum - quanto maior a compatibilidade do zkEVM com o Ethereum, pior é o desempenho.
Método Cairo-VM
Ao contrário da solução zkEVM, o Starknet adotou uma abordagem diferente: utiliza uma nova máquina virtual dedicada e adiciona suporte a ferramentas Ethereum como uma camada adicional. O Starknet foi lançado em novembro de 2021 e é o primeiro Validity Rollup a oferecer uma plataforma de contratos inteligentes genéricos em uma rede totalmente combinável.
Starknet usa Cairo-VM(CVM), que é uma linguagem de programação de alto nível homônima. Cairo-VM foi projetado especificamente para gerar eficientemente provas de validade para a execução de programas.
Usando Cairo (máquina virtual e linguagem), podemos obter:
Desenvolver uma nova linguagem pode permitir que as pessoas a personalizem de acordo com necessidades específicas e a equipem com funcionalidades que atendam a necessidades que anteriormente não eram satisfeitas.
Cairo e diversidade de codificação
A linguagem Cairo foi originalmente projetada para simplificar o processo de criação de provas de validade computacional e tornar mais fácil a adição de funcionalidades e lógica de negócios complexa ao StarkEx. Programas Cairo são compilados em código de máquina algébrico - uma sequência numérica - executada por uma VM fixa. Com o Cairo, a complexidade de gerar as restrições matemáticas que descrevem o cálculo é abstraída e capturada por um conjunto fixo de restrições (no total menos de 50 restrições). Assim, os desenvolvedores podem aproveitar as provas de validade para expandir seus aplicativos sem precisar entender a matemática subjacente e a infraestrutura, podendo simplesmente escrever código usando a sintaxe com a qual estão familiarizados.
A Starknet foca na inovação, que se reflete na sua abordagem diversificada de codificação. O Cairo utiliza STARKs para obter a melhor capacidade de escalabilidade, que não se limita apenas àqueles que escrevem contratos localmente em Cairo. Os desenvolvedores podem escolher a abordagem que melhor se adapta a eles:
Escrever código localmente em Cairo: com o lançamento do Cairo 1.0, os desenvolvedores agora podem usar a linguagem Rust, que é ergonômica e segura, tornando a escrita da lógica do programa mais fácil e menos propensa a erros.
Compatibilidade com Solidity: desenvolvedores Solidity podem escrever código que pode ser usado pela Cairo VM. Essa abordagem oferece uma experiência de desenvolvimento semelhante à do Ethereum e torna os contratos inteligentes Solidity portáveis para a Starknet. Existem duas maneiras de alcançar isso:
Tradução: A equipe Nethermind criou o tradutor Warp para converter código Solidity em Cairo. O Warp torna os contratos inteligentes Solidity portáteis para o Starknet, efetivamente tornando-os um zkEVM do Tipo 4. Já foi utilizado para traduzir e implantar contratos Uniswap, com apenas pequenas modificações.
zkEVM no Starknet: a Cairo VM pode ser usada para provar a execução de outra VM. Kakarot é um zkEVM escrito em Cairo, que pode ser usado para executar contratos inteligentes Ethereum no Starknet.
Apesar de ter um tempo relativamente curto, o Cairo tornou-se a quarta linguagem de contratos inteligentes mais popular em termos de TVL e já recebeu mais de 350 milhões de dólares em apoio financeiro.
Resumo
zkEVM visa replicar o ambiente Ethereum como um rollup, permitindo que os desenvolvedores utilizem ferramentas familiares do Ethereum. No entanto, essa abordagem limita todo o potencial da prova de validade e pode ser intensiva em recursos.
A Cairo VM é projetada especificamente para sistemas de prova de validade, não limitada pelo EVM. É suportada por uma nova linguagem de programação inspirada em Rust, ergonômica e segura, chamada Cairo 1.0, formando uma ferramenta poderosa destinada a obter a máxima eficiência ao expandir o Ethereum utilizando provas STARK.
Com o contínuo progresso do Cairo e o crescimento de diferentes opções de desenvolvimento, como Kakarot zkEVM e Warp, o futuro parece promissor. Com o dApp Starknet entrando na fase de produção, demonstrando as poderosas capacidades do Cairo, acreditamos que ele será utilizado em projetos mais ambiciosos no futuro.
Graças a várias abordagens de escalabilidade STARK e a outras soluções que podem surgir nos próximos meses, os desenvolvedores agora têm um controle sem precedentes sobre a escalabilidade da blockchain.