Heródoto: Como aproveitar a prova de armazenamento Starknet para provar o estado do Ethereum?

原文:Heródoto: Provando o estado do Ethereum usando provas de armazenamento na Starknet

Tradução e Revisão de Textos: Comunidade Chinesa Starknet"

Visão geral

  • A StarkWare fez uma parceria com Heródoto para desenvolver um método de prova de prova que rastreia todos os blocos do Ethereum desde a sua criação até o presente.
  • Isto é conseguido através do uso de provas criptográficas e hashes de bloco.
  • Atinge o objetivo do EIP-2935 — acessar hashes de blocos históricos em mais de 256 blocos de forma nativa em cadeia e desbloquear novas possibilidades para novos casos de uso como DeFi.
  • Heródoto e StarkWare estão trazendo essa tecnologia para o Ethereum como um bem público.

Introdução

É importante ter acesso comprovado ao estado histórico no Ethereum. Mas, até agora, conseguimos acessar o histórico limitado de forma confiável até a última hora.

Mas Starknet é uma empresa vibrante, constantemente inovadora, que ultrapassa os limites do que é possível. Agora, graças a Heródoto e StarkWare, somos capazes de rastrear e buscar todos os hashes do bloco Ethereum desde o bloco de gênese de uma forma nativa da cadeia e demonstrável.

Vamos dar uma olhada mais de perto em como Heródoto e StarkWare conseguiram isso e o que tudo isso significa. Começaremos com o histórico sobre a prova de armazenamento.

O que é Prova de Armazenamento?

A prova de armazenamento permite-nos provar que um Estado realmente existiu em algum momento no passado sem qualquer confiança em terceiros. Ao armazenar provas, a confiança é incorporada na matemática. A prova de armazenamento também pode ser usada para acessar esses estados através de cadeias.

Em um artigo recente sobre Proof of Storage, apresentamos Herodotus, a equipe que lidera a pesquisa e inovação de Proof of Storage. Atualmente, a equipe de Heródoto implementou uma nova tecnologia que permite a prova sem confiança do estado do Ethereum desde a criação do bloco, melhorando significativamente o desempenho da prova de armazenamento.

Vamos explorar como Heródoto consegue isso e por que isso é importante.

Prova dos blocos fundadores do Ethereum on-chain

Primeiro, precisamos entender como os cabeçalhos de bloco Ethereum e hashes de bloco funcionam.

O que é um cabeçalho de bloco e hash de bloco? **

O cabeçalho do bloco é a parte do bloco que resume todas as informações contidas no bloco, incluindo o hash do bloco pai, o carimbo de data/hora do bloco, a raiz do estado e assim por diante.

! [Heródoto: Como aproveitar a prova de armazenamento Starknet para provar o estado do Ethereum?] ](https://img-cdn.gateio.im/webp-social/moments-69a80767fe-57a52bbce0-dd1a6f-cd5cc0.webp)

Ethereum Block Header and State Merkle Tree (Fonte de conteúdo)

O cabeçalho do bloco contém muitas informações. Neste artigo, nos concentramos nas raízes do estado. Vejamos porquê.

Como você pode ver na imagem acima, abaixo do cabeçalho do bloco está o estado da conta Ethereum. Cada conta Ethereum tem um espaço de armazenamento associado que armazena as variáveis da conta (essencialmente o estado do contrato inteligente). Uma vez que o compromisso criptográfico armazenado pela conta é colocado em hash, ele é armazenado como uma raiz de armazenamento, juntamente com o saldo da conta, o número aleatório e o hash de código. Em conjunto, estes formam basicamente um resumo do estado da conta.

Uma árvore Merkle Patricia Trie contendo o estado de todas as contas Ethereum é construída, e seu hash é armazenado como uma raiz de estado no cabeçalho do bloco (rotulado stateRoot na imagem acima). Esta raiz de estado contém todas as informações necessárias para provar o estado de toda a rede Ethereum em qualquer ponto no tempo.

Finalmente, como cada bloco no Ethereum (e a cadeia EVM) contém essa raiz de estado, e cada bloco também tem uma cadeia de caracteres associada chamada hash de bloco (que é o resultado de hash de tudo no cabeçalho do bloco, incluindo a raiz do estado), o hash de bloco é o compromisso criptográfico de todo o estado Ethereum em um ponto específico no tempo.

Hash de bloco histórico no EVM

Dada a grande quantidade de informações críticas armazenadas nos hashes de bloco, muitas vezes precisamos acessar seu histórico.

No Solidity, se quisermos recuperar o hash de um bloco minerado há dois blocos (a contagem de backtracking começa a partir do bloco que contém a transação), podemos usar a seguinte sintaxe:

! [Heródoto: Como aproveitar a prova de armazenamento Starknet para provar o estado do Ethereum?] ](https://img-cdn.gateio.im/webp-social/moments-69a80767fe-2104f9b973-dd1a6f-cd5cc0.webp)

O método é muito simples. Mas há um problema: esse método de hash de bloco só pode recuperar o hash dos últimos 256 blocos. Com base na média de 12 segundos de um bloco no Ethereum, é equivalente a um histórico de 51,2 minutos na cadeia.

O limite de 256 blocos é geralmente suficiente para pessoas que desejam usar o hash de bloco histórico como fonte de entropia (aleatoriedade). No entanto, dada a história de oito anos do Ethereum, se você quiser usar um hash de bloco para obter seu estado histórico em um bloco específico, um histórico de 51 minutos não é suficiente.

Esse limite de recuperação de hash de 256 blocos on-chain destina-se principalmente a melhorar a eficiência do armazenamento de estado e reduzir possíveis problemas de crescimento do estado.

Heródoto torna possível obter um histórico de hash de bloco completo

Como Heródoto resolve esta limitação e nos permite alcançar:

  • Acesse o histórico completo de hashes de bloco Ethereum
  • Prove todo o estado Ethereum desde o bloco inicial
  • E tudo é feito de uma forma sem confiança

A chave está no poder das provas criptográficas.

Vamos mergulhar nas etapas processuais do acumulador de hash de bloco histórico Heródoto:

Passo 1: Registar um hash de bloco recente

Na rede principal Ethereum, um hash de bloco recente é registrado em um contrato inteligente chamado SharpFactsAggregator. Este hash de bloco pode ser recuperado usando o bloco hash opcode (valor opcode 0x40) e salvo como uma variável de cadeia de caracteres simples no contrato inteligente acima. Você também pode registrar o número de bloco correspondente para acesso posterior.

Supondo que o número de bloco registrado é 18.000.000, podemos ver através do Etherscan que o valor de hash deste bloco é 0x95b1… 4BAF3。

Passo 2: Prove o hash do bloco mais recente

O próximo passo é recuperar as informações do cabeçalho do bloco do bloco 18.000.000 de um nó de arquivo, calcular seu valor de hash de bloco off-chain e 0x95b1-lo com o valor de hash de bloco registrado… 4BAF3. Este processo de computação também usa um provador para criar uma prova deste cálculo.

O hash deste bloco é adicionado à Cordilheira Merkle. Esta é uma variante da árvore Merkle, e adicionar novos elementos à árvore não requer muitos cálculos.

Passo 3: Prove o hash do bloco X-1

Depois de provarmos que o cabeçalho do bloco recuperado do nó de arquivo é válido, pegamos o cabeçalho do bloco X-1, calculamos seu valor de hash e o comparamos com o hash pai do bloco X (esse valor pode ser encontrado no cabeçalho do bloco X que recuperamos anteriormente).

Se os hashes corresponderem, podemos ter certeza de que o cabeçalho do bloco X-1 também é válido. Uma vez que toda a computação pode ser modelada como uma função, uma prova STARK dessa computação pode ser criada ao mesmo tempo. Isso resultou em uma prova da validade do cabeçalho do bloco X-1 (veja a figura abaixo).

! [Heródoto: Como aproveitar a prova de armazenamento Starknet para provar o estado do Ethereum?] ](https://img-cdn.gateio.im/webp-social/moments-69a80767fe-b49842862d-dd1a6f-cd5cc0.webp)

Passo 4: Provar recursivamente o hash do bloco anterior

O hash de bloco de todos os blocos de pré-encomenda é calculado de forma semelhante até ser rastreado até o bloco de gênese da rede principal Ethereum. Esses hashes são anexados à árvore MMR, criando uma raiz MMR final.

! [Heródoto: Como aproveitar a prova de armazenamento Starknet para provar o estado do Ethereum?] ](https://img-cdn.gateio.im/webp-social/moments-69a80767fe-0cc8661bce-dd1a6f-cd5cc0.webp)

É importante notar que esses cálculos são feitos off-chain, e Heródoto também gera provas de computação.

Passo 5: Publique a prova on-chain e seu uso subsequente

Uma vez que a raiz MMR final tenha sido gerada, essa raiz pode ser publicada on-chain (em um contrato inteligente agregador de provas) junto com as provas computacionais de milhões de blocos. O custo da verificação destas provas on-chain justifica-se devido ao custo extremamente baixo de verificação das provas STARK geradas.

Implementamos uma maneira de rastrear e acessar todo o estado do Ethereum desde o bloco de gênese.

A equipe de Heródoto se refere a esses MMRs como “acumuladores históricos de hash de bloco” e implementa a meta EIP-2935 proposta por Vitalik Buterin e Tomasz Stanczak em 2020 – uma maneira de acessar mais de 256 blocos de dados históricos. Esta é uma questão que está em aberto há mais de três anos! No entanto, Heródoto e Starknet conseguiram isso sem alterar nenhuma camada de protocolo.

Alguns pontos-chave sobre o processo acima:

  • Heródoto processa cerca de 1350 blocos por lote, e as provas de cada lote são publicadas on-chain. Uma vez que todo o processo de processamento dos primeiros 18 milhões de blocos do Ethereum esteja concluído, a raiz MMR do histórico de blocos pode ser atualizada periodicamente à medida que novos blocos continuam a ser adicionados ao histórico da cadeia.

! [Heródoto: Como aproveitar a prova de armazenamento Starknet para provar o estado do Ethereum?] ](https://img-cdn.gateio.im/webp-social/moments-69a80767fe-373c047e8c-dd1a6f-cd5cc0.webp)

Uma vez que a raiz MMR é encontrada on-chain, pode ser provado que a MMR contém um hash de cada bloco (que é uma propriedade fundamental da árvore Merkle).

Antes de enviar as provas para a rede principal Ethereum, os Provadores da equipe Heródoto usam o sistema SHARP criado pela equipe StarkWare. A principal vantagem do sistema SHARP é a sua capacidade de reduzir custos e aumentar a eficiência da geração de provas.

O fluxo de trabalho acima está sendo replicado em dois MMRs separados, um usando a função hash Keccak256 e outro usando Poseidon. O Ethereum usará a variante Keccak256, enquanto a Starknet usará a variante Poseidon.

A raiz MMR da rede principal Ethereum é enviada para a Starknet através do protocolo de mensagens nativo Starknet L1 a L2 para uso na Starknet. O acumulador de hash de bloco Heródoto também implementa a capacidade de acessar dados históricos do Ethereum na Starknet. O sistema de mensagens Starknet L1-to-L2 pode ser usado para encaminhar hashes de bloco L1 e raízes MMR verificadas para Starknet de forma segura. Uma vez enviado para a Starknet, a prova de armazenamento dos dados históricos do Ethereum pode ser verificada em relação a esses compromissos.

Novas oportunidades para o acumulador de hash de bloco Heródoto

Heródoto e StarkWare estão trazendo acumuladores de hash de bloco para o Ethereum como um bem público. Uma vez que a raiz MMR final e a prova de computação são publicadas na mainnet Ethereum, qualquer desenvolvedor pode aproveitá-las para acessar o estado demonstrável a qualquer momento desde o início da cadeia.

Como a raiz MMR do Ethereum também será enviada para a Starknet por meio do protocolo nativo de mensagens entre cadeias, as informações de estado entre cadeias podem ser acessadas de forma simples e sem confiança. Os protocolos DeFi podem se beneficiar da prova de estado histórica aproveitando as informações de saldo de uma conta ou as informações de posição alavancada de uma conta em um momento específico. É possível gerar números aleatórios mais robustos usando um registro de hash de bloco histórico maior. A votação entre cadeias também se tornou mais simples, uma vez que os utilizadores não precisam de transferir ativos entre cadeias antes de votarem em L2. Há muito mais possibilidades que vêm com isso.

Conclusão

Em um mundo onde a escalabilidade, descentralização e verificabilidade do blockchain estão em constante evolução, a equipe da Starknet está se tornando um farol de inovação. Projetos criados na Starknet estão se tornando um elemento-chave na escala do Ethereum. À medida que nos aprofundamos neste novo futuro, familiarizar-se com o ecossistema Starknet estabelecerá a base para o seu crescimento futuro.

Ver original
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.
  • Recompensa
  • Comentar
  • Republicar
  • Partilhar
Comentar
Adicionar um comentário
Adicionar um comentário
Nenhum comentário
  • Fixar