Passer au contenu principal

Dernière mise à jour de la page: 24 juillet 2024

Danksharding

Le Danksharding est la façon dont Ethereum devient une blockchain à grande échelle, mais plusieurs mises à jour de protocole sont nécessaires pour y parvenir. Le Proto-Danksharding est une étape intermédiaire sur ce chemin. Les deux visent à rendre les transactions sur les secondes couches aussi économiques que possible pour les utilisateurs et devraient permettre à Ethereum de traiter plus de >100 000 transactions par seconde.

Qu'est-ce que le Proto-Danksharding ?

Le Proto-Danksharding, également connu sous le nom d'EIP-4844(opens in a new tab), est une manière pour les rollups d'ajouter des données aux blocs, à moindre frais. Le nom provient des deux chercheurs qui ont proposé l'idée : Protolambda et Dankrad Feist. Historiquement, les rollups étaient limités dans la mesure où ils peuvent effectuer des transactions utilisateur à moindre coût du fait qu'ils publient leurs transactions dans CALDATA.

Cette solution est onéreuse car ces données sont traitées par l’ensemble des nœuds d’Ethereum et restent sur la blockchain pour toujours, même si les rollups n'ont besoin des données que pendant une courte période. Le Proto-Danksharding introduit des « blobs » de données qui peuvent être envoyés et ajoutés aux blocs. Les données présentes dans ces blobs ne sont pas accessibles pour l'EVM et sont automatiquement supprimées après un laps de temps fixe (fixé à 4 096 périodes à l'heure actuelle, soit à peu près 18 jours). Cela signifie que les rollups peuvent envoyer leurs données à moindre frais et répercuter ces économies sur les utilisateurs finaux sous forme de transactions moins onéreuses.

Comment les données des blobs sont-elles vérifiées ?

Les rollups publient les transactions qu'ils exécutent dans des blobs de données. Ils publient également un « engagement » envers ces données. Ils font cela en appliquant une fonction polynomiale aux données. Cette fonction peut ensuite être évaluée à différents points. Par exemple, si nous définissons une fonction extrêmement simple f(x) = 2x-1, alors nous pouvons évaluer cette fonction pour x = 1, x = 2, x = 3, ce qui donne les résultats 1, 3, 5. Un démonstrateur applique la même fonction aux données et l'évalue aux mêmes points. Si les données d'origine sont modifiées, la fonction ne sera pas identique, et par conséquent, les valeurs évaluées à chaque point ne le seront pas non plus. En réalité, l'engagement et la preuve sont plus complexes car ils contiennent une couche de fonctions cryptographiques.

Qu'est-ce que KZG ?

KZG signifie Kate-Zaverucha-Goldberg - les noms des trois auteurs originaux(opens in a new tab) d'un schéma qui réduit un blob de données à un petit « engagement » cryptographique(opens in a new tab). Le blob de données soumis par un rollup doit être vérifié pour s'assurer que le rollup ne se comporte pas de manière incorrecte. Cela implique qu'un démonstrateur exécute à nouveau les transactions dans le blob pour vérifier que l'engagement était valide. Conceptuellement, cela correspond à la manière dont les clients d'exécution vérifient la validité des transactions Ethereum sur la couche principale à l'aide de preuves de Merkle. KZG est une preuve alternative qui applique une équation polynomiale aux données. L'engagement évalue le polynôme à des points de données tenus secrets. Un démonstrateur applique le même polynôme aux données et l'évalue aux mêmes valeurs, vérifiant que le résultat est bien identique. C'est une manière de vérifier que les données sont compatibles avec les techniques de zero-knowledge (Zk) utilisées par certains rollups et éventuellement d'autres parties du protocole Ethereum.

Qu'est-ce que la cérémonie KZG ?

La cérémonie KZG était un moyen pour de nombreuses personnes à travers la communauté Ethereum de collectivement générer une suite secrète aléatoire de nombres qui peuvent être utilisés pour vérifier certaines données. Il est très important que cette suite de nombres ne soit pas connue et ne puisse pas être recréée par qui que ce soit. Pour garantir cela, chaque personne qui participait à la cérémonie recevait une chaine de caractère provenant du participant précédent. Ensuite, ils créent de nouvelles valeurs aléatoires (par exemple, en mesurant les mouvements de leur souris par leur navigateur) et les mélangent avec la valeur de la chaîne précédente. Ils envoyaient ensuite la valeur au participant suivant et la détruisaient de leur machine locale. Tant qu’une personne présente à la cérémonie a fait cela honnêtement, la valeur finale sera inconnue d’un attaquant.

La cérémonie KZG de l'EIP-4844 était ouverte au public et des dizaines de milliers de personnes y ont participé pour ajouter leur propre entropie (aléatoire). Au total, elle compta plus de 140 000 contributions, faisant d'elle la plus large cérémonie de ce type dans le monde. Pour que la cérémonie soit compromise, il aurait fallu que 100 % de ses participants soient volontairement malhonnêtes. Du point de vue des participants, s'ils savent qu'ils ont agi honnêtement, il n'est pas nécessaire de faire confiance à quelqu'un d'autre car ils savent qu'ils ont sécurisé la cérémonie (ils ont individuellement satisfait à l'exigence d'au moins 1 participant honnête parmi N).

Ni le Danksharding ni le Proto-Danksharding ne suivent le modèle traditionnel de « fragmentation » qui visait à diviser la blockchain en plusieurs fragments. La fragmentation de la chaîne ne fait plus partie de la feuille de route. Au lieu de cela, le Danksharding utilise un échantillonnage de données distribué à travers les blobs pour faire passer Ethereum à l'échelle. Ceci est beaucoup plus simple à mettre en œuvre. Ce modèle est parfois désigné sous le nom de « data-sharding » ou « fragmentation de données ».

Qu'est-ce que le Danksharding ?

Le Danksharding est la réalisation complète du passage à l'échelle des rollups commencé avec le Proto-Danksharding. Le Danksharding apportera une grande quantité de stockage sur Ethereum pour que les rollups puissent publier leurs données de transaction compressées. Cela signifie qu'Ethereum pourra facilement accueillir des centaines de rollups individuels et rendra ainsi possible des millions de transactions par seconde.

Cela fonctionne en étendant le nombre de blobs attachés aux blocs de six (6) dans le Proto-Danksharding, à 64 dans le Danksharding complet. Le reste des changements requis concerne des mises à jour du fonctionnement des clients de consensus pour leur permettre de gérer les nouveaux blobs de grande taille. Plusieurs de ces modifications sont déjà prévues dans la feuille de route à d'autres fins, indépendamment du Danksharding. Par exemple, le Danksharding nécessite la mise en œuvre de la séparation entre le validateur et le constructeur de blocs. Il s'agit d'une mise à jour qui sépare les tâches de construction de blocs et de proposition de blocs entre différents validateurs. De même, l'échantillonnage de la disponibilité des données est requis pour le Danksharding, mais il est également nécessaire pour le développement de clients plus légers qui ne stockent pas toutes les données historiques (clients « sans état »).

Progrès actuels

L'implémentation complète du Danksharding prendra encore plusieurs années. Dans ce temps, la cérémonie KZG s'est conclu avec plus de 140 000 contributions, et l'EIP(opens in a new tab) pour le Proto-Danksharding à mûri. Cette proposition a été totalement implémentée dans tous les réseaux de tests, et a rejoint le réseau principal avec la mise à niveau du réseau Cancun-Deneb (« Dencun ») en mars 2024.

Complément d'information

Cet article vous a été utile ?