Passer au contenu principal

Dernière mise à jour de la page: 12 août 2024

Les arbres de Verkle

Les arbres de Verkle (porte-manteau de « Vector commitment » et « Merkle Trees ») sont une structure de données qui peut être utilisée pour mettre à niveau les nœuds d'Ethereum, afin qu'ils puissent cesser de stocker de grandes quantités de données d'état, sans perdre la capacité à valider les blocs.

Le principe de non-vérification de l'état de la blockchain

Les arbres de Verkle constituent une étape cruciale sur la voie des clients Ethereum sans état. Les clients sans état sont ceux qui n'ont nul besoin de stocker l'ensemble de la base de données d'état, afin de valider les blocs entrants. Au lieu d'utiliser leur propre copie locale de l'état d'Ethereum pour vérifier les blocs, les clients sans état ont recours à un « témoin » pour les données d'état qui arrivent avec le bloc. Un témoin est un ensemble d'éléments individuels des données d'état, nécessaires à l'exécution d'un groupe particulier de transactions, accompagné d'une preuve cryptographique que le témoin fait réellement partie de la totalité des données. Le témoin est utilisé au lieu de la base de données d'état. Pour que cela fonctionne, les témoins doivent être très petits, de sorte qu'ils puissent être diffusés en toute sécurité dans le temps imparti sur le réseau, et que les validateurs puissent les traiter dans un créneau de 12 secondes. La structure actuelle des données d'état n'est pas adaptée car les témoins sont bien trop volumineux. Les arbres de Verkle résolvent ce problème en permettant l'utilisation de petits témoins, éliminant ainsi l'un des principaux obstacles à l'utilisation de clients sans état.

Qu'est-ce qu'un témoin et pourquoi en avons-nous besoin ?

Vérifier un bloc signifie ré-exécuter les transactions contenues dans le bloc, appliquer les modifications à l'arbre d'état (trie) d'Ethereum et calculer le nouveau hachage racine. Un bloc vérifié est un bloc dont le hachage racine d'état calculé est identique à celui fourni avec le bloc (signifiant que le proposant du bloc a vraiment effectué le calcul qu'il prétend avoir fait). Parmi les clients Ethereum actuels, mettre à jour l'état nécessite l'accès à l'intégralité de l'arbre d'état (Trie), qui est une vaste structure de données devant être stockée localement. Un témoin ne contient que les fragments des données d'état, nécessaires à l'exécution des transactions dans le bloc. Un validateur ne peut alors utiliser ces fragments que pour vérifier que le proposant du bloc a exécuté les transactions de bloc et mis à jour l'état de manière adéquate. Cependant, ceci veut dire que le témoin doit être transféré assez rapidement entre les pairs du réseau Ethereum, pour être réceptionné et traité en toute sécurité par chaque nœud, lors d'un créneau de 12 secondes. Si le témoin est trop volumineux, certains nœuds prendront bien trop de temps à télécharger celui-ci et être raccord avec la chaîne. Il s'agit d'une force centralisatrice, ce qui signifie qu'uniquement les nœuds dotés de connexions Internet haut débit peuvent participer à la validation des blocs. Avec les arbres de Verkle, nulle nécessité d'avoir l'état stocké sur votre disque dur ; tout ce dont vous avez besoin pour vérifier un bloc est inclus dans le bloc lui-même. Malheureusement, les témoins qui peuvent être produits à partir des arbres de Merkle sont trop volumineux pour prendre en charge les clients sans état.

Pourquoi les arbres de Verkle permettent-ils des témoins plus petits ?

La structure d'un arbre de Merkle rend la taille des témoins très grande - trop grande pour diffuser en toute sécurité entre pairs dans un créneau de 12 secondes.. En effet, le témoin est un chemin reliant les données contenues dans les feuilles au hachage racine. Pour vérifier les données, il est nécessaire d'avoir non seulement tous les hachages intermédiaires qui relient chaque feuille à la racine, mais également tous les nœuds « frères ». Chaque nœud de la preuve a un lien relationnel avec lequel il est haché, ayant pour but de créer le hachage suivant dans l'arbre (Trie). Cela représente énormément de données. Les arbres de Verkle réduisent la taille du témoin en raccourcissant la distance entre les feuilles de l'arbre et sa racine, puis en éliminant également le besoin de fournir des nœuds frères pour vérifier le hachage racine. L'utilisation d'un puissant schéma d'engagement polynomial, en substitution à l'engagement vectoriel de type hachage, augmentera son efficacité en gain d'espace. L'engagement polynomial permet au témoin d'avoir une taille fixe, quel que soit le nombre de feuilles qu'il fasse valoir.

Dans le cadre du schéma d'engagement polynomial, les témoins ont des tailles gérables qui peuvent être facilement transférées sur le réseau pair à pair (P2P). Cela permet aux clients de vérifier les changements d'état à l'intérieur de chaque bloc, avec une quantité minimale de données.

Quelle est la structure d'un arbre de Verkle ?

Les arbres de Verkle sont des paires (clé, valeur) où les clés sont des éléments de 32 octets, composés d'une tige de 31 octets et d'un seul octet suffix. Ces clés sont organisées en nœuds d'extension et en nœuds internes. Les nœuds d'extension représentent une seule tige pour 256 enfants aux suffixes différents. un « enfant » fait référence à un nœud ou une feuille située sous un nœud parent donné. Les nœuds internes ont également 256 enfants, mais ils peuvent être d'autres nœuds d'extension. La principale différence entre la structure de l'arbre de Verkle et celle de l'arbre de Merkle réside dans le fait que Verkle est beaucoup plus plat, signifiant qu'il y a moins de nœuds intermédiaires reliant une feuille à la racine, et donc, moins de données requises pour générer une preuve.

En savoir plus sur la structure des arbres de Merkle(opens in a new tab)

Progrès actuels

Les réseaux de test des arbres Verkle sont déjà opérationnels, mais il reste encore d'importantes mises à jour en attente pour les logiciels clients qui sont nécessaires pour prendre en charge les arbres de Verkle. Vous pouvez contribuer à accélérer les progrès en déployant des contrats sur les réseaux de test ou en exécutant des clients de réseau de test.

Explorer le réseau de test Verkle Gen D'évent 2(opens in a new tab)

Regardez Guillaume Ballet expliquer le réseau de test Condrieu Verkle(opens in a new tab) (notez que le réseau de test Condrieu était une preuve de travail et a maintenant été remplacé par le réseau de test Verkle Gen Devnet 2).

Complément d'information

Cet article vous a été utile ?