Qu’est-ce que le sharding? Ce concept de mise à l’échelle Ethereum expliqué

Qu'est-ce que le sharding?

Alors que le débat sur la mise à l’échelle des crypto-monnaies se poursuit, certaines solutions potentielles sont en cours de développement depuis un certain temps maintenant..

Plus précisément, dans le cas d’Ethereum, où l’accent est largement mis sur la décentralisation et la sécurité au détriment de l’évolutivité, l’application du sharding en conjonction avec la mise en œuvre du consensus Proof of Stake est considérée comme le mécanisme indispensable à travers lequel le réseau peut évoluer pour niveaux pratiques pour les applications tout en conservant sa décentralisation et sa sécurité.

Le sharding est un sujet complexe, en particulier lorsqu’il est appliqué à un réseau peer to peer décentralisé tel qu’Ethereum où l’état global du réseau est constamment mis à jour.

Alors, qu’est-ce que le sharding exactement et comment peut-il aider les réseaux blockchain à évoluer?

Contexte du partage et du calcul distribué

Le sharding est en fait beaucoup plus ancien que la technologie blockchain et a été implémenté dans une variété de systèmes, des optimisations de bases de données d’entreprise à Base de données mondiale Spanner de Google.

  • Essentiellement, le partitionnement est une méthode particulière pour partitionner horizontalement les données dans une base de données.
  • Plus généralement, la base de données est divisée en petits morceaux appelés «fragments» qui, lorsqu’ils sont regroupés, forment la base de données d’origine.
  • Dans les réseaux blockchain distribués, le réseau se compose d’une série de nœuds connectés au format peer to peer, sans autorité centrale.
  • Comme c’est le cas avec les systèmes blockchain actuels, chaque nœud stocke tous les états du réseau et traite toutes les transactions.
  • Bien que cela fournisse une sécurité de haut niveau grâce à la décentralisation, en particulier dans les systèmes de preuve de travail tels que Bitcoin et Ethereum, cela conduit à des problèmes de dimensionnement légitimes..

Partage Ethereum

En utilisant Ethereum comme exemple, un nœud complet dans le réseau Ethereum stocke l’état complet de la blockchain, y compris les soldes de compte, le stockage et le code de contrat.

Malheureusement, à mesure que la taille du réseau augmente à un rythme exponentiel, le consensus n’augmente que linéairement. Cette limitation est due à la communication nécessaire entre les nœuds nécessaire pour parvenir à un consensus.

Les nœuds du réseau n’ont pas de privilèges spéciaux et chaque nœud du réseau stocke et traite chaque transaction. En conséquence, dans un réseau de la taille d’Ethereum, des problèmes tels que des coûts de gaz élevés et des délais de confirmation de transaction plus longs deviennent des problèmes notables lorsque le réseau est sous tension. Le réseau est seulement aussi rapide que les nœuds individuels plutôt que la somme de ses parties.

Le sharding aide à atténuer ces problèmes en fournissant une solution intéressante mais complexe. Le concept implique de regrouper des sous-ensembles de nœuds en fragments qui à leur tour traitent les transactions spécifiques à ce fragment. Il permet au système de traiter de nombreuses transactions en parallèle, augmentant ainsi considérablement le débit.

Une façon plus simple de le dire serait d’imaginer la division des États-Unis en États.

Bien que chaque État (un fragment dans ce cas) fasse partie du plus grand États-Unis (réseau Ethereum), ils ont leurs propres règles, limites et sous-ensembles de populations spécifiques. Cependant, ils partagent une langue et une culture universelles dans le cadre de leur réseau plus large qui compose le pays.

Ou mieux encore, selon les propres mots de Vitalik Buterin:

 «Imaginez qu’Ethereum ait été divisé en milliers d’îles. Chaque île peut faire sa propre chose. Chacune des îles a ses propres caractéristiques uniques et toutes les personnes appartenant à cette île, c’est-à-dire les comptes, peuvent interagir les unes avec les autres ET elles peuvent librement se livrer à toutes ses fonctionnalités. S’ils veulent contacter d’autres îles, ils devront utiliser une sorte de protocole. »

Comme vous pouvez le voir, le concept de fragmentation du réseau en éléments plus efficaces permet au réseau de fonctionner comme la somme de ses parties, plutôt que d’être limité par la vitesse de chaque nœud individuel..

Comment fonctionne le sharding dans les blockchains?

Nous continuerons à utiliser Ethereum comme exemple dans ce domaine car il s’agit des tentatives de partage les plus connues et les plus ardues dans l’arène de la blockchain, alors que les développeurs d’Ethereum mettent en œuvre ce que l’on appelle le «partitionnement d’état»..

L’état actuel de la blockchain Ethereum est connu sous le nom d ‘«état global» et c’est ce que tout le monde peut voir lorsqu’il regarde la blockchain sur une instance spécifique..

La partie délicate de la mise en œuvre du partage dans Ethereum est qu’en fractionnant les nœuds en sous-ensembles plus petits, ces sous-ensembles doivent être en mesure de traiter des ensembles spécifiques de transactions tout en mettant à jour simultanément l’état du réseau, tout en garantissant sa validité..

Le partage dans Ethereum est censé être mis en œuvre dans un déploiement en deux phases, plus que probablement après la mise en œuvre de la preuve d’enjeu dans le réseau. La première phase sera la couche de données constituée du consensus sur les données contenues dans les fragments. La phase deux est la couche d’état. Tout cela est très fluide, donc une description générale de la façon dont cela peut fonctionner est ci-dessous.

Ethereum décompose le réseau en fragments spécifiques. Chaque partition se voit attribuer un groupe spécifique de transactions qui est déterminé en regroupant des comptes spécifiques (y compris les contrats intelligents) dans une partition. Chaque groupe de transactions a un en-tête et un corps qui se composent des éléments suivants.

Entête

  • L’ID de partition du groupe de transactions
  • Affectation des validateurs par échantillonnage aléatoire (vérifier les transactions dans la partition)
  • State Root (état de la racine merkle du fragment avant et après l’ajout des transactions)

Corps

  • Toutes les transactions qui appartiennent au groupe de transactions qui font partie de la partition spécifique.

Les transactions sont spécifiques à chaque partition et se produisent entre les comptes natifs de cette partition.

Lorsque les transactions sont vérifiées, l’état du réseau change et les soldes des comptes, le stockage, etc. sont mis à jour. Pour que le groupe de transactions soit vérifié comme valide, la racine de pré-état du groupe de transactions doit correspondre à la racine de partition dans l’état global. S’ils correspondent, le groupe de transactions est validé et l’état global est mis à jour via la racine d’état d’ID de partition particulière.

Au lieu de ne contenir qu’une racine d’état, chaque bloc de la blockchain Ethereum contient désormais à la fois une racine d’état et la racine du groupe de transactions. La racine du groupe de transactions est la racine de merkle de tous les groupes de transactions des fragments spécifiques pour ce bloc de transactions.

Fondamentalement, il existe une racine de merkle de tous les différents fragments qui contiennent les groupes de transactions mis à jour et vérifiés. Cette racine est stockée dans la blockchain avec la racine d’état mise à jour.

L’utilisation de concepts d’arbre merkle dans cette structure est essentielle pour garantir la validité de la blockchain. Comprendre le fonctionnement d’un arbre merkle et en particulier d’une racine merkle peut vous aider à comprendre ces concepts beaucoup plus facilement.

Qu'est-ce qu'un arbre Merkle

Lire: Qu’est-ce qu’un arbre Merkle ?

Le consensus au sein d’un fragment est atteint grâce à un consensus de preuve d’enjeu de nœuds sélectionnés au hasard qui sont appliqués à un fragment pour un tour de consensus spécifique.

Cela fournit non seulement la finalité du consensus, ce qui est nécessaire dans les fragments, mais fournit également une défense particulière contre une attaque à laquelle une blockchain de preuve de travail serait susceptible dans ce cas..

La puissance de hachage requise pour envahir un fragment spécifique dans un réseau partagé PoW est considérablement réduite et la capacité pour un acteur malveillant de prendre le contrôle d’un fragment grâce à la puissance de calcul est possible..

Grâce à cela, le mauvais acteur pourrait attaquer d’autres fragments via le protocole de communication qui est l’une des caractéristiques les plus complexes et les plus importantes de l’architecture de partitionnement. La sélection par échantillonnage aléatoire des validateurs dans un fragment parvient à étouffer ce type d’attaque car un mauvais acteur ne saura pas dans quel fragment il est placé avant d’y être réellement placé..

En outre, un échantillonnage aléatoire sera utilisé pour sélectionner les validateurs qui valident réellement à partir de cet ensemble de validation aléatoire..

Le protocole de communication est essentiel au bon fonctionnement de l’architecture de partitionnement dans le système. Vous pouvez considérer le protocole de communication comme le langage universel qui est cohérent entre les États dans le cadre des États-Unis plus larges..

Cependant, la conception de ce protocole est très difficile et doit être effectuée afin qu’il ne soit utilisé que lorsque cela est nécessaire. Cela devient nécessaire lorsqu’un nœud spécifique nécessite des informations qui ne sont pas stockées dans son propre fragment et doit trouver le fragment avec les informations requises. Cette communication est connue sous le nom de communication cross-shard.

La communication inter-fragments est réalisée en appliquant le concept de reçus de transaction. Le reçu pour une transaction est stocké dans une racine merkle qui peut être facilement vérifiée mais qui ne fait pas partie de la racine d’état.

Le fragment recevant une transaction d’un autre fragment vérifie la racine du merkle pour s’assurer que le reçu n’a pas été dépensé. Essentiellement, les reçus sont stockés dans une mémoire partagée qui peut être vérifiée par d’autres fragments, mais pas modifiés. Par conséquent, grâce à un stockage distribué des reçus, les fragments peuvent communiquer entre eux.

Le partage pour aller de l’avant

Le partage dans Ethereum devrait être mis en œuvre après la mise à niveau de Casper PoS. Récemment, il ont eu quelques développements concernant Ethereum 2.0 qui impliquent la mise en œuvre de Casper et de sharding.

Le sharding a également été implémenté dans quelques autres plates-formes, notamment Zilliqa. Cependant, Zilliqa n’implémente pas de partitionnement d’état pour le moment et se concentre plutôt sur la fourniture d’une blockchain à haut débit en utilisant la transaction et le partitionnement informatique..

ZilliqaLisez notre guide de Zilliqa

Conclusion

Le sharding sert à offrir des solutions prometteuses à l’éléphant dans la salle des plateformes blockchain en ce moment, évolutivité.

Alors que le réseau Lightning de Bitcoin est en phase de test et a montré des progrès très prometteurs jusqu’à présent, la solution d’Ethereum présente des défis uniques car elle est assimilée à un ordinateur mondial qui est Turing complet.

Le partage ne fonctionnera directement qu’au niveau du protocole, donc pour l’utilisateur final ou le développeur dapp, il peut ne pas être nécessairement pertinent d’en savoir plus.

Quoi qu’il en soit, la tentative d’Ethereum de partitionnement de l’état pour un vaste réseau décentralisé est une entreprise impressionnante et sera un énorme exploit si elle est mise en œuvre avec succès..

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
map