Futures
Accédez à des centaines de contrats perpétuels
TradFi
Or
Une plateforme pour les actifs mondiaux
Options
Hot
Tradez des options classiques de style européen
Compte unifié
Maximiser l'efficacité de votre capital
Trading démo
Introduction au trading futures
Préparez-vous à trader des contrats futurs
Événements futures
Participez aux événements et gagnez
Demo Trading
Utiliser des fonds virtuels pour faire l'expérience du trading sans risque
Lancer
CandyDrop
Collecte des candies pour obtenir des airdrops
Launchpool
Staking rapide, Gagnez de potentiels nouveaux jetons
HODLer Airdrop
Conservez des GT et recevez d'énormes airdrops gratuitement
Launchpad
Soyez les premiers à participer au prochain grand projet de jetons
Points Alpha
Tradez on-chain et gagnez des airdrops
Points Futures
Gagnez des points Futures et réclamez vos récompenses d’airdrop.
Investissement
Simple Earn
Gagner des intérêts avec des jetons inutilisés
Investissement automatique
Auto-invest régulier
Double investissement
Profitez de la volatilité du marché
Staking souple
Gagnez des récompenses grâce au staking flexible
Prêt Crypto
0 Fees
Mettre en gage un crypto pour en emprunter une autre
Centre de prêts
Centre de prêts intégré
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
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 :
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 :
! [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.