L'expansion a toujours été l'un des sujets qu'Ethereum ne peut éviter. Si Ethereum veut devenir un véritable « ordinateur mondial », il doit être à la fois évolutif, sécurisé et décentralisé. Mais il est nécessaire de réunir ces trois conditions en même temps. Connu dans l'industrie sous le nom de « triangle impossible de la blockchain », il s'agit d'un problème majeur qui n'a pas été résolu dans l'ensemble du secteur.

Cependant, fin 2021, Dankrad Feist, chercheur et développeur d'Ethereum, a proposé Danksharding, une nouvelle solution de sharding pour Ethereum, qui semble avoir apporté une solution révolutionnaire au « triangle impossible de la blockchain » et pourrait même réécrire l'ensemble des règles du jeu de l'industrie. .

Ce rapport de recherche tentera d’expliquer clairement en langage vernaculaire ce qu’est la nouvelle solution de sharding d’Ethereum, Danksharding, ainsi que ses tenants et aboutissants. La raison pour laquelle ce rapport de recherche est rédigé est qu'il existe très peu d'articles chinois sur le Danksharding et que la plupart d'entre eux nécessitent un seuil de connaissances élevé. Par conséquent, Spinach essaiera de décomposer pour vous les principes complexes derrière le Danksharding et d'utiliser une langue vernaculaire simple pour les rédiger. a Les débutants Web3 peuvent également comprendre la nouvelle solution de partitionnement d'Ethereum, Danksharding, et sa solution préalable EIP-4844.

Auteur: épinards épinards

Nombre de mots : ce rapport de recherche dépasse 10 000 mots et le temps de lecture estimé est de 21 minutes

Table des matières

  • Pourquoi Ethereum doit-il se développer ?

    • Contexte de l'expansion d'Ethereum

    • Qu’est-ce que le triangle impossible de la blockchain ?

    • Quelles sont les solutions de mise à l’échelle actuelles pour Ethereum ?

  • La solution de partitionnement initiale d'Ethereum Sharding1.0

    • Comment fonctionne le mécanisme de consensus POS d’Ethereum ?

    • À quoi ressemble la solution de sharding initiale Sharding1.0 ?

    • Quels sont les inconvénients de la solution de sharding initiale Sharding1.0 ?

  • Qu’est-ce que Danksharding, la nouvelle solution de sharding d’Ethereum ?

    • Prototype EIP-4844 : Proto-Danksharding – Nouveau type de transaction Blob

    • Danksharding – Solution d’extension complète

      • Échantillonnage de la disponibilité des données

      • Codage d’effacement

      • Engagement polynomial KZG (Engagement KZG)

      • Séparation Proposant/Constructeur

      • Liste de résistance à la censure (crList)

      • Séparation Proposeur-Constructeur à deux emplacements

  • Résumer

  • Références

Pourquoi Ethereum doit-il se développer ?

Après que le fondateur d'Ethereum, Vitalik Buterin, a publié le livre blanc d'Ethereum « Contrats intelligents de nouvelle génération et plate-forme d'application décentralisée » en 2014, la blockchain a inauguré une nouvelle ère. La naissance des contrats intelligents permet aux gens de créer des applications décentralisées (DApps) sur Ethereum, et apporte également une série d'innovations à l'écosystème blockchain telles que NFT, DeFi, GameFi, etc.

Contexte de l'expansion d'Ethereum

À mesure que l'écosystème de la chaîne Ethereum se développe, de plus en plus de personnes commencent à utiliser Ethereum et les problèmes de performances d'Ethereum commencent à être révélés. Lorsque de nombreuses personnes interagissent sur Ethereum en même temps, une « congestion » se produit dans la blockchain, tout comme l'heure des feux de circulation sur une route est fixe, et le nombre de véhicules dans un certain nombre ne provoquera pas d'embouteillages, mais soudainement pendant les heures de pointe. heures Lorsque le feu passe au vert, de nombreuses voitures empruntent cette route. Le nombre de véhicules sortant de la route lorsque le feu passe au vert est bien inférieur au nombre de nouveaux véhicules entrant sur la route en attente du feu. embouteillage. Le temps nécessaire à tous les véhicules pour traverser cette route sera allongé à jamais, et il en va de même dans la blockchain. Le temps de confirmation de la demande interactive de chacun sera allongé.

Mais dans la blockchain, ce n'est pas seulement le temps qui est allongé, mais aussi les frais de gaz élevés (les frais de gaz peuvent être compris comme des frais durs payés aux mineurs, qui sont responsables de l'emballage et du traitement de toutes les transactions dans la blockchain), car les mineurs donneront priorité aux transactions avec les offres les plus élevées, ce qui amènera tout le monde à augmenter les frais de gaz pour lutter pour une confirmation plus rapide des demandes d'interaction, déclenchant ainsi une « guerre du gaz ». L'un des événements les plus célèbres a été un projet NFT en 2017 - CryptoKitties. La popularité des CryptoKitties a poussé les frais de gaz à des centaines de dollars par interaction. Une interaction sur Ethereum coûte des dizaines, voire des centaines de dollars en frais de gaz.

La principale raison de ces frais de gaz si élevés est que les performances d’Ethereum ne peuvent plus répondre aux besoins d’interaction des utilisateurs existants. En termes de calculs de performances, Ethereum est différent de Bitcoin. Bitcoin utilise uniquement un simple registre pour traiter les informations de transfert, donc le TPS est fixe et peut gérer 7 transactions par seconde, mais c'est différent dans Ethereum.

En raison de l'existence de contrats intelligents dans Ethereum, le contenu de chaque transaction est différent, donc le nombre de transactions (TPS) que chaque bloc peut traiter dépend du volume de données des transactions contenues dans un bloc et du volume de données de chaque transaction. La taille est déterminée en fonction de la demande en temps réel. Nous pouvons en apprendre davantage sur le mécanisme de performance d'Ethereum : (Les informations suivantes sont utiles pour comprendre Danksharding, assurez-vous de les lire ~)

  • Ethereum stipule la limite supérieure de la quantité de données d'un bloc en fonction des frais de gaz. Un bloc peut transporter jusqu'à 30 millions de GAS de données.

  • Ethereum ne veut pas que la quantité de données dans chaque bloc soit trop importante, c'est pourquoi chaque bloc a un Gas Target (target Gas) de 15 millions de Gas.

  • Ethereum dispose d'un ensemble de normes de consommation de données Gas. Cependant, selon l'estimation de Spinach, chaque bloc a une taille d'environ 5 à 160 Ko, et la taille moyenne des blocs est d'environ 60 à 70 Ko.

  • Une fois que la consommation de Gaz d'un bloc dépasse l'Objectif de Gaz, qui est de 15 millions de Gaz, les frais de base du bloc suivant seront 12,5% plus chers. S'ils sont inférieurs aux frais de base, les frais de base seront réduits. Ce mécanisme est un mécanisme d'ajustement dynamique automatisé, peut continuer à augmenter les coûts pour atténuer la congestion lorsque les transactions atteignent leur maximum, tout en réduisant les coûts pour attirer davantage de transactions lorsque les transactions sont lentes.

Ensuite, en comprenant le mécanisme ci-dessus, nous pouvons savoir que le TPS d'Ethereum est flottant. **Nous pouvons calculer le TPS approximatif en voyant le nombre de transactions dans chaque bloc via le navigateur blockchain. Comme le montre la figure ci-dessous, en moyenne, un bloc compte environ 160 transactions en fonction du simple fait d'atteindre l'objectif de gaz, avec le. le plus élevé peut atteindre plus de 300 transactions. Sur la base du temps de génération de bloc de 12 secondes par bloc, le TPS représente environ 13 à 30 transactions, mais selon le TPS actuellement connu d'Ethereum, il peut atteindre un maximum de 45 transactions par seconde.

Catégorie : Mainnet | Beacon Chain Explorer (Phase 0) pour Ethereum 2.0 – BeaconScan

Si l'on prend comme exemple les performances du système commercial de renommée mondiale VISA, qui peut traiter des dizaines de milliers de transactions par seconde, les performances d'Ethereum, qui veut devenir un « ordinateur mondial », et peut traiter jusqu'à 45 transactions par seconde, est vraiment trop faible. Par conséquent, Ethereum a un besoin urgent d’expansion pour résoudre les problèmes de performances, qui sont liés à l’avenir d’Ethereum. Cependant, l’expansion n’est pas une tâche facile car il existe un « triangle impossible » dans l’industrie de la blockchain.

Qu’est-ce que le triangle impossible de la blockchain ?

Le « Blockchain Impossible Triangle » fait référence au fait qu’une blockchain publique ne peut pas satisfaire trois caractéristiques en même temps : la décentralisation, la sécurité et l’évolutivité.

  • Décentralisation : fait référence au degré de décentralisation des nœuds. Plus il y a de nœuds, plus ils sont dispersés et décentralisés.

  • Sécurité : fait référence à la sécurité de l’ensemble du réseau blockchain. Plus le coût de l’attaque est élevé, plus elle est sûre.

  • Évolutivité : fait référence aux performances de traitement des transactions de la blockchain. Plus il y a de transactions pouvant être traitées par seconde, plus elle est évolutive.

Si nous examinons l’importance de ces trois points, nous constaterons que la décentralisation et la sécurité ont le poids le plus élevé. La décentralisation est la pierre angulaire d’Ethereum. C’est la décentralisation qui confère à Ethereum la neutralité, la résistance à la censure, l’ouverture, la propriété des données et une sécurité quasi incassable. . L'importance de la sécurité n'a naturellement pas besoin d'être expliquée, mais la vision d'Ethereum est d'atteindre l'évolutivité sous le principe de la décentralisation et de la sécurité. La difficulté de mise en œuvre peut être imaginée, c'est pourquoi cela est également appelé le « Triangle impossible de la Blockchain ».

Source de l'image : Ethereum Vision |

Quelles sont les solutions de mise à l’échelle actuelles pour Ethereum ?

Nous savons que dans le « Triangle impossible de la Blockchain », la condition préalable pour qu'Ethereum puisse atteindre son expansion doit être d'assurer la décentralisation et la sécurité. Pour garantir la décentralisation et la sécurité, il ne doit pas dépasser la limite d'expansion. Parce que les nœuds jouent un rôle indispensable dans le maintien de l’ensemble du réseau Ethereum, les nœuds à forte demande empêcheront davantage de personnes de devenir des nœuds et de devenir de plus en plus centralisés. Bien entendu, plus le seuil des nœuds est bas, mieux ce sera. plus de personnes participent. Enter rend Ethereum plus décentralisé et sécurisé.

Il existe donc actuellement deux solutions d'extension pour Ethereum : Layer2 et Sharding. Layer2 est une solution off-chain pour l'expansion de la blockchain sous-jacente (Layer1). Le principe est de mettre des requêtes sur la blockchain en exécution Off-chain. Il existe plusieurs solutions Layer2. Ce rapport de recherche se concentre uniquement sur une seule solution Layer2, à savoir le Rollup : le principe du Rollup est de regrouper des centaines de transactions hors chaîne comme des crêpes en une seule transaction et de l'envoyer à Ethereum pour réaliser une expansion de cette manière. , tout le monde peut partager le coût du téléchargement sur Ethereum à très moindre coût, et en même temps, il peut hériter de la sécurité d'Ethereum.

Le rollup est actuellement divisé en deux types : le rollup d'optimisme (rollup optimiste) et le rollup ZK (rollup sans connaissance). La différence entre ces deux rollups est simplement l'hypothèse que toutes les transactions sont honnêtes et dignes de confiance. et soumis à Ethereum, il y aura une période de temps après la soumission (période de défi - actuellement une semaine. N'importe qui peut questionner et lancer un défi pour vérifier l'authenticité de la transaction, mais si l'utilisateur souhaite transférer l'ETH sur l'OP). Rollup Si vous passez à Ethereum, vous devez attendre la fin de la période de défi avant de pouvoir obtenir la confirmation finale.

ZK Rollup prouve que toutes les transactions sont valides en générant une preuve sans connaissance et télécharge les changements d'état final une fois que toutes les transactions sont exécutées sur Ethereum. ZK Rollup est plus prometteur que Optimism Rollup. ZK Rollup n'a pas besoin de télécharger tous les détails de transaction compressés comme Optimism Rollup. Il lui suffit de télécharger une preuve de connaissance nulle et les données de changement d'état final, ce qui signifie qu'il est évolutif. compresser plus de données que OP Rollup, et il n'est pas nécessaire d'attendre une période de défi d'une semaine comme OP Rollup. Cependant, le plus gros inconvénient de ZK Rollup est qu'il est extrêmement difficile à développer, donc à court terme, Optimism Rollup. occupera une grande partie du marché L2.

En plus de Layer2, il existe une autre solution d'expansion qui est Sharding, le protagoniste de cet article. Nous savons que Layer2 met les transactions sur Ethereum sur la chaîne pour traitement. Mais quelle que soit la manière dont Layer2 traite les données, les performances d’Ethereum lui-même restent inchangées, de sorte que l’effet d’expansion que Layer2 peut obtenir n’est en réalité pas si significatif.

Le sharding vise à réaliser l'expansion au niveau de la couche 1 d'Ethereum, mais nous savons que la condition préalable à l'expansion sur Ethereum est d'assurer la décentralisation et la sécurité d'Ethereum, nous ne pouvons donc pas augmenter trop la charge sur les nœuds.

Le schéma de mise en œuvre spécifique du sharding a toujours été un sujet de discussion constant dans la communauté Ethereum. Le dernier schéma est Danksharding, le sujet de cet article est également mentionné que Danksharding est le dernier schéma de sharding. Avant de parler de Danksharding, les épinards seront. Permettez-moi également de vous présenter brièvement à quoi ressemble l'ancienne solution de partitionnement et pourquoi elle n'est pas adoptée.

La solution de partitionnement initiale d'Ethereum Sharding1.0

Avant de parler de la solution sharding 1.0, nous devons d'abord présenter le fonctionnement du mécanisme de consensus POS actuel d'Ethereum, car il s'agit des connaissances préalables nécessaires pour comprendre la solution sharding 1.0 et Danksharding. Nous parlerons de la solution sharding 1.0. bref résumé (il suffit de savoir à peu près quoi faire).

Comment fonctionne le mécanisme de consensus POS d’Ethereum ? [7]

Le mécanisme de consensus est un système qui permet à tous les nœuds qui maintiennent le réseau dans la blockchain de parvenir à un consensus, et son importance va de soi. Ethereum a achevé « la fusion » dans la phase de mise à niveau d'Ethereum 2.0 le 15 septembre 2022, c'est-à-dire que le réseau principal Ethereum de preuve de charge de travail POW et la chaîne de balises du mécanisme de preuve d'équité POS ont été fusionnés, et le mécanisme de preuve d'équité POS a été officiellement Il a remplacé le mécanisme de preuve de charge de travail POW et est devenu le mécanisme de consensus d'Ethereum.

Nous savons que dans le mécanisme de preuve de la charge de travail POW, les mineurs se disputent le droit de produire des blocs grâce à l'empilement de la puissance de calcul. Dans le mécanisme de preuve de l'équité POS, les mineurs se disputent le droit de produire des blocs en promettant 32 ETH pour devenir le nœud de vérification de. Ethereum Bloquer les droits (la méthode de staking ne sera pas présentée ici).

En plus des changements dans le mécanisme de consensus, le temps de bloc d'Ethereum est également passé du temps de bloc flottant précédent à un temps fixe, divisé en deux unités : slot (Slot) et période (Epoch) : le Slot est de 12 secondes et Epoch est de 6,4 minutes. Une époque contient 32 emplacements. En termes simples, un bloc est produit en 12 secondes et 32 ​​blocs sont produits en 6,4 minutes en un seul cycle (époque).

Lorsqu'un mineur promet 32 ​​ETH pour devenir un nœud de vérification, la chaîne de balises utilisera un algorithme aléatoire pour sélectionner le nœud de vérification comme nœud de production de bloc pour emballer le bloc. Chaque bloc sélectionnera au hasard un nœud de production de bloc. Dans le même temps, à chaque cycle Epoch, la chaîne de balises attribuera de manière uniforme et aléatoire tous les nœuds de vérification de chaque bloc à un groupe de « comités » composé d'au moins 128 nœuds de vérification.

C'est-à-dire que chaque bloc se verra attribuer 1/32 du nombre de nœuds de vérification de tous les nœuds. Les « comités » composés de ces nœuds de vérification doivent vérifier et voter sur les blocs emballés par les nœuds producteurs de blocs de chaque bloc. Lorsque le nœud producteur de blocs emballe le bloc, plus des deux tiers des nœuds de vérification votent pour produire le bloc avec succès.

À quoi ressemble la solution de sharding initiale Sharding1.0 ? [7]

Dans le concept de conception de la solution de partitionnement initiale Sharding1.0, Ethereum a été conçu à partir d'une chaîne principale jusqu'à un maximum de 64 chaînes de fragments, et l'expansion a été réalisée en ajoutant plusieurs nouvelles chaînes. Dans cette solution, chaque chaîne de fragments est responsable du traitement des données Ethereum et de leur transmission à la chaîne de balises. La chaîne de balises est responsable de la coordination de l'ensemble d'Ethereum. Les nœuds et comités producteurs de blocs de chaque chaîne de fragments sont contrôlés par la balise. chaîne. Les chaînes sont attribuées au hasard.

La chaîne de balise et la chaîne de fragments sont liées par des liens croisés. Le bloc de la chaîne de balise donnera une valeur de hachage au bloc de fragments du même bloc, puis le bloc de fragments portera ce hachage si la valeur est donnée au suivant. bloc balise, des liaisons croisées peuvent être obtenues. Si la valeur est manquée, elle sera donnée au bloc balise suivant.

Quels sont les inconvénients de la solution de sharding initiale Sharding1.0 ?

Pour faire simple, la solution de sharding 1.0 consiste à découper Ethereum en plusieurs chaînes de fragments pour traiter les données ensemble, puis à transmettre les données à la chaîne de balises pour réaliser l'expansion. Cependant, cette solution présente de nombreux inconvénients :

**Difficultés de développement :** Il est techniquement très difficile de diviser Ethereum en 64 chaînes de fragments tout en garantissant un fonctionnement normal, et plus le système est complexe, plus il est probable que des failles imprévisibles se produiront également. problèmes si des problèmes surviennent et doivent être réparés.

**Problème de synchronisation des données :** Chaque cycle Epoch de la chaîne de balises perturbera à nouveau les « comités » responsables de la vérification, donc chaque redistribution des nœuds de vérification est une synchronisation des données d'un réseau à grande échelle, car si c'est le cas, quand un Le nœud se voit attribuer une nouvelle chaîne de fragments, il doit synchroniser les données de cette chaîne de fragments. En raison des différentes bandes passantes de performances des nœuds, il est difficile de garantir que la synchronisation est terminée dans le délai spécifié. Cependant, si les nœuds sont autorisés à synchroniser directement les données de toutes les chaînes de fragments, cela augmentera considérablement la charge pesant sur les nœuds, ce qui rendra Ethereum de plus en plus centralisé. [2]

**Problème de croissance du volume de données :** Bien que la vitesse de traitement d'Ethereum se soit considérablement améliorée, le traitement simultané des données par plusieurs chaînes de fragments a également entraîné une forte augmentation de la quantité de données stockées. Le taux d'expansion du volume de données d'Ethereum sera également élevé. Plus rapidement qu'auparavant, les exigences en matière de performances de stockage pour les nœuds continueront d'augmenter, conduisant à une plus grande centralisation.

**Impossible de résoudre le problème MEV :** La valeur maximale extractible (MEV) est le montant qui peut être extrait de la production de blocs au-delà de la récompense de bloc standard et en excluant les transactions dans le bloc et en modifiant l'ordre des transactions dans le bloc. Coût maximum du carburant. Une fois qu'une transaction est initiée dans Ethereum, la transaction sera placée dans le mempool (un pool contenant les transactions à exécuter) en attente d'être emballée par les mineurs. Les mineurs pourront ensuite voir toutes les transactions dans le mempool et les droits des mineurs. sont très limités, les mineurs maîtrisent l’inclusion, l’exclusion et l’ordonnancement des transactions. Si quelqu'un réalise un profit en soudoyant les mineurs pour qu'ils ajustent l'ordre des transactions dans le pool de transactions en payant plus de frais de gaz, il s'agit d'une valeur extractible maximale MEV. [6]

Par exemple:

  • Il existe une méthode de MEV appelée « attaque sandwich » ou « attaque clip ». Cette méthode d'extraction de MEV consiste à surveiller les transactions DEX à grande échelle sur la chaîne. Par exemple, quelqu'un veut acheter pour 1 million de dollars américains d'altcoins sur Uniswap. , et cette méthode Une transaction augmentera considérablement le prix de l'altcoin. Lorsque la transaction est placée dans le mempool, le robot de surveillance peut détecter la transaction. À ce moment-là, le robot corrompt le mineur qui a emballé le bloc pour transférer un. L'opération d'achat de cet altcoin saute devant cette personne, puis effectue une opération de vente après l'opération d'achat de cette personne. C'est comme un sandwich prenant en sandwich la personne qui a effectué des transactions DEX à grande échelle. La personne qui a "attaqué" a obtenu l'altcoin grâce au profit de la transaction d'un montant important de cette personne, et la personne qui a effectué la transaction d'un montant important a causé des pertes. [6]

L'existence de MEV a toujours eu des impacts négatifs sur Ethereum, tels que les pertes et la pire expérience utilisateur causées par les "attaques sandwich", la congestion du réseau causée par la concurrence entre les leaders, les frais de gaz élevés et même le problème de centralisation des nœuds. avec plus de valeur MEV peut continuer à occuper plus de parts dans le réseau grâce aux revenus, car plus de revenus = plus d'ETH = plus d'intérêts de jalonnement, plus le coût élevé apporté par MEV (congestion du réseau et GAS élevé causé par le front-running) entraînera le continu perte d'utilisateurs d'Ethereum. Même si la valeur MEV dépasse considérablement la récompense de bloc, cela entraînera une instabilité du consensus et la sécurité de l'ensemble d'Ethereum, qui ne peut pas être résolue par la solution de sharding 1.0 et entraîne une série de problèmes.

Alors que Dankrad Feist, chercheur et développeur d’Ethereum, a proposé Danksharding, une nouvelle solution de sharding pour Ethereum fin 2021, Danksharding a été unanimement considéré par la communauté Ethereum comme la meilleure solution pour réaliser l’expansion du sharding, et pourrait même ouvrir une nouvelle ère à Ethereum. révolution.

Danksharding utilise un nouvel ensemble d'idées de partitionnement pour résoudre le problème d'expansion d'Ethereum, c'est-à-dire une solution de partitionnement qui s'articule autour du rollup de la couche 2. Cette nouvelle solution de partitionnement peut assurer la décentralisation sans augmenter considérablement la charge sur les nœuds. assurer la sécurité et résoudre également l'impact négatif causé par MEV.

Nous pouvons voir sur la figure ci-dessous que les objectifs de « The Surge » et « The Scourge » dans la prochaine phase de mise à niveau d'Ethereum sont : atteindre plus de 100 000 TPS dans le Rollup et éviter la centralisation apportée par MEV et d'autres protocoles.

Photo/Source : vitalik.eth Traduction : ethereum.cn

Alors, comment Danksharding résout-il le problème d’expansion d’Ethereum ? Commençons par la solution pré-professionnelle de Danksharding EIP-4844 : Proto-Danksharding.

Prototype EIP-4844 : Proto-Danksharding – Nouveau type de transaction Blob

EIP-4844 introduit un nouveau type de transaction pour Ethereum : Blob Transcation. Ce nouveau type de transaction Blob peut fournir une base de données de plug-in supplémentaire pour Ethereum :

  • Un blob fait environ 128 Ko

  • Une transaction peut transporter jusqu'à deux blobs - 256 Ko

  • Chaque bloc contient 8 Blobs cibles - 1 Mo, et peut transporter un maximum de 16 Blobs - 2 Mo (le concept de Target est mentionné en arrière-plan de l'extension)

  • Les données Blob sont temporairement stockées et seront effacées après un certain temps (la recommandation actuelle de la communauté est de 30 jours).

À l’heure actuelle, la taille moyenne de chaque bloc dans Ethereum n’est que d’environ 85 Ko. L’espace de stockage supplémentaire apporté par Blob à Ethereum est énorme. Vous devez savoir que la taille totale des données de tous les registres Ethereum n’est que d’environ 1 To depuis la naissance d’Ethereum. Les blobs peuvent apporter 2,5 à 5 To de données supplémentaires à Ethereum chaque année, ce qui représente plusieurs fois la quantité de données dans l'ensemble du grand livre Ethereum.

On peut dire que la transaction Blob introduite par EIP-4844 est conçue sur mesure pour le Rollup. Les données du Rollup sont téléchargées sur Ethereum sous la forme de Blob. L'espace de données supplémentaire permet au Rollup d'obtenir un TPS plus élevé et des coûts inférieurs, tout en réduisant les coûts. , l'espace de bloc initialement occupé par Rollup sera libéré pour davantage d'utilisateurs.

Étant donné que les données Blob sont temporairement stockées, l'augmentation soudaine de la quantité de données n'alourdit pas les performances de stockage du nœud. Si seulement un mois de données Blob est temporairement stocké, le volume de données synchronisées sera nécessaire pour bloquer le nœud. pour télécharger 1 Mo à 2 Mo de données supplémentaires, ce qui ne semble pas peser sur les besoins en bande passante du nœud. Du point de vue de la capacité de stockage des données, les nœuds n'ont besoin que de télécharger et de sauvegarder une quantité fixe de données d'environ 200 à 400 Go (quantité de données d'un mois), ce qui ne nécessite qu'une augmentation des coûts tout en garantissant la décentralisation et la sécurité. peu de charge de nœud, l'augmentation du TPS et la réduction des coûts sont calculées des dizaines, voire des centaines de fois. C'est tout simplement une excellente solution pour résoudre le problème d'évolutivité d'Ethereum.

Que se passe-t-il si les données sont effacées et que l'utilisateur souhaite accéder aux données précédentes ?

Tout d’abord, le but du protocole de consensus Ethereum n’est pas d’assurer le stockage permanent de toutes les données historiques. Au lieu de cela, l'objectif est de fournir un tableau d'affichage en temps réel hautement sécurisé avec un espace de stockage à long terme pour d'autres protocoles décentralisés. L'existence du bulletin d'information vise à garantir que les données publiées sur le bulletin d'information restent suffisamment longtemps. Tout utilisateur ou protocole souhaitant ces données dispose de suffisamment de temps pour capturer les données et les sauvegarder, il est donc de la responsabilité des données Blob. transféré à d'autres rôles tels que les parties au projet de couche 2, les protocoles de stockage décentralisés, etc. [3]

Danksharding – Solution d’extension complète

EIP-4844 a franchi la première étape de l’expansion d’Ethereum autour du Rollup, mais pour Ethereum, l’effet d’expansion obtenu par EIP-4844 est loin d’être suffisant. La solution complète de Danksharding augmente encore la quantité de données que Blob peut transporter de 1 à 2 Mo par bloc à 16 Mo à 32 Mo, et propose un nouveau mécanisme de séparation producteur-packager (PBS) pour résoudre les problèmes causés par MEV.

Ensuite, nous devons savoir quelles difficultés il y aura à continuer d'étendre la capacité sur la base de l'EIP-4844 :

**La charge du nœud est trop importante :** Nous savons que le Blob dans EIP-4844 n'a qu'une taille de 1 à 2 Mo, ce qui est tout à fait acceptable pour augmenter la charge sur le nœud, mais si le volume de données du Blob est étendu à 16 fois à 16 ~ 32 Mo, peu importe qu'il s'agisse de synchronisation ou de stockage de données, la charge sur les nœuds sera trop importante et le degré de décentralisation d'Ethereum sera réduit.

**Problèmes de disponibilité des données :** Si le nœud ne télécharge pas toutes les données Blob, il sera confronté à des problèmes de disponibilité des données car les données ne sont pas ouvertes sur la chaîne et accessibles à tout moment. Par exemple, le nœud Ethereum a des doutes sur un. certaines transactions sur l'Optimism Rollup Challenge, mais Optimism Rollup ne transmet pas ces données. Si vous ne pouvez pas obtenir les données d'origine, vous ne pouvez pas prouver que cette transaction est problématique. Par conséquent, pour résoudre le problème de disponibilité des données, vous devez vous assurer que la transaction est problématique. les données sont ouvertes et accessibles à tout moment.

Alors, comment Danksharding résout-il ces problèmes ?

Échantillonnage de la disponibilité des données

Danksharding a proposé une solution, Data Availability Sampling, pour réduire la charge des nœuds tout en garantissant la disponibilité des données.

L'idée du Data Availability Sampling (DAS) est de découper les données du Blob en fragments de données et de laisser les nœuds passer du téléchargement des données Blob à la vérification aléatoire des fragments de données Blob, de sorte que les fragments de données Blob soient dispersés dans chaque nœud d'Ethereum, mais les données Blob complètes sont stockées dans l'intégralité du grand livre Ethereum, à condition que les nœuds doivent être suffisamment grands et décentralisés.

Par exemple : par exemple, les données Blob sont découpées en 10 fragments et il y a 100 nœuds dans l'ensemble du réseau. Chaque nœud vérifiera et téléchargera de manière aléatoire un fragment de données et soumettra le numéro de fragment vérifié au hasard au bloc. Le bloc est Si tous les fragments numérotés peuvent être rassemblés, Ethereum indiquera par défaut que les données de ce Blob sont disponibles et les données d'origine peuvent être restaurées en rassemblant les fragments. Cependant, il y aura également une très faible probabilité que 100 nœuds ne dessinent pas un fragment avec un certain nombre. Dans ce cas, des données manqueront, ce qui réduit dans une certaine mesure la sécurité, mais c'est acceptable en termes de probabilité.

Danksharding utilise deux technologies pour mettre en œuvre l'échantillonnage de disponibilité des données (DAS) : le codage d'effacement (Erasure Coding) et l'engagement polynomial KZG (KZG Commitment)

Codage d’effacement

Erasure Coding est une technologie de codage tolérante aux pannes. L'utilisation du codage d'effacement pour couper les données peut permettre à tous les nœuds Ethereum de restaurer les données d'origine lorsqu'ils ne disposent que de plus de 50 % des fragments de données, réduisant ainsi considérablement les données. Le principe de mise en œuvre spécifique du. la probabilité de manquer est plus compliquée. Voici une formule mathématique pour donner un exemple pour expliquer grossièrement le principe : [2]

  • Construisez d’abord une fonction f(x) = ax + b et prenez 4 valeurs x

  • Supposons que m = f(0) = b, n = f(1) = a + b, nous pouvons obtenir a = n – b, b = m

  • Supposons que p = f(2), q = f(3), nous pouvons obtenir p = 2a + b = 2n – m, q = 3a + b = 3n – 2m

  • Ensuite, les quatre fragments m, n, p, q sont dispersés parmi les nœuds de l'ensemble du réseau

  • Selon la formule mathématique, il suffit de trouver deux des fragments pour comprendre ce que sont les deux autres fragments.

  • Si vous trouvez n et m, vous pouvez calculer directement q=3n-2m et p=2n-m

  • Si vous trouvez q et p, vous pouvez combiner (2p=4n-2m)-(q=3n-2m) pour obtenir 2p-q=n et ensuite vous pouvez calculer directement m

Pour faire simple, le codage d'effacement utilise des principes mathématiques pour découper les données Blob en de nombreux fragments de données. Les nœuds Ethereum n'ont pas besoin de collecter tous les fragments de données. Ils n'ont besoin que de collecter plus de 50 % des fragments pour restaurer les données originales du Blob. De cette façon, cela réduit considérablement la probabilité d'une collecte insuffisante de fragments et sa probabilité peut être ignorée.

Engagement polynomial KZG (Engagement KZG)

KZG Polynomial Commitment (KZG Commitment) est une technologie cryptographique utilisée pour résoudre le problème d'intégrité des données lié au codage d'effacement. Étant donné que le nœud ne vérifie que de manière aléatoire les fragments de données coupés par le code d'effacement, le nœud ne sait pas si les fragments de données proviennent réellement des données originales du Blob, le rôle responsable du codage doit donc générer un engagement polynomial KZG pour le prouver. effacement. Les fragments de données du code font bien partie des données originales. La fonction de KZG est quelque peu similaire à l'arbre de Merkle mais la forme est différente. Toutes les preuves de KZG sont sur le même polynôme.

Danksharding implémente l'échantillonnage de disponibilité des données (DAS) via le codage d'effacement et l'engagement polynomial KZG, ce qui réduit considérablement la charge sur les nœuds lorsque la quantité de données supplémentaires transportées par les Blobs est étendue à 16 Mo ~ 32 Mo. Actuellement, la communauté Ethereum a également proposé une méthode appelée. Le schéma 2D KZG réduit davantage les fragments de données afin de réduire la bande passante et les besoins de calcul, mais l'algorithme final utilisé fait toujours l'objet de discussions animées au sein de la communauté, y compris la conception du DAS, qui est également constamment optimisé et amélioré.

Pour Ethereum, le Data Availability Sampling (DAS) résout le problème de l’augmentation de la taille des données Blob de 16 Mo à 32 Mo tout en réduisant la charge sur les nœuds, mais il semble y avoir un problème : qui encodera les données originales ?

Si vous souhaitez encoder les données originales du Blob, le principe est que le nœud d'encodage doit disposer de données originales complètes. Pour y parvenir, des exigences plus élevées seront requises pour le nœud. Eh bien, Spinach a mentionné précédemment que Danksharding a proposé un nouveau mécanisme **Block Producer-Packager Separation (PBS)** pour résoudre les problèmes causés par MEV. En fait, cette solution résout non seulement le problème MEV, mais résout également le problème d'encodage. problèmes.

Séparation Proposant/Constructeur

Tout d'abord, nous savons que l'échantillonnage de disponibilité des données (DAS) réduit la charge pesant sur les nœuds pour vérifier les Blobs et permet une faible configuration et une vérification décentralisée. Cependant, pour créer ce bloc, vous devez disposer de données Blob complètes et les coder, ce qui améliore. Il existe de nombreuses exigences pour les nœuds complets Ethereum. Proposer-Bundler Separation (PBS) propose de diviser les nœuds en deux rôles : les nœuds de constructeur et de proposant à haute performance peuvent devenir des constructeurs, et les nœuds à faible performance deviennent des proposants.

Actuellement, il existe deux types de nœuds dans Ethereum : les nœuds complets et les nœuds légers. Les nœuds complets doivent synchroniser toutes les données sur Ethereum, telles que les listes de transactions et les corps de bloc. Les nœuds complets jouent les deux rôles de packaging de blocs et de vérification de blocs. Étant donné que le nœud complet peut voir toutes les informations du bloc, le nœud complet peut réorganiser ou ajouter ou supprimer les transactions dans le bloc pour obtenir la valeur MEV. Les nœuds légers n'ont pas besoin de synchroniser toutes les données, ils ont seulement besoin de synchroniser l'en-tête du bloc pour vérifier le bloc. [1]

Après avoir mis en œuvre la séparation proposant-emballeur (PBS) :

  • Les nœuds avec une configuration haute performance peuvent devenir des constructeurs. Les constructeurs doivent uniquement être responsables du téléchargement des données Blob, de l'encodage et de la création de blocs, puis de leur diffusion vers d'autres nœuds pour des vérifications ponctuelles. Pour les constructeurs, car la quantité de données synchronisées et les exigences en matière de bande passante sont élevées. élevé, il sera relativement centralisé.

  • Les nœuds avec une configuration aux performances inférieures peuvent devenir des proposants. Les proposants doivent uniquement vérifier la validité des données et créer et diffuser des en-têtes de bloc. Cependant, pour les proposants, les exigences en matière de volume de données de synchronisation et de bande passante sont inférieures, elles seront donc décentralisées.

PBS réalise la division du travail entre les nœuds en séparant les rôles d'empaquetage et de vérification. Les nœuds avec une configuration haute performance sont responsables du téléchargement de toutes les données pour le codage et la distribution, et les nœuds avec une configuration faible performance sont responsables des contrôles ponctuels et de la vérification. le problème du MEV est résolu ?

Liste de résistance à la censure (crList)

Étant donné que PBS sépare le travail d'emballage et de vérification, le conditionneur (Builder) a en réalité une plus grande capacité à examiner les transactions. Le conditionneur peut délibérément ignorer certaines transactions et trier et insérer les transactions qu'il souhaite insérer à volonté. Allez chercher MEV, mais la censure. -liste résistante (crList) résout ces problèmes.

Mécanisme de liste résistante à la censure (crList) : [1]

  • Avant que le constructeur n'emballe la transaction de bloc, le proposant publiera d'abord une liste résistante à la censure (crList). Cette crList contient toutes les transactions du pool mémoire.

  • Le packager (Builder) peut uniquement choisir de regrouper et trier les transactions dans crList, ce qui signifie que le packager ne peut pas insérer sa propre transaction privée pour obtenir MEV, ni rejeter délibérément une transaction (à moins que la limite de gaz ne soit pleine).

  • Après le packaging, le constructeur diffuse la version finale du hachage de la liste de transactions au proposant. Le proposant sélectionne l'une des listes de transactions pour générer un en-tête de bloc et la diffuse.

  • Lorsque le nœud synchronise les données, il obtiendra l'en-tête du bloc du proposant (Proposer), puis obtiendra le corps du bloc du packager (Builder) pour garantir que le corps du bloc est la version finale sélectionnée.

L'impact négatif du MEV tel que « l'attaque sandwich » est résolu grâce à la liste anti-censure (crList). Les nœuds ne peuvent plus obtenir un MEV similaire en insérant des transactions privées.

Le plan de mise en œuvre spécifique d'Ethereum pour le PBS est toujours en discussion. Le plan de mise en œuvre initial possible actuel est le PBS à double emplacement.

Séparation Proposeur-Constructeur à deux emplacements

PBS à double emplacement utilise un modèle d'enchères pour déterminer les blocs :[2]

  1. Après avoir obtenu la crList, le Builder crée l'en-tête de bloc de la liste des transactions et des enchères

  2. Le proposant sélectionne l'en-tête de bloc et le constructeur qui réussit dans l'offre finale, et le proposant reçoit les frais d'offre gagnante sans condition (indépendamment du fait qu'un bloc valide soit généré ou non).

  3. Le comité de vérification (les comités) confirme l'en-tête du bloc gagnant

  4. Le constructeur révèle le corps du bloc gagnant

  5. Le comité de vérification (les comités) confirme le corps du bloc gagnant et procède à un vote de vérification (s'il réussit, le bloc sera produit. Si l'emballeur ne donne délibérément pas le corps du bloc, il sera considéré que le bloc n'existe pas)

Bien que le constructeur puisse toujours obtenir du MEV en ajustant la séquence de transactions, le mécanisme d'enchères du PBS à double emplacement provoque une « involution » entre ces constructeurs. Lorsque tout le monde devra soumissionner pour concourir pour des blocs, les bénéfices obtenus par les conditionneurs centralisés via MEV seront continuellement réduits et les bénéfices finaux seront distribués aux proposants décentralisés (proposants). Cela résout le problème. Cela résout le problème des conditionneurs centralisés. de plus en plus centralisée avec l'acquisition de MEV.

Cependant, le PBS à double emplacement présente un défaut de conception : nous voyons que le nom de cette conception est "Two-slot", ce qui signifie qu'il y a deux emplacements, ce qui signifie que dans ce schéma, le temps effectif de génération de bloc est Il a été étendu à 24 secondes (un créneau = 12 secondes), et la communauté Ethereum discute activement de la manière de résoudre ce problème.

Résumer

Danksharding fournit une solution transformatrice à Ethereum pour résoudre le « triangle impossible de la blockchain » consistant à atteindre l’évolutivité tout en garantissant la décentralisation et la sécurité d’Ethereum :

  • Grâce à la solution frontale EIP-4844 : Proto-Danksharding, un nouveau type de transaction Blob est introduit. Le volume de données supplémentaire de 1 Mo à 2 Mo transporté par le Blob peut aider Ethereum à atteindre un TPS plus élevé et à réduire les coûts de rollup.

  • L'échantillonnage de disponibilité des données (DAS) est mis en œuvre via un codage d'effacement et un engagement polynomial KZG, de sorte que les nœuds n'ont besoin que de vérifier de manière aléatoire certains fragments de données pour vérifier la disponibilité des données et réduire la charge sur les nœuds.

  • En implémentant le Data Availability Sampling (DAS), le volume de données supplémentaire du Blob est étendu à 16 Mo ~ 32 Mo, portant l'effet d'expansion à un niveau supérieur.

  • Grâce à la séparation Proposer-Packager (PBS), le travail de vérification et de packaging des blocs est séparé en deux rôles de nœuds, réalisant la décentralisation des nœuds de packaging et la décentralisation des nœuds de vérification.

  • L'impact négatif de MEV est considérablement réduit grâce à la liste anti-censure (crList) et au PBS à double emplacement. Le packager ne peut pas insérer de transactions privées ni censurer une certaine transaction.

À tout le moins, la solution frontale EIP-4844 de Danksharding sera officiellement mise en œuvre dans la mise à niveau de Cancun après la mise à niveau d'Ethereum Shanghai. L'avantage le plus direct après la mise en œuvre de la solution EIP-4844 est le rollup et le rollup dans l'écologie de couche 2. Un TPS plus élevé et un coût inférieur sont très adaptés aux applications haute fréquence sur la chaîne. Autant imaginer que des « applications tueuses » puissent naître. La génération de blocs centralisée + la vérification décentralisée + la résistance à la censure obtenues par Danksharding apporteront un nouveau cycle de récit de chaîne publique à Ethereum. En plus de la couche 2, la blockchain modulaire et Ethereum après Danksharding entreront en collision pour créer quel type de réaction chimique ?

Spinach estime que la mise en œuvre de Danksharding réécrira toutes les règles du jeu et qu'Ethereum conduira l'industrie de la blockchain dans une nouvelle ère !

Références

[1] Disponibilité des données, extension du stockage de la blockchain

[2] Comprendre le nouveau plan de mise à niveau d'Ethereum dans un article Danksharding

[3] FAQ sur le proto-Danksharding – HackMD

[4] Qu'est-ce que « Danksharding » exactement dans la science populaire de V God ?

[5] Recommandé par V God丨Pour avoir une compréhension approfondie de la feuille de route de sharding d'Ethereum, ce rapport est suffisant

[6] Article Buidler DAO : Comment sauver les NFT des pirates après le vol de leur portefeuille ?

[7] L’histoire se répète-t-elle ? Une explication détaillée d'Ethereum 2.0 et des hard forks