Le danksharding est la façon dont Ethereum devient une chaîne de blocs véritablement évolutive, mais plusieurs mises à jour du protocole sont nécessaires pour y parvenir. Le proto-danksharding est une étape intermédiaire sur cette voie. Les deux visent à rendre les transactions sur la couche 2 (l2) aussi peu coûteuses 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 un moyen pour les rollups d'ajouter des données moins chères aux blocs. Le nom vient des deux chercheurs qui ont proposé l'idée : Protolambda et Dankrad Feist. Historiquement, les rollups étaient limités dans la réduction du coût des transactions des utilisateurs par le fait qu'ils publient leurs transactions dans CALLDATA.
Cela coûte cher car c'est traité par tous les nœuds Ethereum et réside onchain pour toujours, même si les rollups n'ont besoin des données que pour une courte période. Le proto-danksharding introduit des blobs de données qui peuvent être envoyés et attachés aux blocs. Les données de ces blobs ne sont pas accessibles à l'EVM et sont automatiquement supprimées après une période fixe (définie à 4096 époques au moment de la rédaction, soit environ 18 jours). Cela signifie que les rollups peuvent envoyer leurs données à un coût bien moindre et répercuter ces économies sur les utilisateurs finaux sous la forme de transactions moins chères.
Comment les données de blob 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 les données. Ils le font en ajustant une fonction polynomiale aux données. Cette fonction peut ensuite être évaluée en divers 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 donnant les résultats 1, 3, 5. Un prouveur 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 compliqués car ils sont enveloppés dans des 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 mal. Cela implique qu'un prouveur réexécute les transactions dans le blob pour vérifier que l'engagement était valide. C'est conceptuellement la même chose que la façon dont les clients d'exécution vérifient la validité des transactions Ethereum sur la couche 1 (l1) à l'aide de preuves de Merkle. KZG est une preuve alternative qui ajuste une équation polynomiale aux données. L'engagement évalue le polynôme à certains points de données secrets. Un prouveur ajusterait le même polynôme sur les données et l'évaluerait aux mêmes valeurs, en vérifiant que le résultat est le même. C'est un moyen de vérifier les données qui est compatible avec les techniques à divulgation nulle de connaissance utilisées par certains rollups et, à terme, par d'autres parties du protocole Ethereum.
Qu'était la cérémonie KZG ?
La cérémonie KZG était un moyen pour de nombreuses personnes de la communauté Ethereum de générer collectivement une chaîne de nombres aléatoires secrète qui peut être utilisée pour vérifier certaines données. Il est très important que cette chaîne de nombres ne soit pas connue et ne puisse être recréée par personne. Pour s'en assurer, chaque personne ayant participé à la cérémonie a reçu une chaîne du participant précédent. Ils ont ensuite créé de nouvelles valeurs aléatoires (par exemple, en permettant à leur navigateur de mesurer le mouvement de leur souris) et les ont mélangées avec la valeur précédente. Ils ont ensuite envoyé la valeur au participant suivant et l'ont détruite de leur machine locale. Tant qu'une personne dans la cérémonie a fait cela honnêtement, la valeur finale sera impossible à connaître pour 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 (caractère aléatoire). Au total, il y a eu plus de 140 000 contributions, ce qui en fait la plus grande cérémonie de ce type au monde. Pour que la cérémonie soit compromise, il faudrait que 100 % de ces participants soient activement malhonnêtes. Du point de vue des participants, s'ils savent qu'ils ont été honnêtes, il n'est pas nécessaire de faire confiance à qui que ce soit d'autre car ils savent qu'ils ont sécurisé la cérémonie (ils ont individuellement satisfait à l'exigence de 1 participant honnête sur N).
Qu'est-ce que le danksharding ?
Le danksharding est la réalisation complète de la mise à l'échelle des rollups qui a commencé avec le proto-danksharding. Le danksharding apportera des quantités massives d'espace sur Ethereum pour que les rollups puissent y déverser leurs données de transaction compressées. Cela signifie qu'Ethereum sera en mesure de prendre en charge des centaines de rollups individuels avec facilité et de faire de millions de transactions par seconde une réalité.
La façon dont cela fonctionne est en augmentant 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 sont tous des mises à jour de la façon dont les clients de consensus fonctionnent pour leur permettre de gérer les nouveaux grands blobs. Plusieurs de ces changements sont déjà sur la feuille de route à d'autres fins indépendantes du danksharding. Par exemple, le danksharding nécessite que la séparation proposant-constructeur (PBS) ait été mise en œuvre. 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 requis pour le développement de clients très légers qui ne stockent pas beaucoup de données historiques (« clients sans état »).
Progrès actuels
Le danksharding complet est encore à plusieurs années de distance. Entre-temps, la cérémonie KZG s'est conclue avec plus de 140 000 contributions, et l'EIP (opens in a new tab) pour le proto-danksharding a mûri. Cette proposition a été entièrement mise en œuvre sur tous les réseaux de test, et a été lancée sur le Réseau principal avec la mise à jour du réseau Cancun-Deneb (« Dencun ») en mars 2024.
Complément d'information
- Notes sur le proto-danksharding (opens in a new tab) - Vitalik Buterin
- Notes de Dankrad sur le danksharding (opens in a new tab)
- Dankrad, Proto et Vitalik discutent du danksharding (opens in a new tab)
- La cérémonie KZG (opens in a new tab)
- Présentation de Carl Beekhuizen à la Devcon sur les configurations de confiance (trusted setups) (opens in a new tab)
- En savoir plus sur l'échantillonnage de la disponibilité des données pour les blobs (opens in a new tab)
- Dankrad Feist sur les engagements et les preuves KZG (opens in a new tab)
- Engagements polynomiaux KZG (opens in a new tab)
Dernière mise à jour de la page : 6 juin 2026