Passer au contenu principal

Dernière mise à jour de la page: 1 avril 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. À l'heure actuelle, les rollups sont 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 dans ces « blobs » ne sont pas accessibles par l'EVM et sont automatiquement supprimées après une période fixe (de 1 à 3 mois). Cela signifie que les rollups peuvent envoyer leurs données à moindre frais et répercuter ces économies aux 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 elles 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 ?

Une cérémonie KZG permet à de nombreuses personnes de la communauté Ethereum de générer ensemble une suite secrète de nombres aléatoires qui peut être utilisée 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 participe à la cérémonie reçoit une chaine de caractères en provenance 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 chaine précédente. Ils envoient ensuite la valeur au participant suivant et la détruisent de leur machine locale. Tant qu'au moins une personne durant la cérémonie agit honnêtement, la valeur finale sera introuvable 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. 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 1 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. Cependant, le Proto-Danksharding devrait arriver bientôt. Au moment où sont écrites ces lignes (février 2023), la cérémonie KZG est toujours ouverte et a jusqu'à présent attiré plus de 50 000 contributeurs. L'EIP(opens in a new tab) pour Proto-Danksharding est mature, la spécification est convenue et les clients ont implémenté des prototypes qui sont actuellement en cours de test et rendu prêt pour la production. La prochaine étape consiste à mettre en œuvre ces changements sur un réseau de test public. Vous pouvez vous tenir au courant en utilisant la Liste de contrôle de l'EIP 4844(opens in a new tab).

Complément d'information

Cet article vous a été utile ?