Hérodote : Comment tirer parti de la preuve de stockage Starknet pour prouver l’état d’Ethereum ?

原文 :Herodotus : Prouver l’état d’Ethereum à l’aide de preuves de stockage sur Starknet

Traduction et relecture : Starknet Chinese Community »

Vue d’ensemble

  • StarkWare s’est associé à Herodotus pour développer une méthode de preuve qui retrace tous les blocs d’Ethereum depuis sa création jusqu’à aujourd’hui.
  • Ceci est réalisé grâce à l’utilisation de preuves cryptographiques et de hachages de blocs.
  • Atteint l’objectif de l’EIP-2935 : accéder aux hachages de blocs historiques de plus de 256 blocs de manière native et débloquer de nouvelles possibilités pour de nouveaux cas d’utilisation comme la DeFi.
  • Herodotus et StarkWare apportent cette technologie à Ethereum en tant que bien public.

Présentation

Il est important d’avoir un accès prouvable à l’état historique sur Ethereum. Mais jusqu’à présent, nous avons pu accéder à un historique limité sans confiance jusqu’à la dernière heure.

Mais Starknet est une entreprise dynamique, qui innove constamment, repoussant les limites du possible. Aujourd’hui, grâce à Herodotus et StarkWare, nous sommes en mesure de tracer et de récupérer tous les hachages de blocs Ethereum depuis le bloc de genèse d’une manière native et prouvable.

Regardons de plus près comment Hérodote et StarkWare y sont parvenus et ce que tout cela signifie. Nous allons commencer par le contexte de la preuve de stockage.

Qu’est-ce que la preuve de stockage ?

La preuve de stockage nous permet de prouver qu’un État a réellement existé à un moment donné dans le passé sans aucune confiance dans un tiers. En stockant les preuves, la confiance est intégrée dans les mathématiques. La preuve de stockage peut également être utilisée pour accéder à ces états à travers les chaînes.

Dans un article récent sur la preuve de stockage, nous avons présenté Herodotus, l’équipe qui dirige la recherche et l’innovation en matière de preuve de stockage. Actuellement, l’équipe d’Herodotus a mis en œuvre une nouvelle technologie qui permet une preuve fiable de l’état d’Ethereum depuis la création du bloc, améliorant considérablement les performances de preuve de stockage.

Voyons comment Hérodote y parvient et pourquoi c’est important.

Preuve des blocs fondateurs d’Ethereum sur la chaîne

Tout d’abord, nous devons comprendre comment fonctionnent les en-têtes de bloc et les hachages de blocs Ethereum.

Qu’est-ce qu’un en-tête de bloc et un hachage de bloc ? **

L’en-tête de bloc est la partie du bloc qui résume toutes les informations contenues dans le bloc, y compris le hachage du bloc parent, l’horodatage du bloc, la racine de l’état, etc.

! [Hérodote : Comment tirer parti de la preuve de stockage Starknet pour prouver l’état d’Ethereum ?] ](https://cdn-img.panewslab.com//panews/2022/11/6/images/2f7bf27a826afe72e5e7dcdee98a10e5.jpeg)

En-tête de bloc Ethereum et arbre de Merkle d’état (source de contenu)

L’en-tête du bloc contient beaucoup d’informations. Dans cet article, nous nous concentrons sur les racines de l’État. Voyons pourquoi.

Comme vous pouvez le voir sur l’image ci-dessus, sous l’en-tête du bloc se trouve l’état du compte Ethereum. Chaque compte Ethereum dispose d’un espace de stockage associé qui stocke les variables du compte (essentiellement l’état du contrat intelligent). Une fois que l’engagement cryptographique stocké par le compte est haché, il est stocké en tant que racine de stockage, avec le solde du compte, le nombre aléatoire et le hachage de code. Pris ensemble, ils forment essentiellement un résumé de l’état du compte.

Une arborescence Merkle Patricia Trie contenant l’état de tous les comptes Ethereum est construite, et son hachage est stocké en tant que racine d’état dans l’en-tête du bloc (étiqueté stateRoot dans l’image ci-dessus). Cette racine d’état contient toutes les informations nécessaires pour prouver l’état de l’ensemble du réseau Ethereum à un moment donné.

Enfin, étant donné que chaque bloc sur Ethereum (et la chaîne EVM) contient cette racine d’état, et que chaque bloc a également une chaîne associée appelée hachage de bloc (qui est le résultat du hachage de tout ce qui se trouve dans l’en-tête de bloc, y compris la racine d’état), le hachage de bloc est l’engagement cryptographique de l’ensemble de l’état Ethereum à un moment précis.

Hachage de bloc historique sur EVM

Compte tenu de la grande quantité d’informations critiques stockées dans les hachages de blocs, nous avons souvent besoin d’accéder à leur historique.

Dans Solidity, si l’on veut récupérer le hachage d’un bloc miné il y a deux blocs (le nombre de retours en arrière commence à partir du bloc contenant la transaction), on peut utiliser la syntaxe suivante :

! [Hérodote : Comment tirer parti de la preuve de stockage Starknet pour prouver l’état d’Ethereum ?] ](https://cdn-img.panewslab.com//panews/2022/11/6/images/29fbdb1146f58b1d0023649d585188fb.jpeg)

La méthode est très simple. Mais il y a un problème : cette méthode de hachage de bloc ne peut récupérer que le hachage des 256 derniers blocs. Sur la base de la moyenne de 12 secondes d’un bloc sur Ethereum, cela équivaut à un historique de 51,2 minutes sur la chaîne.

La limite de 256 blocs est généralement suffisante pour les personnes qui souhaitent utiliser le hachage historique des blocs comme source d’entropie (caractère aléatoire). Cependant, compte tenu des huit ans d’histoire d’Ethereum, si vous souhaitez utiliser un hachage de bloc pour obtenir son état historique dans un bloc particulier, un historique de 51 minutes n’est pas suffisant.

Cette limite de récupération de hachage sur la chaîne de 256 blocs est principalement destinée à améliorer l’efficacité du stockage d’état et à réduire les problèmes potentiels de croissance d’état.

Herodotus permet d’obtenir un historique complet du hachage des blocs

Comment Hérodote résout cette limitation et nous permet d’atteindre :

  • Accédez à l’historique complet des hachages de blocs Ethereum
  • Prouver tous les états d’Ethereum depuis le bloc de création
  • Et tout cela se fait de manière sans confiance

La clé réside dans le pouvoir des preuves cryptographiques.

Plongeons dans les étapes procédurales de l’accumulateur de hachage de blocs historiques d’Hérodote :

Étape 1 : Enregistrer un hachage de bloc récent

Sur le réseau principal d’Ethereum, un hachage de bloc récent est enregistré dans un contrat intelligent appelé SharpFactsAggregator. Ce hachage de bloc peut être récupéré à l’aide de l’opcode de hachage de bloc (valeur d’opcode 0x40) et enregistré sous la forme d’une simple variable de chaîne dans le contrat intelligent ci-dessus. Vous pouvez également enregistrer le numéro de bloc correspondant pour un accès ultérieur.

En supposant que le numéro de bloc enregistré est 18 000 000, nous pouvons voir grâce à Etherscan que la valeur de hachage de ce bloc est 0x95b1… 4baf3。

Étape 2 : Prouver le hachage du dernier bloc

L’étape suivante consiste à récupérer les informations d’en-tête de bloc du bloc 18 000 000 à partir d’un nœud d’archive, à calculer sa valeur de hachage de bloc hors chaîne et à l’0x95b1 avec la valeur de hachage de bloc enregistrée… 4baf3. Ce processus de calcul utilise également un prouveur pour créer une preuve de ce calcul.

Le hachage de ce bloc est ajouté à la chaîne de montagnes Merkle. Il s’agit d’une variante de l’arbre de Merkle, et l’ajout de nouveaux éléments à l’arbre ne nécessite pas beaucoup de calculs.

Étape 3 : Prouver le hachage du bloc X-1

Une fois que nous avons prouvé que l’en-tête de bloc récupéré à partir du nœud d’archive est valide, nous prenons alors l’en-tête de bloc du bloc X-1, calculons sa valeur de hachage et la comparons au hachage parent du bloc X (cette valeur se trouve dans l’en-tête de bloc du bloc X que nous avons récupéré précédemment).

Si les hachages correspondent, nous pouvons être sûrs que l’en-tête de bloc du bloc X-1 est également valide. Étant donné que l’ensemble du calcul peut être modélisé en tant que fonction, une preuve STARK de ce calcul peut être créée en même temps. Cela a permis de prouver la validité de l’en-tête de bloc X-1 (voir la figure ci-dessous).

! [Hérodote : Comment tirer parti de la preuve de stockage Starknet pour prouver l’état d’Ethereum ?] ](https://cdn-img.panewslab.com//panews/2022/11/6/images/50db34684e403b4d5dd508de876d3e94.jpeg)

Étape 4 : Prouver récursivement le hachage du bloc précédent

Le hachage de bloc de tous les blocs de précommande est calculé de la même manière jusqu’à ce qu’il soit retracé jusqu’au bloc de genèse du réseau principal Ethereum. Ces hachages sont ajoutés à l’arborescence MMR, créant ainsi une racine MMR finale.

! [Hérodote : Comment tirer parti de la preuve de stockage Starknet pour prouver l’état d’Ethereum ?] ](https://cdn-img.panewslab.com//panews/2022/11/6/images/00e168dfc3307b7451050fe994a42d13.jpeg)

Il est important de noter que ces calculs sont effectués hors chaîne, et qu’Hérodote génère également des preuves de calcul.

Étape 5 : Publier la preuve on-chain et son utilisation ultérieure

Une fois que la racine finale du MMR a été générée, cette racine peut être publiée sur la chaîne (sur un contrat intelligent d’agrégation de preuves) avec les preuves de calcul de millions de blocs. Le coût de la vérification de ces preuves on-chain est justifié en raison du coût extrêmement faible de la vérification des preuves STARK générées.

Nous avons mis en place un moyen de tracer et d’accéder à tout l’état d’Ethereum depuis le bloc de genèse.

L’équipe d’Herodotus qualifie ces MMR d’« accumulateurs de hachage de blocs historiques » et met en œuvre l’objectif EIP-2935 proposé par Vitalik Buterin et Tomasz Stanczak en 2020 – un moyen d’accéder à plus de 256 blocs de données historiques. C’est une question ouverte depuis plus de trois ans ! Cependant, Herodotus et Starknet y sont parvenus sans changer aucune couche de protocole.

Quelques points clés sur le processus ci-dessus :

  • Herodotus traite environ 1350 blocs par lot, et les preuves de chaque lot sont publiées sur la chaîne. Une fois que l’ensemble du processus de traitement des 18 premiers millions de blocs d’Ethereum est terminé, la racine MMR de l’historique des blocs peut être mise à jour périodiquement au fur et à mesure que de nouveaux blocs continuent d’être ajoutés à l’historique de la chaîne.

! [Hérodote : Comment tirer parti de la preuve de stockage Starknet pour prouver l’état d’Ethereum ?] ](https://cdn-img.panewslab.com//panews/2022/11/6/images/7442f10afdba6bed044c215b9f057a7c.jpeg)

Une fois que la racine du MMR est trouvée sur la chaîne, il peut être prouvé que le MMR contient un hachage de chaque bloc (ce qui est une propriété fondamentale de l’arbre de Merkle).

Avant d’envoyer les épreuves au réseau principal Ethereum, les Provers de l’équipe Herodotus utilisent le système SHARP créé par l’équipe StarkWare. Le principal avantage du système SHARP est sa capacité à réduire les coûts et à augmenter l’efficacité de la génération des épreuves.

Le flux de travail ci-dessus est répliqué dans deux MMR distincts, l’un utilisant la fonction de hachage Keccak256 et l’autre utilisant Poséidon. Ethereum utilisera la variante Keccak256, tandis que Starknet utilisera la variante Poséidon.

La racine MMR du réseau principal Ethereum est envoyée à Starknet via le protocole de messagerie natif Starknet L1 à L2 pour une utilisation sur Starknet. L’accumulateur de hachage de bloc Herodotus implémente également la possibilité d’accéder aux données historiques d’Ethereum sur Starknet. Le système de messagerie Starknet L1 à L2 peut être utilisé pour transférer des hachages de blocs L1 et des racines MMR vérifiées vers Starknet de manière sécurisée. Une fois envoyée à Starknet, la preuve de stockage des données historiques d’Ethereum peut être vérifiée par rapport à ces engagements.

Nouvelles opportunités pour l’accumulateur de hachage de blocs Herodotus

Herodotus et StarkWare apportent des accumulateurs de hachage de blocs à Ethereum en tant que bien public. Une fois que la racine finale du MMR et la preuve de calcul sont publiées sur le réseau principal Ethereum, n’importe quel développeur peut les exploiter pour accéder à l’état prouvable à tout moment depuis le début de la chaîne.

Étant donné que la racine MMR d’Ethereum sera également envoyée à Starknet via le protocole de messagerie inter-chaînes natif, les informations sur l’état inter-chaînes peuvent être consultées de manière simple et sans confiance. Les protocoles DeFi peuvent bénéficier d’une preuve d’état historique en exploitant les informations de solde d’un compte ou les informations de position à effet de levier d’un compte à un moment précis. Il est possible de générer des nombres aléatoires plus robustes à l’aide d’un enregistrement de hachage de bloc historique plus grand. Le vote inter-chaînes est également devenu plus simple, car les utilisateurs n’ont pas besoin de transférer des actifs entre les chaînes avant de voter sur L2. Il y a beaucoup plus de possibilités qui viennent avec cela.

En conclusion

Dans un monde où l’évolutivité, la décentralisation et la vérifiabilité de la blockchain évoluent constamment, l’équipe de Starknet devient un phare de l’innovation. Les projets créés sur Starknet deviennent un élément clé de la mise à l’échelle d’Ethereum. Au fur et à mesure que nous plongeons plus profondément dans ce nouvel avenir, vous familiariser avec l’écosystème Starknet jettera les bases de votre croissance future.

Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
  • Récompense
  • Commentaire
  • Reposter
  • Partager
Commentaire
Ajouter un commentaire
Ajouter un commentaire
Aucun commentaire
  • Épingler