paint-brush
Mise à l'échelle d'Ethereum : gonflement des données, disponibilité des données et solution sans cloudpar@logos
5,353 lectures
5,353 lectures

Mise à l'échelle d'Ethereum : gonflement des données, disponibilité des données et solution sans cloud

par Logos11m2024/06/12
Read on Terminal Reader

Trop long; Pour lire

Codex est un protocole de stockage p2p sans cloud et sans confiance cherchant à offrir de solides garanties de persistance et de durabilité des données pour l'écosystème Ethereum et au-delà. En raison du développement et de la mise en œuvre rapides de nouveaux protocoles, la chaîne de blockchain Ethereum est devenue saturée de données. Cette surcharge de données peut également être définie comme une « congestion du réseau », où les données de transaction encombrent le réseau et compromettent l'évolutivité. Le Codex propose une solution au problème DA, sauf avec la persistance des données.
featured image - Mise à l'échelle d'Ethereum : gonflement des données, disponibilité des données et solution sans cloud
Logos HackerNoon profile picture

Codex est un protocole de stockage p2p sans cloud et sans confiance cherchant à offrir de solides garanties de persistance et de durabilité des données pour l'écosystème Ethereum et au-delà. Actuellement, l'EIP-4844 n'offre qu'une solution partielle au problème de la saturation des données. Les frais restent élevés et l’écosystème dispose de peu d’options de stockage de données à long terme.


Déterminer comment conserver les données excédentaires d'Ethereum lui permettra d'évoluer indéfiniment dans le futur, et le Codex est arrivé sur les lieux pour aider à atténuer ces inquiétudes. Explorons le problème.


Avez-vous déjà échangé ETH contre un autre token sur Uniswap ?


Je me suis connecté via Metamask et j'ai essayé d'échanger .001 Eth (environ 35 $) contre SNT. Les frais de gaz coûtent autant que la transaction. Ce sont des frais trop élevés pour échanger des crypto-monnaies. La plupart des gens ne veulent pas payer autant.


Voyons au cœur pourquoi ces transactions sont si coûteuses.



20/03/2024

Le Web3 et la finance décentralisée se sont considérablement développés ces dernières années. En raison du développement et de la mise en œuvre rapides de nouveaux protocoles, la chaîne de blockchain Ethereum est devenue saturée de données. Le résultat? Frais d’essence prohibitifs et mauvaise expérience utilisateur. Cette surcharge de données peut également être définie comme une « congestion du réseau », où les données de transaction encombrent le réseau et compromettent l'évolutivité.


Cet article examine pourquoi la blockchain est devenue gonflée, pourquoi le débit des transactions a souffert et diverses approches pour résoudre le problème. Je me concentrerai spécifiquement sur la disponibilité des données dans le contexte d'Ethereum et des rollups. J'explorerai comment le Codex propose une solution au problème DA, sauf avec des garanties de persistance et de durabilité des données qui manquent à la plupart des autres solutions.


Supportez-moi ; J'utiliserai du jargon et un langage technique, mais je ferai de mon mieux pour explorer ce sujet vital et sous-estimé dans un langage clair. De plus en plus de personnes dans l'écosystème doivent commencer à comprendre à quel point l'échantillonnage de disponibilité des données (DAS) est robuste pour faire évoluer les blockchains. Avant de continuer, le lecteur doit avoir pris connaissance des mécanismes de consensus, de la preuve d'enjeu et du fonctionnement de la technologie à un niveau élevé.


Commençons par analyser le trilemme de la blockchain.

Trilemme problématique

Toutes les technologies décentralisées qui souhaitent se développer souffrent de contraintes similaires.


Ils souhaitent évoluer pour permettre à de plus en plus d’utilisateurs d’adopter la technologie – de plusieurs milliers à plusieurs millions d’utilisateurs. Cependant, la mise à l’échelle de différentes technologies s’accompagne de différents défis d’ingénierie.


Dans le cas d’Ethereum, les blocs de la chaîne contiennent des données transactionnelles, étatiques et de contrats intelligents. Plus les gens utilisent le réseau, plus les données sont ajoutées à chaque bloc. Le problème est que lorsque les blocs commencent à se remplir, un marché de frais apparaît, dans lequel ceux qui paient des frais de gaz plus élevés ont plus de chances de voir leur transaction incluse dans le bloc suivant.


Une solution simple serait d’augmenter la taille du bloc et d’autoriser davantage de données transactionnelles. Cependant, cette approche pose un problème, qui fait partie du trilemme de la blockchain.

Le trilemme stipule que les blockchains ont trois caractéristiques principales qu’elles souhaitent maintenir et améliorer : l’évolutivité, la décentralisation et la sécurité. Le trilemme suggère qu’essayer d’améliorer deux réduit l’autre.


Dans le cas d'Ethereum, la mise à niveau de la capacité du bloc augmente également les exigences matérielles pour exécuter un nœud de validation complet sur le réseau. Lorsque le réseau augmente les exigences matérielles de cette manière, il devient plus difficile pour les gens ordinaires d'exécuter un nœud complet, ce qui a un impact négatif sur le réseau en diminuant la décentralisation globale et la résistance à la censure.


À première vue, le problème semble insurmontable. Heureusement, les développeurs et les ingénieurs repensent la manière dont les blockchains peuvent évoluer. Ils envisagent les blockchains et leurs écosystèmes comme étant modulaires plutôt que monolithiques.

Modulaire contre monolithique

Il est essentiel de réaffirmer que l’exécution d’un nœud complet sur le réseau est essentielle à son succès. Mais qu’est-ce qu’un « nœud complet » ou un « nœud de validation complète » ?


Un nœud complet est un participant au réseau qui télécharge toutes les données de la blockchain et exécute toutes les transactions créées sur le réseau. Les nœuds complets nécessitent plus de puissance de calcul et d'espace disque car ils téléchargent l'ensemble complet des données transactionnelles.


Un article de Yuan Han Li intitulé « WTF est la disponibilité des données » explique :

« Étant donné que les nœuds complets vérifient chaque transaction pour vérifier qu'ils suivent les règles de la blockchain, les blockchains ne peuvent pas traiter plus de transactions par seconde sans augmenter les exigences matérielles pour exécuter un nœud complet (meilleur matériel = nœuds complets plus puissants = les nœuds complets peuvent vérifier plus de transactions = des blocs plus gros contenant plus de transactions sont autorisés).


Le problème du maintien de la décentralisation est que vous souhaitez que certains participants au réseau exécutent des nœuds complets. Cependant, ces nœuds nécessitent une puissance de calcul énorme, trop coûteuse à acheter et à entretenir pour la plupart des utilisateurs. Et si cela se produit, cela limite considérablement le nombre de nœuds sur le réseau, nuisant ainsi à la décentralisation globale.


Le principal problème est que les mineurs et les validateurs pourraient retenir les données du réseau, empêchant ainsi d'autres personnes d'accéder à toutes les données. C’est là le nœud du problème dans le contexte des « blockchains monolithiques ».


Bien qu’il s’agisse d’un mot à la mode surutilisé dans l’écosystème, l’idée de « monolithique » dans la blockchain signifie que la couche de base – ou la blockchain Ethereum – doit agir comme couche de règlement, couche de consensus et couche de disponibilité des données. ce qui surcharge le système de données, ralentit le débit transactionnel et augmente les frais.


La solution à ce problème de blockchain « monolithique » consiste à « modulariser » ses fonctionnalités et à confier la fonction de disponibilité des données à d’autres participants du réseau. Dans ce scénario, la couche de base de la blockchain fonctionnerait alors simplement comme couche de règlement et de consensus. Toutes les exigences en matière de disponibilité des données seraient transférées aux autres acteurs du réseau.

Maintenant que nous comprenons l’intérêt de la modularisation, qu’est-ce que la disponibilité des données exactement et pourquoi est-elle cruciale pour le réseau ?

Le problème DA et les cumuls

La disponibilité des données est ce dont une blockchain a besoin pour fonctionner comme un arbitre immuable de la vérité. Sans la disponibilité des données transactionnelles, personne ne saurait si la blockchain contient des transactions frauduleuses ou invalides. En d’autres termes, personne ne pouvait prouver si les validateurs et les mineurs se comportaient de manière malveillante ou non. Un __article __d'Emmanuel Awosika le décrit :

La « disponibilité des données » est la garantie que les données derrière un bloc nouvellement proposé, nécessaires pour vérifier l'exactitude du bloc, sont disponibles pour les autres participants du réseau blockchain. »


Un aparté important : notez qu’il existe une différence entre « disponibilité des données » et « stockage des données ». Beaucoup de gens dans l’espace confondent les deux. La disponibilité des données demande si les données sont disponibles et si tout le monde peut y accéder, et le stockage des données signifie conserver les données dans un emplacement sur le long terme. En ce sens, le stockage des données implique l’idée de « persistance des données ». Nick White, COO de Celestia, a fourni un analogie puissante :


Si vous avez de la nourriture en conserve, cela représente un stockage de données. La nourriture est dans la boîte et stockée à long terme, et peut être consultée et retirée du stockage à tout moment. En ce sens, il existe un élément de « persistance des données » en ce qui concerne le « stockage des données ». À l’inverse, la disponibilité des données s’apparente davantage à un buffet. La nourriture est préparée et étalée sur une table de buffet. Il est accessible à tous. La disponibilité des données est similaire.


Les données sont mises à la disposition du réseau principalement afin que les participants au réseau puissent vérifier qu'elles sont exactes et ne contiennent pas de transactions malveillantes.

Cela soulève la question : quel est le « problème de disponibilité des données ? »


Le « problème de disponibilité des données » est le problème central que les technologues tentent de résoudre pour faire évoluer Ethereum. Le problème est que lorsqu’un nœud complet diffuse des données transactionnelles dans l’écosystème, les nœuds plus petits appelés « nœuds légers » n’ont généralement pas la configuration matérielle requise pour télécharger et exécuter toutes les transactions.

Un article de ledger.com explique le fonctionnement des nœuds lumineux :

« Les nœuds légers ne téléchargent ni ne valident les transactions et contiennent uniquement l'en-tête du bloc. En d’autres termes, les nœuds légers supposent que les transactions dans un bloc sont valides sans la vérification fournie par les nœuds complets, ce qui rend les nœuds légers moins sécurisés. Ce problème est appelé problème de disponibilité des données.


Dans ce cas, ces nœuds ont simplement besoin de savoir si les données sont disponibles et si elles représentent « l’état » actuel de la blockchain. Un « état » désigne simplement toutes les données de la blockchain stockées sur la chaîne, les soldes d'adresses et les valeurs des contrats intelligents. Sur la blockchain Ethereum, dans sa forme actuelle, les clients légers doivent s'appuyer sur ce que l'on appelle les comités de disponibilité des données (DAC) pour fournir des attestations en chaîne indiquant que les données sont effectivement disponibles.


Dans le contexte d'une solution de mise à l'échelle Ethereum, appelée rollup, ces données doivent être mises à disposition afin que les participants au réseau puissent déterminer si ces données sont conformes aux règles du réseau. En d’autres termes, ils doivent s’assurer que les données sont exactes et que les validateurs n’essaient pas de tromper les clients légers.

Rollups optimistes et ZK

Pour mieux comprendre le problème DA, il est crucial de comprendre les cumuls. Les rollups sont des blockchains de couche deux qui ont des nœuds appelés séquenceurs ; ces séquenceurs aident au regroupement, à la compression et à l'ordonnancement des transactions. Benjamin Simon décrit le relation entre les rollups et Ethereum :

« Un rollup est essentiellement une blockchain distincte, mais avec quelques modifications. Comme Ethereum, un protocole de rollup dispose d’une « machine virtuelle » qui exécute le code du contrat intelligent. La machine virtuelle du rollup fonctionne indépendamment de la propre machine virtuelle d'Ethereum (le " EVM “), mais il est géré par un contrat intelligent Ethereum. Cette connexion permet aux rollups et à Ethereum de communiquer. Un rollup exécute les transactions et traite les données, et Ethereum reçoit et stocke les résultats.


En termes simples, les rollups sont des solutions de mise à l'échelle hors chaîne. Cependant, les rollups ne sacrifient pas la sécurité comme le feraient normalement de nombreuses solutions de mise à l’échelle « hors chaîne ». Dans le cas des rollups, seuls le traitement des données et le calcul s'effectuent hors chaîne (via des séquenceurs). Les transactions sont finalement stockées sur la blockchain de couche 1, préservant ainsi la sécurité. Ces données en chaîne étaient auparavant appelées « calldata ».


D'une certaine manière, les rollups sont la façon dont la communauté « a le beurre et l'argent du beurre » ; ils parviennent à maintenir la sécurité du réseau tout en améliorant la convivialité. C'est une solution ingénieuse.


Il existe deux types de cumuls populaires : les cumuls optimistes et les cumuls ZK.

  • Les cumuls optimistes sont les types de cumuls les plus largement discutés et déployés. Comme leur nom l’indique, les rollups « optimistes » supposent qu’il y a au moins 1 xn bons acteurs dans l’écosystème. Qu'est-ce que cela signifie? Les cumuls optimistes supposent que toutes les transactions publiées sur le réseau sont valides. Pour compenser cet « optimisme », les rollups offrent au réseau une fenêtre de 7 jours pour soumettre un « anti-fraude ", indiquant que les transactions soumises par le rollup ne sont pas valides.


    Une chose clé à savoir sur les cumuls optimistes est qu'ils sont pour la plupart compatibles EVM, afin que les développeurs puissent travailler efficacement avec eux. De cette façon, ils peuvent être considérés comme la solution de mise à l’échelle la plus populaire d’Ethereum. Deux exemples de cumuls optimistes sont Optimisme et Arbitrage .

  • Les rollups ZK utilisent une cryptographie à connaissance nulle pour prouver que les transactions qu'ils compressent et regroupent sont correctes et précises. Au lieu de supposer que toutes les transactions sont exactes (comme les cumuls optimistes), les cumuls ZK génèrent une « preuve de validité » pour démontrer que les transactions sont valides immédiatement, éliminant ainsi toute période d'attente.


    Cependant, il est connu que les rollups ZK peuvent être plus difficiles à utiliser pour les développeurs, car ils ne sont pas tous compatibles EVM. Les cumuls ZK nécessitent également beaucoup de calculs, car la génération des preuves consomme de nombreuses ressources. Néanmoins, de plus en plus de rollups compatibles EVM commencent à arriver sur le marché. Le EVM de cumul de défilement la solution n’est qu’un exemple.

Solution : Échantillonnage de la disponibilité des données et Codex

J'ai mentionné plus tôt que les cumuls ont besoin d'un endroit pour vider leurs données. La plupart des rollups ont transmis des données à la chaîne principale d'Ethereum, comme mentionné, ce qui conduit au nœud du problème : le gonflement des données. En cas de ballonnement, le débit transactionnel en souffre et les frais de transaction et d'exécution de contrats intelligents augmentent.


Rappelez-vous qu'une partie de la solution ne consiste pas à s'appuyer sur des nœuds entièrement validés pour la sécurité du réseau. Si nous nous appuyons uniquement sur ces nœuds, la plupart des utilisateurs ne seraient pas en mesure d'exécuter des nœuds complets en raison d'exigences matérielles prohibitives. (Notez qu'augmenter la taille des blocs est une solution potentielle, bien que douteuse, car cette voie a un impact négatif sur la décentralisation. Néanmoins, cet argument particulier est devenu invalide car les rollups agissent comme des solutions de mise à l'échelle de couche 2 qui maintiennent la sécurité de la chaîne principale).

Cela dit, quelle est la solution pour que tout le monde n'exécute pas des nœuds complets ?

La solution consiste à permettre aux nœuds légers (ainsi qu'aux nœuds complets) de vérifier les données sans télécharger ni exécuter toutes les transactions. C’est là le cœur du problème et là où se trouve la magie de la mise à l’échelle du réseau Ethereum (entre autres blockchains).

Disponibilité des données, codage d'effacement et codex

La première étape consiste à disposer d'une couche de disponibilité des données avec un réseau robuste de clients légers pour déterminer si les données sont disponibles. Mais comment les clients légers, qui vérifient généralement uniquement les données d'en-tête et s'appuient sur des nœuds complets pour leurs informations, peuvent-ils garantir que leurs données sont valides et complètes ? La réponse peut être trouvée dans une astuce mathématique appelée « échantillonnage de disponibilité des données (DAS) ».


DAS est une méthode permettant d'échantillonner un morceau de données à partir d'un bloc de données et de l'utiliser pour déterminer de manière probabiliste le reste des données existantes et les reconstruire. De nombreuses organisations (dont le Blockchain Célestia et couche DA) exploitent le DAS via un codage par effacement et des engagements polynomiaux. Les codes Reed Solomon sont le choix populaire parmi de nombreux projets. Ces types de polynômes ressemble à ca :

Y = a[o] + a[1]x + a[2]x^2+...+a[k]x^k


Ces fonctions sont utilisées pour déterminer les données manquantes et les restaurer complètement. Cela fonctionne en créant K sur N données, où K est les données d'origine et N est les « données de parité ». Si certaines des données d'origine disparaissent, la machine du nœud exploite une fonction mathématique appelée Interpolation de Lagrange vers restaurez-le. Les mathématiques impliquées semblent obscures pour la plupart des gens, mais l’idée est simple.

Il existe quelques exemples clairs de codage d’effacement en action. La méthode a été utilisée pour sauvegarder des CD rayés. L'encodage par effacement dans les CD peut reconstruire les morceaux de musique manquants en raison de dommages superficiels. Les satellites utilisent également des codes d’effacement si des données disparaissent dans l’immensité de l’espace. Le satellite ou le CD peuvent reconstruire les données manquantes, ajoutant ainsi une protection redondante aux deux systèmes.


Le schéma spécifique utilisé par Codex (ainsi que Celestia) est appelé schéma de codage 2D Erasure. Il convient de noter que le codage à effacement 2D, bien que populaire dans l’écosystème crypto, n’est pas une nouvelle technologie. Cependant, la manière dont il est utilisé pour résoudre le problème DA est assez intéressante. Le Dr Bautista __ a expliqué __comment l'équipe du Codex utilise Erasure Coding :

« À l’instar du Codex, l’effacement codant les données originales dans une structure de données plus redondante et plus robuste est fondamental pour que le reste du protocole fonctionne, sans quoi il n’y a pas de magie. Dans Codex, cela se produit dans le client Codex du nœud qui souhaite télécharger les données, tandis que dans Ethereum, cela se produit dans le validateur Ethereum du client consensus/balise du nœud qui construit/propose le bloc.

Il y a plus à raconter sur le parcours des données dans le Codex, mais cela dépasse le cadre de l'article. Lisez celui du Dr Bautista morceau pour comprendre la dispersion des données, l’échantillonnage et les mécanismes de « réparation paresseuse » exploités par le Codex.


Le Codex a l'intention de disposer simultanément d'une fonctionnalité de stockage et de récupération des données et d'un échantillonnage de la disponibilité des données grâce à une compression de preuve. Cela permettrait de traiter des données éphémères (ou des données qui ne sont pas nécessaires à long terme), et la persistance et la durabilité des données garantiraient que d'autres projets pourraient manquer.

Conclusion : résoudre le problème

Le débat sur la manière de faire évoluer les blockchains touche à sa fin. Dans l’écosystème Bitcoin, les débats font rage sur la manière de faire évoluer une blockchain, depuis l’augmentation de la taille limite des blocs jusqu’à l’exploitation des solutions de couche 2. La réalité est qu’un mélange des deux constitue la solution la plus raisonnable. Par exemple, le Codex peut servir de couche de disponibilité des données sans nuage pour Ethereum (ainsi que pour d'autres blockchains), permettant à la taille des blocs d'augmenter car le réseau contiendrait de nombreux nœuds pour effectuer des vérifications DA sur le réseau.

La bonne nouvelle est que cela augmentera le débit du réseau tout en maintenant la sécurité de la couche de base. Et qu’en résulte-t-il ? Oui, vous l’avez compris : des frais moins élevés et des transactions plus rapides. En tant qu’utilisateurs de blockchains, c’est vraiment ce qui nous importe le plus.

Un jour, peut-être bientôt, je pourrai échanger mes jetons contre quelques centimes par dollar au lieu de 35 dollars.


by Sterlin Lujan