Apresentando o Aço

intermediárioMay 27, 2024
RISC Zero é um dos principais desenvolvedores zkVM e lançou recentemente o Steel, uma biblioteca de provas de chamadas de visualização baseada no Alloy. Isso traz uma transformação significativa na forma como os desenvolvedores interagem com Ethereum L1 ou outras cadeias EVM. Utilizando provas de conhecimento zero e o RISC Zero zkVM, o Steel permite que os desenvolvedores realizem chamadas de visualização e leiam e computem comprovadamente o estado do Ethereum de maneira escalável, segura e econômica.
Apresentando o Aço

Apresentando o aço: uma liga endurecida, conectando o RISC Zero ao Ethereum

O sucesso do Ethereum levou a um ecossistema próspero de aplicativos descentralizados, mas os desafios de escalabilidade se tornaram cada vez mais aparentes. Os desenvolvedores ficam com uma escolha difícil: limitar a funcionalidade e a riqueza de dados de seus aplicativos ou arcar com o ônus de taxas excessivas de gás ou limites de gás. E se houvesse uma maneira de os desenvolvedores ignorarem essas limitações?

Steel, a biblioteca de prova de chamadas de exibição baseada em Alloy da RISC Zero, representa uma grande mudança na forma como os desenvolvedores interagem com cadeias baseadas em Ethereum L1 ou EVM. Ao aproveitar o poder das provas de conhecimento zero e do RISC Zero zkVM, o Steel permite que os desenvolvedores executem chamadas de visualização e leiam e computem comprovadamente sobre o estado do Ethereum de maneira escalável, segura e economicamente eficiente.

Solidity's Convenience, com o poder do ZK.

O Steel preenche a lacuna entre o desenvolvimento de aplicativos da Ethereum e a tecnologia de conhecimento zero, tornando mais fácil do que nunca para os desenvolvedores aproveitar o poder do ZK em seus contratos inteligentes. Combinado com os recursos do RISC Zero zkVM, o Steel permite que os desenvolvedores criem aplicativos mais seguros, escaláveis e eficientes no Ethereum L1 ou em qualquer cadeia equivalente a EVM.

Com o Steel, os desenvolvedores ganham a capacidade de:

  • Execute contratos inteligentes do Solidity diretamente no zkVM para uma lógica on-chain mais sofisticada
  • Acesse o estado histórico do Ethereum dentro da zkVM
  • Calcule sem limitações de tamanho de blocos e transações usando continuações
  • Garanta cálculos off-chain seguros e confiáveis, como se fossem executados on-chain
  • Utilize o primeiro zkVM pronto para produção, rigorosamente testado e usado por vários parceiros
  • Computação privada sobre o estado Ethereum
  • Mantenha a flexibilidade com uma base de código de código aberto, sem bloqueio de fornecedor

Integração perfeita e redução de custos

Com o Steel, executar uma chamada de visualização é tão simples quanto especificar os métodos de Solidity desejados. Seja recuperando um saldo de token ERC-20 (exemplo) ou acessando qualquer aspecto do estado do Ethereum, o Steel simplifica o processo, garantindo segurança e eficiência por meio da integração perfeita com o RISC Zero zkVM. Nossos testes mostraram a capacidade da Steel de lidar com mais de 100K operações SLOAD em uma única chamada de visualização, potencialmente economizando milhares de dólares em taxas de gás na mainnet. Podemos provar isso em cerca de 15 minutos usando Bonsai. Isso levaria pelo menos 210 milhões de gás, excedendo o limite do bloco em 7x.

Exemplo: ERC20 balanceOf

Nos trechos de código abaixo, demonstramos o processo de comprovação do saldo de um endereço específico para um contrato ERC-20 implantado no Ethereum usando o Steel. Este exemplo mostra como os desenvolvedores podem utilizar o Steel para interagir com dados Ethereum on-chain dentro dos limites de uma zkVM. Você pode encontrar o código completo aqui.

Definindo a assinatura da função Exibir

Comece definindo a assinatura da função ERC-20 balanceOf usando o sol! macro. Isso analisará a sintaxe Solidity para gerar uma struct Rust correspondente, que implementa o traço SolCall. Essa struct pode ser usada para chamar o método balanceOf, que usa um endereço de conta e retorna o saldo de token ERC-20 associado.

Preparando a chamada

Em seguida, configure a chamada instanciando a struct balanceOfCall com o endereço da conta de destino. Além disso, defina constantes para o endereço do contrato que você deseja consultar e o endereço do chamador.

Executando a chamada no Main

A função principal é executada no zkVM, produzindo uma prova de conhecimento zero. Ele começa lendo o ambiente de entrada e, em seguida, constrói um objeto ViewCallEnv, garantindo que o estado atual corresponda à raiz do estado esperado. Depois de se comprometer com o hash e o número de bloco relevantes, a chamada de exibição é executada e o saldo é impresso.

Como funciona

O Steel simplifica o processo de comprovação da execução do código Solidity no RISC Zero zkVM em três etapas simples:

  1. Fase de pré-voo: Inicie um pré-voo fazendo uma chamada de visualização para o nó RPC do Ethereum. Isso armazena em cache os slots de armazenamento necessários, preenchendo o banco de dados EVM apenas com os dados necessários para a consulta. Todos os slots de armazenamento são descobertos e buscados automaticamente com base na execução da chamada de exibição.
  2. Verificação de armazenamento: Realize uma verificação de integridade de armazenamento, garantindo que os dados no banco de dados EVM estejam alinhados com a raiz de estado do blockchain, confirmando assim sua legitimidade.
  3. Execução de Solidez: Execute a função Solidity dada no EVM, dentro do RISC Zero zkVM.

Qual é a diferença entre isso e as provas de armazenamento?

Com as provas de armazenamento tradicionais, os desenvolvedores devem selecionar manualmente quais slots de armazenamento seus contratos inteligentes usam e reimplementar a lógica de contrato inteligente. Com o aço, todos os slots de armazenamento são descobertos e buscados automaticamente com base na execução da chamada de exibição. Isso economiza uma quantidade significativa de tempo dos desenvolvedores e diminui o espaço de erros de implementação, reduzindo a chance de vulnerabilidades de segurança.

Obtendo o hash de bloco verificado

Ao usar o opcode blockhash para validação em contratos inteligentes Ethereum, o compromisso para validação deve fazer referência a um blockhash de no máximo 256 blocos de idade. Dado um tempo médio de bloqueio de 12 segundos, isso define um período de tempo estreito de aproximadamente 50 minutos para concluir a geração da prova e confirmar a inclusão da transação de validação em um bloco.

Quando um hash de bloco verificado com mais de 256 blocos é necessário on-chain, várias estratégias podem ser usadas:

  • Quando o hash de bloco que será necessário é conhecido com antecedência (por exemplo, ao iniciar uma proposta de governança), esse hash de bloco pode ser salvo no estado do contrato.
  • Outra abordagem é usar o RISC Zero para provar a cadeia de hash do bloco que foi consultado até um bloco no 256 mais recente.

O futuro dos aplicativos on-chain

Vislumbramos um futuro em que haja uma integração perfeita da computação off-chain com a validação on-chain. O Steel é nossa contribuição para tornar essa visão uma realidade, permitindo que os desenvolvedores acessem e computem comprovadamente toda a história do Ethereum dentro do zkVM para criar a próxima onda de aplicativos on-chain ricos em dados e mais funcionais.

Introdução ao Steel

O aço é um componente-chave do compromisso da RISC Zero em lançar o zkVM 1.0, um marco em direção à verificação de prova on-chain barata e segura e às provas universais de conhecimento zero. Comece a usar o Steel hoje visitando nosso repositório do GitHub para obter documentação, exemplos de código e recursos para ajudá-lo a integrar o Steel ao seu projeto.

Disclaimer:

  1. Este artigo foi reproduzido de [riscze]. Todos os direitos autorais pertencem ao autor original [Santiago Campos]. Se houver objeções a essa reimpressão, entre em contato com a equipe do Gate Learn e eles lidarão com isso prontamente.
  2. Isenção de responsabilidade: Os pontos de vista e opiniões expressos neste artigo são exclusivamente do autor e não constituem qualquer conselho de investimento.
  3. As traduções do artigo para outros idiomas são feitas pela equipe do Gate Learn. A menos que mencionado, copiar, distribuir ou plagiar os artigos traduzidos é proibido.

Apresentando o Aço

intermediárioMay 27, 2024
RISC Zero é um dos principais desenvolvedores zkVM e lançou recentemente o Steel, uma biblioteca de provas de chamadas de visualização baseada no Alloy. Isso traz uma transformação significativa na forma como os desenvolvedores interagem com Ethereum L1 ou outras cadeias EVM. Utilizando provas de conhecimento zero e o RISC Zero zkVM, o Steel permite que os desenvolvedores realizem chamadas de visualização e leiam e computem comprovadamente o estado do Ethereum de maneira escalável, segura e econômica.
Apresentando o Aço

Apresentando o aço: uma liga endurecida, conectando o RISC Zero ao Ethereum

O sucesso do Ethereum levou a um ecossistema próspero de aplicativos descentralizados, mas os desafios de escalabilidade se tornaram cada vez mais aparentes. Os desenvolvedores ficam com uma escolha difícil: limitar a funcionalidade e a riqueza de dados de seus aplicativos ou arcar com o ônus de taxas excessivas de gás ou limites de gás. E se houvesse uma maneira de os desenvolvedores ignorarem essas limitações?

Steel, a biblioteca de prova de chamadas de exibição baseada em Alloy da RISC Zero, representa uma grande mudança na forma como os desenvolvedores interagem com cadeias baseadas em Ethereum L1 ou EVM. Ao aproveitar o poder das provas de conhecimento zero e do RISC Zero zkVM, o Steel permite que os desenvolvedores executem chamadas de visualização e leiam e computem comprovadamente sobre o estado do Ethereum de maneira escalável, segura e economicamente eficiente.

Solidity's Convenience, com o poder do ZK.

O Steel preenche a lacuna entre o desenvolvimento de aplicativos da Ethereum e a tecnologia de conhecimento zero, tornando mais fácil do que nunca para os desenvolvedores aproveitar o poder do ZK em seus contratos inteligentes. Combinado com os recursos do RISC Zero zkVM, o Steel permite que os desenvolvedores criem aplicativos mais seguros, escaláveis e eficientes no Ethereum L1 ou em qualquer cadeia equivalente a EVM.

Com o Steel, os desenvolvedores ganham a capacidade de:

  • Execute contratos inteligentes do Solidity diretamente no zkVM para uma lógica on-chain mais sofisticada
  • Acesse o estado histórico do Ethereum dentro da zkVM
  • Calcule sem limitações de tamanho de blocos e transações usando continuações
  • Garanta cálculos off-chain seguros e confiáveis, como se fossem executados on-chain
  • Utilize o primeiro zkVM pronto para produção, rigorosamente testado e usado por vários parceiros
  • Computação privada sobre o estado Ethereum
  • Mantenha a flexibilidade com uma base de código de código aberto, sem bloqueio de fornecedor

Integração perfeita e redução de custos

Com o Steel, executar uma chamada de visualização é tão simples quanto especificar os métodos de Solidity desejados. Seja recuperando um saldo de token ERC-20 (exemplo) ou acessando qualquer aspecto do estado do Ethereum, o Steel simplifica o processo, garantindo segurança e eficiência por meio da integração perfeita com o RISC Zero zkVM. Nossos testes mostraram a capacidade da Steel de lidar com mais de 100K operações SLOAD em uma única chamada de visualização, potencialmente economizando milhares de dólares em taxas de gás na mainnet. Podemos provar isso em cerca de 15 minutos usando Bonsai. Isso levaria pelo menos 210 milhões de gás, excedendo o limite do bloco em 7x.

Exemplo: ERC20 balanceOf

Nos trechos de código abaixo, demonstramos o processo de comprovação do saldo de um endereço específico para um contrato ERC-20 implantado no Ethereum usando o Steel. Este exemplo mostra como os desenvolvedores podem utilizar o Steel para interagir com dados Ethereum on-chain dentro dos limites de uma zkVM. Você pode encontrar o código completo aqui.

Definindo a assinatura da função Exibir

Comece definindo a assinatura da função ERC-20 balanceOf usando o sol! macro. Isso analisará a sintaxe Solidity para gerar uma struct Rust correspondente, que implementa o traço SolCall. Essa struct pode ser usada para chamar o método balanceOf, que usa um endereço de conta e retorna o saldo de token ERC-20 associado.

Preparando a chamada

Em seguida, configure a chamada instanciando a struct balanceOfCall com o endereço da conta de destino. Além disso, defina constantes para o endereço do contrato que você deseja consultar e o endereço do chamador.

Executando a chamada no Main

A função principal é executada no zkVM, produzindo uma prova de conhecimento zero. Ele começa lendo o ambiente de entrada e, em seguida, constrói um objeto ViewCallEnv, garantindo que o estado atual corresponda à raiz do estado esperado. Depois de se comprometer com o hash e o número de bloco relevantes, a chamada de exibição é executada e o saldo é impresso.

Como funciona

O Steel simplifica o processo de comprovação da execução do código Solidity no RISC Zero zkVM em três etapas simples:

  1. Fase de pré-voo: Inicie um pré-voo fazendo uma chamada de visualização para o nó RPC do Ethereum. Isso armazena em cache os slots de armazenamento necessários, preenchendo o banco de dados EVM apenas com os dados necessários para a consulta. Todos os slots de armazenamento são descobertos e buscados automaticamente com base na execução da chamada de exibição.
  2. Verificação de armazenamento: Realize uma verificação de integridade de armazenamento, garantindo que os dados no banco de dados EVM estejam alinhados com a raiz de estado do blockchain, confirmando assim sua legitimidade.
  3. Execução de Solidez: Execute a função Solidity dada no EVM, dentro do RISC Zero zkVM.

Qual é a diferença entre isso e as provas de armazenamento?

Com as provas de armazenamento tradicionais, os desenvolvedores devem selecionar manualmente quais slots de armazenamento seus contratos inteligentes usam e reimplementar a lógica de contrato inteligente. Com o aço, todos os slots de armazenamento são descobertos e buscados automaticamente com base na execução da chamada de exibição. Isso economiza uma quantidade significativa de tempo dos desenvolvedores e diminui o espaço de erros de implementação, reduzindo a chance de vulnerabilidades de segurança.

Obtendo o hash de bloco verificado

Ao usar o opcode blockhash para validação em contratos inteligentes Ethereum, o compromisso para validação deve fazer referência a um blockhash de no máximo 256 blocos de idade. Dado um tempo médio de bloqueio de 12 segundos, isso define um período de tempo estreito de aproximadamente 50 minutos para concluir a geração da prova e confirmar a inclusão da transação de validação em um bloco.

Quando um hash de bloco verificado com mais de 256 blocos é necessário on-chain, várias estratégias podem ser usadas:

  • Quando o hash de bloco que será necessário é conhecido com antecedência (por exemplo, ao iniciar uma proposta de governança), esse hash de bloco pode ser salvo no estado do contrato.
  • Outra abordagem é usar o RISC Zero para provar a cadeia de hash do bloco que foi consultado até um bloco no 256 mais recente.

O futuro dos aplicativos on-chain

Vislumbramos um futuro em que haja uma integração perfeita da computação off-chain com a validação on-chain. O Steel é nossa contribuição para tornar essa visão uma realidade, permitindo que os desenvolvedores acessem e computem comprovadamente toda a história do Ethereum dentro do zkVM para criar a próxima onda de aplicativos on-chain ricos em dados e mais funcionais.

Introdução ao Steel

O aço é um componente-chave do compromisso da RISC Zero em lançar o zkVM 1.0, um marco em direção à verificação de prova on-chain barata e segura e às provas universais de conhecimento zero. Comece a usar o Steel hoje visitando nosso repositório do GitHub para obter documentação, exemplos de código e recursos para ajudá-lo a integrar o Steel ao seu projeto.

Disclaimer:

  1. Este artigo foi reproduzido de [riscze]. Todos os direitos autorais pertencem ao autor original [Santiago Campos]. Se houver objeções a essa reimpressão, entre em contato com a equipe do Gate Learn e eles lidarão com isso prontamente.
  2. Isenção de responsabilidade: Os pontos de vista e opiniões expressos neste artigo são exclusivamente do autor e não constituem qualquer conselho de investimento.
  3. As traduções do artigo para outros idiomas são feitas pela equipe do Gate Learn. A menos que mencionado, copiar, distribuir ou plagiar os artigos traduzidos é proibido.
Comece agora
Inscreva-se e ganhe um cupom de
$100
!