Qu'est-ce que le Sharding ?

Débutant11/21/2022, 8:29:25 AM
Le sharding est une technique de partitionnement des bases de données qui aide les blockchains à gagner en évolutivité, en permettant aux transactions d'être traitées en parallèle par plusieurs chaînes de sharding afin de réduire la congestion du réseau et d'augmenter les transactions par seconde (TPS).

Introduction

Dans une blockchain classique, les transactions doivent être confirmées par chaque nœud du réseau, tandis qu'un consensus doit être atteint entre les nœuds avant que les transactions ne soient regroupées pour générer un nouveau bloc. La sécurité est entièrement garantie car chaque nœud enregistre l'historique complet du grand livre, ce qui rend difficile pour les pirates de trafiquer subrepticement les données sans être détectés.
Sécurité et évolutivité sont incompatibles
. Cependant, une sécurité élevée a un prix. La fréquence des nœuds qui communiquent et échangent des informations occupe la bande passante du réseau et ralentit le traitement des transactions. Afin d'éviter que la défaillance d'un seul nœud n'arrête l'ensemble du réseau, il faut davantage de nœuds pour renforcer la décentralisation et disperser les risques. Ces différents compromis sont également connus sous le nom de "triangle impossible", ce qui signifie que l'évolutivité, la décentralisation et la sécurité du réseau blockchain ne peuvent être obtenues en même temps.


Source : Blog de Vitalik Buterin "Why sharding is great : demystifying the technical properties" (en anglais)

Le sharding permet une mise à l'échelle efficace tout en assurant la sécurité et la décentralisation
Le sharding est une solution qui augmente l'évolutivité d'un réseau blockchain sans renoncer à la sécurité et à la décentralisation. Le sharding divise une seule blockchain en plusieurs blockchains plus petites, chacune d'entre elles gérant ses propres enregistrements séparément, et l'échange de données n'est effectué que lorsque cela est nécessaire. Par conséquent, les nœuds des différentes chaînes de sharding peuvent vérifier uniquement les transactions appartenant à leurs propres chaînes de manière synchrone, au lieu des données de la blockchain entière.
Tant que le nombre de nœuds sur chaque chaîne de sharding est suffisamment important, la sécurité et la décentralisation seront confirmées. L'application du sharding peut augmenter le débit des blockchains pour répondre à la demande croissante des utilisateurs. L'ETH 2.0 améliorera également son évolutivité grâce au sharding.

Qu'est-ce que le sharding ?

Le sharding est une technique d'optimisation visant à améliorer les performances d'accès aux bases de données en découpant la base de données d'origine en plusieurs shards en fonction des conditions de la demande, ce qui permet de répartir la charge et le trafic des utilisateurs pour fournir un service plus rapide. Étant donné qu'une blockchain est essentiellement un grand livre de comptes décentralisé, il est possible d'améliorer l'évolutivité grâce au sharding.
Par exemple, il existe un grand nombre de produits avec des prix différents sur les sites d'achat, les consommateurs ont des besoins variés : certains préfèrent les produits à prix réduits et bon marché et d'autres les produits chers et haut de gamme. Pour traiter une commande importante comme celle-ci, un triage simple peut être effectué en utilisant des fourchettes de prix pour accélérer le traitement des vérificateurs.

Source : DigitalOcean
Le sharding permet de trier les données et de les traiter en fonction des différents besoins
Un vérificateur (nœud) doit confirmer toutes les informations de la commande sans diviser les données de la commande (sharding), ce qui prend beaucoup de temps pour effectuer des tâches répétitives. En revanche, la division des données de commande en plusieurs tessons permet à différents vérificateurs de traiter séparément les commandes à bas prix et celles à prix élevé.
Étant donné que chaque type de commande est une petite partie de la commande complète, et que les vérificateurs en charge de différents articles tarifés peuvent travailler simultanément sans s'affecter mutuellement, le sharding permet des opérations parallèles ; chaque vérificateur n'a besoin de vérifier qu'une partie de la commande, le sharding réduit donc la charge de travail des nœuds et accélère la vérification.
Une base de données sharded est comme un puzzle, et chaque pièce du puzzle représente un shard. Une blockchain nonsharded doit redessiner l'ensemble du puzzle à chaque fois qu'un nouveau bloc est généré (réplication d'état), puis modifier une petite partie du puzzle (mise à jour d'état). Une blockchain sharded n'a besoin que de trouver la pièce spécifique nécessitant une modification (shard) et de la remplacer par une nouvelle lors de l'ajout d'un nouvel enregistrement de transaction.

Pourquoi le Sharding est-il nécessaire ?

Les applications sur chaîne sont plus diversifiées et la demande croît de manière exponentielle
. Dès que la taille des utilisateurs augmente de manière significative, quel que soit le type de système, celui-ci doit inévitablement évoluer pour s'adapter à l'augmentation du trafic. Par exemple, si un jeu en ligne est si populaire que le nombre de joueurs passe de 100 000 à un million, voire dix millions par jour, il est nécessaire de mettre en place un nouveau serveur pour détourner le trafic et éviter les décalages. Une situation similaire peut être observée dans la vie réelle. Pendant les vacances, les touristes qui se rendent sur les lieux d'intérêt souffrent toujours de terribles embouteillages. Ce qui ne prendrait normalement que deux heures pour atteindre une destination prend maintenant beaucoup plus de temps en raison de l'augmentation du trafic. Les routines alternatives sont la solution commune pour soulager efficacement la congestion du trafic.
La mise à l'échelle rencontre des goulots d'étranglement, à la recherche d'alternatives
Blockchain a également rencontré le goulot d'étranglement de la mise à l'échelle au cours de son développement. Dans une blockchain P2P avec seulement 10 nœuds, tous les échanges de données peuvent être terminés après 109 fois de communication inter-nœuds ; lorsque le nombre de nœuds atteint 100, cela signifie 10099 fois de communication inter-nœuds s'il n'y a pas d'optimisation de l'algorithme. En général, un réseau blockchain P2P avec N nœuds, où chaque nœud échange des données avec d'autres N-1 nœuds, il est concevable que la quantité de temps et de calcul passée sur chaque transaction croisse de manière exponentielle suite à la mise à l'échelle des réseaux blockchain.

Bien qu'étant le courant dominant, le Bitcoin et l'Ethereum appliquent toujours un mécanisme dépassé
Le Bitcoin, actuellement la plus grande crypto-monnaie en termes de capitalisation boursière, et l'Ethereum pré-modifié sont tous deux à faible vitesse, le Bitcoin traitant environ 7 transactions par seconde (TPS) et l'Ethereum un peu plus avec 15 TPS. Cela a longtemps été insuffisant pour répondre aux besoins d'un grand nombre d'utilisateurs, et est éclipsé par le système centralisé tel que celui de la principale société de cartes de crédit VISA, qui traite jusqu'à 24 000 transactions par seconde. Outre la congestion du réseau, la lenteur de la vitesse augmente également les coûts, et les utilisateurs doivent payer des frais plus élevés pour donner la priorité à leurs transactions, ce qui rend l'expérience de l'utilisateur encore pire.


Source : Etherscan

Il n'est pas nécessaire que chaque nœud possède l'historique complet des transactions dans une blockchain sharded, car un nœud n'a besoin de conserver que les informations liées au shard auquel il appartient. Le coût de la mise en place des nœuds et le seuil de participation sont abaissés par le sharding. Les réseaux de blockchain peuvent devenir plus décentralisés à l'aide du sharding. Les spécifications des équipements matériels requis pour faire fonctionner les nœuds deviendront de plus en plus élevées sans le sharding. Au final, seuls les participants bénéficiant de conditions économiques favorables survivront. Le sharding permet aux ordinateurs ordinaires, aux ordinateurs portables et même aux smartphones de devenir des nœuds, ce qui entraînera l'adoption massive des blockchains et des dAPP.

Comment fonctionne le Sharding dans ETH 2.0 ?

Le mécanisme de consensus d'Ethereum sera converti de Proof of Work (PoW) en Proof of Stake (PoS) dans ETH 2.0 et le mainnet Ethereum original sera fusionné dans la chaîne Beacon. Par conséquent, les nœuds d'Ethereum n'ont plus besoin d'une puissance de calcul massive pour générer de nouveaux blocs. Au lieu de cela, ils placent leurs ETH dans des contrats intelligents pour devenir des validateurs afin d'obtenir le droit d'obtenir des frais de transaction lors de la soumission de nouveaux blocs.
Dans ETH 2.0, 64 shards seront créés pour améliorer l'évolutivité, l'un d'entre eux étant appelé la chaîne Beacon. Il joue un rôle essentiel dans les mises à niveau de sharding Ethereum et est responsable de la coordination et du partage des informations entre les différents shards. Tous les nœuds ETH 2.0 placeront également des ETH sur les chaînes de shards et traiteront les transactions sur les différents shards selon les instructions, et les blocs sur les chaînes de shards ne seront valides qu'avec l'approbation de la chaîne Beacon.

Souce : Hsiao-wei Wang
Le sharding valide les transactions en attente par triage
Lorsque ETH 2.0 adoptera le sharding, l'algorithme d'échantillonnage aléatoire assignera un nombre aléatoire de nœuds à chaque shard pour vérifier les transactions et déterminer l'ordre et la validité des transactions sur la chaîne de shard par vote, puis les informations des blocs de shard nouvellement générés seront ajoutées sur la chaîne Beacon. Un nouveau bloc doit être approuvé par plus de deux tiers des nœuds de la chaîne de shard.
Comme le montre la figure ci-dessous, chaque nœud se voit attribuer un numéro (1~100) dans une séquence d'ensembles de nœuds de validation ; l'algorithme d'échantillonnage aléatoire brisera l'ordre d'attribution des nœuds, ce qui donnera lieu à un nouvel ensemble de nœuds sans ordre fixe ; les 1~10 premiers nœuds nouvellement générés peuvent être désignés comme le premier comité pour traiter les transactions de la première chaîne de tessons, tandis que les 11~20e sont le deuxième comité pour traiter la deuxième chaîne de tessons, et ainsi de suite.


Source : Blog de Vitalik Buterin "Why sharding is great : demystifying the technical properties"
Le nœud de validation n'est pas affecté de manière fixe au traitement des transactions sur une certaine chaîne de shards, car l'algorithme d'échantillonnage aléatoire perturbera l'ordre des nœuds pendant un certain temps. Par conséquent, les membres du comité responsables de chaque chaîne de shard ne sont pas fixes, ce qui évite le risque de centralisation causé par un nœud spécifique vérifiant une chaîne de shard pendant une longue période, et augmente la difficulté des attaques.
Étant donné que le sharding augmentera considérablement le débit de l'ETH 2.0, il devient impossible pour tous les nœuds de mettre à jour de manière synchrone les données de transaction complètes sur les différentes chaînes de shard, l'en-tête de collation, qui est similaire à l'en-tête de bloc dans le PoW , devient le moyen de partager l'information. Comme son nom l'indique, un en-tête de collation contient des métadonnées sur les informations contenues dans la collation, telles que :

  1. Le shard unique auquel appartient la collation
  2. Le hachage racine de la collation parent
  3. La racine Merkle de toutes les transactions dans une collation
  4. La racine pré-état et la racine post-état
  5. Signatures des notaires


Source : Hackernoon
L'en-tête de collationnement fournira au nœud des informations suffisantes et ne téléchargera l'enregistrement complet de la transaction selon l'index qu'en cas de besoin.

Le pour et le contre du Sharding

Une alternative qui détourne efficacement la demande d'utilisation et améliore considérablement l'évolutivité
Imaginez qu'un million de voitures soient obligées de rouler sur la même route pour se déplacer de la ville A à la ville B. Le trajet est forcément lent et c'est le cas pour les blockchains conventionnelles car tous les nœuds on-chain doivent vérifier chaque transaction. Le sharding découpe les données on-chain en morceaux de sorte que chaque nœud ne doive traiter qu'une partie de la transaction. Lorsqu'une blockchain ajoute plusieurs autoroutes pour disperser le trafic, les utilisateurs peuvent légitimement effectuer des transactions plus rapidement.

Source : Genesis Block

Réduire la congestion du réseau et abaisser les coûts
Dans l'Ethereum pré-mise à niveau, les nœuds de mineurs emballent les transactions en fonction du montant que les utilisateurs sont prêts à payer, les frais les plus élevés étant traités plus rapidement et les frais les plus faibles plus lentement, ce qui entraîne une enchère pathologique des frais où les utilisateurs paient occasionnellement plus de 50 $ pour une seule transaction. Le sharding permet à la blockchain de fonctionner de manière plus fluide et réduit la nécessité d'enchérir sur les frais, et les utilisateurs peuvent se tourner vers un autre shard en cas de congestion sur un shard.

Des nœuds plus faciles à gérer, renforçant la décentralisation et la sécurité
Comme il n'est pas nécessaire d'accéder aux données complètes de l'ensemble de la blockchain, chaque nœud ne devant traiter que les informations d'un seul shard à la fois, le matériel nécessaire à la mise en place d'un nœud devient plus faible. Les utilisateurs peuvent utiliser des appareils moins chers comme nœuds pour participer à la vérification afin de gagner des revenus. La baisse du seuil profite à la décentralisation et à la popularisation des réseaux blockchain. La vision de l'ETH 2.0 est de permettre aux particuliers d'exécuter des applications Ethereum à partir de leurs smartphones. Un avantage secondaire de la décentralisation est le renforcement de la sécurité du réseau. Plus il y a de nœuds et plus ils sont dispersés, plus il est difficile d'attaquer la blockchain.

Si le sharding présente une liste d'avantages, il introduit également une série de nouveaux problèmes :

La possibilité de l'attaque à 1 %
La blockchain est vulnérable aux attaques à 51 %, ce qui signifie qu'un attaquant est capable d'altérer arbitrairement les données des transactions ou même de contrôler l'ensemble du réseau blockchain lorsqu'il contrôle 51 % de la puissance de calcul des nœuds. Dans les plus grands réseaux de blockchain tels que Bitcoin et Ethereum pré-mise à niveau, le coût d'une attaque à 51 % est trop élevé, ce qui rend sa mise en œuvre infaisable.
Toutefois, avec l'adoption du sharding, le nombre de nœuds traitant chaque shard est considérablement réduit et il devient beaucoup plus facile pour un attaquant malveillant de se compromettre, à condition qu'il attaque l'un des shards et qu'il réussisse à falsifier les transactions plutôt que d'attaquer l'ensemble du réseau. Pour être plus précis, pour un réseau blockchain contenant 1 000 nœuds avec la même puissance de calcul, un pirate doit contrôler plus de 500 nœuds pour attaquer l'ensemble du réseau. Mais lorsque ces 1 000 nœuds sont répartis sur 100 shards, il suffit à un pirate de contrôler plus de 5 nœuds dans l'un des shards pour altérer les données.

Source : Genesis Block

Le risque de sécurité des contrats intelligents augmente
L'adoption du sharding nécessite la réécriture de la structure des données et de la logique du code sous-jacent du grand livre du réseau blockchain, et la complication supplémentaire rendra plus difficile la mise à jour et la maintenance du réseau, ce qui entraînera des vulnérabilités de sécurité et des risques de contrats intelligents tandis que des erreurs involontaires peuvent également se produire pendant l'exécution.

Collusion entre les membres du comité
Bien que le sharding adopte un algorithme d'échantillonnage aléatoire pour éviter que des noeuds identiques soient affectés à une chaîne de shard fixe, il est toujours possible que des combinaisons doubles de noeuds identiques puissent co-valider des transactions après une période de temps assez longue, et les membres du comité vérifiant la chaîne de shard sont également possibles de se collusionner entre eux et de soumettre des transactions malveillantes à la chaîne.
Déséquilibre de la charge
La condition préalable à l'amélioration des performances du réseau par le sharding est que le "sharding" apporte avec succès la "déviation". Lorsqu'une blockchain est optimisée avec 100 chaînes de shard, mais que tous les utilisateurs utilisent toujours une chaîne de shard particulière, alors le sharding échoue et l'évolutivité n'a pas été beaucoup améliorée. C'est également un problème potentiel pour l'ETH 2.0, car la possibilité d'effectuer des opérations de smart contract pour chaque chaîne de shards n'est pas prévue dans la planification initiale.
Des explorateurs de blockchain plus compliqués
L'amélioration de l'évolutivité apportée par le sharding est obtenue en ajoutant plus d'algorithmes et de données à l'ensemble du réseau, une plus grande puissance de traitement est nécessaire aux explorateurs de blockchain pour récupérer efficacement les informations sur la blockchain.

Autres blockchains adoptant le Sharding

Elrond :

Elrond est une blockchain publique décentralisée qui vise à améliorer l'évolutivité, la vitesse et la sécurité en développant trois technologies clés, notamment l'Adaptive State Sharding avec la technologie de mise à l'échelle de la blockchain, la Secure Proof of Stake (SPoS) qui détermine la sélection des validateurs pour accélérer la vérification, et la Elrond Virtual Machine, qui prend en charge plusieurs langages de programmation et est compatible avec Ethereum VM.

L'Adaptive State Sharding unique d'Elrond combine trois formes de sharding :

  1. Le Network Sharding représente le processus de regroupement des nœuds en shards.
  2. Le partage des transactions (Transaction Sharding) fait passer la complexité au niveau supérieur et traite de la répartition des transactions entre différents shards, mais tous les nœuds conservent l'intégralité de la blockchain dans leur état.
  3. Le partage de l'état représente la partie la plus sophistiquée et est décrit comme un mécanisme qui permet à différents shards de ne traiter qu'une partie de l'état sans répliquer les données entre les nœuds de différents shards.

Actuellement, Elrond peut atteindre 15 000 TPS tout en maintenant des frais aussi bas que 0,001 $, ce qui constitue un avantage raisonnable par rapport à Ethereum.

Près de :

Near est une chaîne publique de blocs basée sur le sharding à état complet, des applications de développement simplifiées et un mécanisme de preuve d'enjeu. Elle se fixe pour objectif d'accroître l'évolutivité du développement d'applications décentralisées et d'ouvrir la porte de la technologie blockchain à tous. Son mécanisme de consensus Doomslug, qui adopte l'algorithme Nightshade, est capable de faire évoluer les TPS jusqu'à 100 000. L'architecture technique de Near est différente de celle d'autres chaînes publiques shardées telles que la chaîne Beacon, qui est composée d'une chaîne et de plusieurs chaînes shard, elle est divisée en blocs individuels, et le sharding est effectué entre ces blocs. Un bloc contient toutes les transactions de tous les shards tandis que l'état du shard est divisé, et les validateurs sont assignés de manière aléatoire pour vérifier l'état correspondant du shard de la transaction, améliorant ainsi la sécurité.

Zilliqa :

Zilliqa est un oiseau assez précoce dans les blockchains. Elle a été lancée pour résoudre la faible évolutivité de la blockchain à l'époque en utilisant le network sharding et le transaction sharding, ainsi que le PoW et l'algorithme de consensus tolérant aux fautes byzantines (PBFT) à la complexité simplifiée pour accélérer le consensus au sein des shards. Il peut encore fonctionner rapidement avec plus de 600 nœuds, et la mise à l'échelle constante amène Zilliqa à des TPS plus élevés de 2400 à 3600 TPS.

Harmonie :

Harmony est une chaîne publique basée sur le sharding d'états, qui est structurée par une chaîne Beacon et de multiples chaînes de sharding et accompagnée de l'algorithme de consensus tolérant aux fautes byzantines (PBFT) pour atteindre un consensus profondément optimisé tout en accélérant avec les signatures BLS pour agréger plusieurs signatures en une seule. Dans une chaîne publique sharded, 1% de la puissance de calcul peut être utilisée pour des attaques de double dépense, regardez cela, Harmony adopte EPoS (Effective Proof-of-Stake)et Random Sharding pour disperser les jetons mis en jeu à grande échelle et les allouer aléatoirement à plusieurs shards pour réduire le risque d'être attaqué afin de renforcer la sécurité des shards. Il adopte également la communication inter-éclats de Kademlia pour contrôler les dépenses du réseau tout en tirant parti du code d'effacement, qui permet la récupération des données, pour optimiser le processus de diffusion des blocs afin de réaliser une mise à l'échelle horizontale efficace du sharding.

Conclusion

Avec l'explosion de l'utilisation des crypto-monnaies et la prolifération des dAPP, certaines blockchains traditionnelles sont dépassées et incapables de répondre à la demande croissante du marché. Comment améliorer l'évolutivité sans renoncer à la décentralisation et à la sécurité est devenu une question majeure pour l'industrie actuelle de la blockchain.

Le sharding détourne efficacement les besoins on-chain et améliore l'efficacité de l'accès.

Le sharding est une technologie d'optimisation qui améliore l'efficacité de l'accès aux bases de données en divisant les données de transaction sur la chaîne et en les traitant par différents nœuds de manière synchrone. C'est ainsi que l'on obtient une déviation du trafic et une augmentation de la vitesse. En tant que solution de mise à l'échelle de la couche 1 très attendue, lorsque le sharding est réalisé avec succès après avoir surmonté les difficultés techniques de haut niveau, ses avantages potentiels sont assez énormes. Le sharding a été adopté par certaines blockchains et dans la prochaine version ETH 2.0, il sera également adopté dans l'espoir d'améliorer considérablement les performances du réseau.

Le sharding est extrêmement difficile à réaliser, avec de nombreux défis non résolus, mais le triangle impossible sera finalement surmonté.

Toutefois, le sharding n'est pas une solution parfaite. En plus de la complexité accrue, elle peut exposer le réseau à davantage de risques. De nombreux développeurs poursuivent leurs recherches sur la manière de coordonner les différents shards pour qu'ils fonctionnent efficacement, espérant que le sharding sera la clé pour surmonter le "triangle impossible" de la sécurité, de la décentralisation et de l'évolutivité, afin que toutes les applications blockchain et cryptocurrencies existantes puissent être davantage popularisées.

Auteur : Piccolo Traducteur:Yulei
Réviseur(s) : Hugo , Edward
Avertissement :

  • Cet article ne représente que l'opinion des observateurs et ne constitue pas une suggestion d'investissement.
    *Gate.io se réserve tous les droits sur cet article. La rediffusion de l'article sera autorisée à condition que Gate.io soit référencé. Dans tous les autres cas, une action en justice sera engagée en raison de la violation des droits d'auteur.
Auteur : Piccolo
Traduction effectuée par : Yuler
Examinateur(s): Hugo, Edward, Cecilia, Ashley
* Les informations ne sont pas destinées à être et ne constituent pas des conseils financiers ou toute autre recommandation de toute sorte offerte ou approuvée par Gate.io.
* Cet article ne peut être reproduit, transmis ou copié sans faire référence à Gate.io. Toute contravention constitue une violation de la loi sur le droit d'auteur et peut faire l'objet d'une action en justice.

Qu'est-ce que le Sharding ?

Débutant11/21/2022, 8:29:25 AM
Le sharding est une technique de partitionnement des bases de données qui aide les blockchains à gagner en évolutivité, en permettant aux transactions d'être traitées en parallèle par plusieurs chaînes de sharding afin de réduire la congestion du réseau et d'augmenter les transactions par seconde (TPS).

Introduction

Dans une blockchain classique, les transactions doivent être confirmées par chaque nœud du réseau, tandis qu'un consensus doit être atteint entre les nœuds avant que les transactions ne soient regroupées pour générer un nouveau bloc. La sécurité est entièrement garantie car chaque nœud enregistre l'historique complet du grand livre, ce qui rend difficile pour les pirates de trafiquer subrepticement les données sans être détectés.
Sécurité et évolutivité sont incompatibles
. Cependant, une sécurité élevée a un prix. La fréquence des nœuds qui communiquent et échangent des informations occupe la bande passante du réseau et ralentit le traitement des transactions. Afin d'éviter que la défaillance d'un seul nœud n'arrête l'ensemble du réseau, il faut davantage de nœuds pour renforcer la décentralisation et disperser les risques. Ces différents compromis sont également connus sous le nom de "triangle impossible", ce qui signifie que l'évolutivité, la décentralisation et la sécurité du réseau blockchain ne peuvent être obtenues en même temps.


Source : Blog de Vitalik Buterin "Why sharding is great : demystifying the technical properties" (en anglais)

Le sharding permet une mise à l'échelle efficace tout en assurant la sécurité et la décentralisation
Le sharding est une solution qui augmente l'évolutivité d'un réseau blockchain sans renoncer à la sécurité et à la décentralisation. Le sharding divise une seule blockchain en plusieurs blockchains plus petites, chacune d'entre elles gérant ses propres enregistrements séparément, et l'échange de données n'est effectué que lorsque cela est nécessaire. Par conséquent, les nœuds des différentes chaînes de sharding peuvent vérifier uniquement les transactions appartenant à leurs propres chaînes de manière synchrone, au lieu des données de la blockchain entière.
Tant que le nombre de nœuds sur chaque chaîne de sharding est suffisamment important, la sécurité et la décentralisation seront confirmées. L'application du sharding peut augmenter le débit des blockchains pour répondre à la demande croissante des utilisateurs. L'ETH 2.0 améliorera également son évolutivité grâce au sharding.

Qu'est-ce que le sharding ?

Le sharding est une technique d'optimisation visant à améliorer les performances d'accès aux bases de données en découpant la base de données d'origine en plusieurs shards en fonction des conditions de la demande, ce qui permet de répartir la charge et le trafic des utilisateurs pour fournir un service plus rapide. Étant donné qu'une blockchain est essentiellement un grand livre de comptes décentralisé, il est possible d'améliorer l'évolutivité grâce au sharding.
Par exemple, il existe un grand nombre de produits avec des prix différents sur les sites d'achat, les consommateurs ont des besoins variés : certains préfèrent les produits à prix réduits et bon marché et d'autres les produits chers et haut de gamme. Pour traiter une commande importante comme celle-ci, un triage simple peut être effectué en utilisant des fourchettes de prix pour accélérer le traitement des vérificateurs.

Source : DigitalOcean
Le sharding permet de trier les données et de les traiter en fonction des différents besoins
Un vérificateur (nœud) doit confirmer toutes les informations de la commande sans diviser les données de la commande (sharding), ce qui prend beaucoup de temps pour effectuer des tâches répétitives. En revanche, la division des données de commande en plusieurs tessons permet à différents vérificateurs de traiter séparément les commandes à bas prix et celles à prix élevé.
Étant donné que chaque type de commande est une petite partie de la commande complète, et que les vérificateurs en charge de différents articles tarifés peuvent travailler simultanément sans s'affecter mutuellement, le sharding permet des opérations parallèles ; chaque vérificateur n'a besoin de vérifier qu'une partie de la commande, le sharding réduit donc la charge de travail des nœuds et accélère la vérification.
Une base de données sharded est comme un puzzle, et chaque pièce du puzzle représente un shard. Une blockchain nonsharded doit redessiner l'ensemble du puzzle à chaque fois qu'un nouveau bloc est généré (réplication d'état), puis modifier une petite partie du puzzle (mise à jour d'état). Une blockchain sharded n'a besoin que de trouver la pièce spécifique nécessitant une modification (shard) et de la remplacer par une nouvelle lors de l'ajout d'un nouvel enregistrement de transaction.

Pourquoi le Sharding est-il nécessaire ?

Les applications sur chaîne sont plus diversifiées et la demande croît de manière exponentielle
. Dès que la taille des utilisateurs augmente de manière significative, quel que soit le type de système, celui-ci doit inévitablement évoluer pour s'adapter à l'augmentation du trafic. Par exemple, si un jeu en ligne est si populaire que le nombre de joueurs passe de 100 000 à un million, voire dix millions par jour, il est nécessaire de mettre en place un nouveau serveur pour détourner le trafic et éviter les décalages. Une situation similaire peut être observée dans la vie réelle. Pendant les vacances, les touristes qui se rendent sur les lieux d'intérêt souffrent toujours de terribles embouteillages. Ce qui ne prendrait normalement que deux heures pour atteindre une destination prend maintenant beaucoup plus de temps en raison de l'augmentation du trafic. Les routines alternatives sont la solution commune pour soulager efficacement la congestion du trafic.
La mise à l'échelle rencontre des goulots d'étranglement, à la recherche d'alternatives
Blockchain a également rencontré le goulot d'étranglement de la mise à l'échelle au cours de son développement. Dans une blockchain P2P avec seulement 10 nœuds, tous les échanges de données peuvent être terminés après 109 fois de communication inter-nœuds ; lorsque le nombre de nœuds atteint 100, cela signifie 10099 fois de communication inter-nœuds s'il n'y a pas d'optimisation de l'algorithme. En général, un réseau blockchain P2P avec N nœuds, où chaque nœud échange des données avec d'autres N-1 nœuds, il est concevable que la quantité de temps et de calcul passée sur chaque transaction croisse de manière exponentielle suite à la mise à l'échelle des réseaux blockchain.

Bien qu'étant le courant dominant, le Bitcoin et l'Ethereum appliquent toujours un mécanisme dépassé
Le Bitcoin, actuellement la plus grande crypto-monnaie en termes de capitalisation boursière, et l'Ethereum pré-modifié sont tous deux à faible vitesse, le Bitcoin traitant environ 7 transactions par seconde (TPS) et l'Ethereum un peu plus avec 15 TPS. Cela a longtemps été insuffisant pour répondre aux besoins d'un grand nombre d'utilisateurs, et est éclipsé par le système centralisé tel que celui de la principale société de cartes de crédit VISA, qui traite jusqu'à 24 000 transactions par seconde. Outre la congestion du réseau, la lenteur de la vitesse augmente également les coûts, et les utilisateurs doivent payer des frais plus élevés pour donner la priorité à leurs transactions, ce qui rend l'expérience de l'utilisateur encore pire.


Source : Etherscan

Il n'est pas nécessaire que chaque nœud possède l'historique complet des transactions dans une blockchain sharded, car un nœud n'a besoin de conserver que les informations liées au shard auquel il appartient. Le coût de la mise en place des nœuds et le seuil de participation sont abaissés par le sharding. Les réseaux de blockchain peuvent devenir plus décentralisés à l'aide du sharding. Les spécifications des équipements matériels requis pour faire fonctionner les nœuds deviendront de plus en plus élevées sans le sharding. Au final, seuls les participants bénéficiant de conditions économiques favorables survivront. Le sharding permet aux ordinateurs ordinaires, aux ordinateurs portables et même aux smartphones de devenir des nœuds, ce qui entraînera l'adoption massive des blockchains et des dAPP.

Comment fonctionne le Sharding dans ETH 2.0 ?

Le mécanisme de consensus d'Ethereum sera converti de Proof of Work (PoW) en Proof of Stake (PoS) dans ETH 2.0 et le mainnet Ethereum original sera fusionné dans la chaîne Beacon. Par conséquent, les nœuds d'Ethereum n'ont plus besoin d'une puissance de calcul massive pour générer de nouveaux blocs. Au lieu de cela, ils placent leurs ETH dans des contrats intelligents pour devenir des validateurs afin d'obtenir le droit d'obtenir des frais de transaction lors de la soumission de nouveaux blocs.
Dans ETH 2.0, 64 shards seront créés pour améliorer l'évolutivité, l'un d'entre eux étant appelé la chaîne Beacon. Il joue un rôle essentiel dans les mises à niveau de sharding Ethereum et est responsable de la coordination et du partage des informations entre les différents shards. Tous les nœuds ETH 2.0 placeront également des ETH sur les chaînes de shards et traiteront les transactions sur les différents shards selon les instructions, et les blocs sur les chaînes de shards ne seront valides qu'avec l'approbation de la chaîne Beacon.

Souce : Hsiao-wei Wang
Le sharding valide les transactions en attente par triage
Lorsque ETH 2.0 adoptera le sharding, l'algorithme d'échantillonnage aléatoire assignera un nombre aléatoire de nœuds à chaque shard pour vérifier les transactions et déterminer l'ordre et la validité des transactions sur la chaîne de shard par vote, puis les informations des blocs de shard nouvellement générés seront ajoutées sur la chaîne Beacon. Un nouveau bloc doit être approuvé par plus de deux tiers des nœuds de la chaîne de shard.
Comme le montre la figure ci-dessous, chaque nœud se voit attribuer un numéro (1~100) dans une séquence d'ensembles de nœuds de validation ; l'algorithme d'échantillonnage aléatoire brisera l'ordre d'attribution des nœuds, ce qui donnera lieu à un nouvel ensemble de nœuds sans ordre fixe ; les 1~10 premiers nœuds nouvellement générés peuvent être désignés comme le premier comité pour traiter les transactions de la première chaîne de tessons, tandis que les 11~20e sont le deuxième comité pour traiter la deuxième chaîne de tessons, et ainsi de suite.


Source : Blog de Vitalik Buterin "Why sharding is great : demystifying the technical properties"
Le nœud de validation n'est pas affecté de manière fixe au traitement des transactions sur une certaine chaîne de shards, car l'algorithme d'échantillonnage aléatoire perturbera l'ordre des nœuds pendant un certain temps. Par conséquent, les membres du comité responsables de chaque chaîne de shard ne sont pas fixes, ce qui évite le risque de centralisation causé par un nœud spécifique vérifiant une chaîne de shard pendant une longue période, et augmente la difficulté des attaques.
Étant donné que le sharding augmentera considérablement le débit de l'ETH 2.0, il devient impossible pour tous les nœuds de mettre à jour de manière synchrone les données de transaction complètes sur les différentes chaînes de shard, l'en-tête de collation, qui est similaire à l'en-tête de bloc dans le PoW , devient le moyen de partager l'information. Comme son nom l'indique, un en-tête de collation contient des métadonnées sur les informations contenues dans la collation, telles que :

  1. Le shard unique auquel appartient la collation
  2. Le hachage racine de la collation parent
  3. La racine Merkle de toutes les transactions dans une collation
  4. La racine pré-état et la racine post-état
  5. Signatures des notaires


Source : Hackernoon
L'en-tête de collationnement fournira au nœud des informations suffisantes et ne téléchargera l'enregistrement complet de la transaction selon l'index qu'en cas de besoin.

Le pour et le contre du Sharding

Une alternative qui détourne efficacement la demande d'utilisation et améliore considérablement l'évolutivité
Imaginez qu'un million de voitures soient obligées de rouler sur la même route pour se déplacer de la ville A à la ville B. Le trajet est forcément lent et c'est le cas pour les blockchains conventionnelles car tous les nœuds on-chain doivent vérifier chaque transaction. Le sharding découpe les données on-chain en morceaux de sorte que chaque nœud ne doive traiter qu'une partie de la transaction. Lorsqu'une blockchain ajoute plusieurs autoroutes pour disperser le trafic, les utilisateurs peuvent légitimement effectuer des transactions plus rapidement.

Source : Genesis Block

Réduire la congestion du réseau et abaisser les coûts
Dans l'Ethereum pré-mise à niveau, les nœuds de mineurs emballent les transactions en fonction du montant que les utilisateurs sont prêts à payer, les frais les plus élevés étant traités plus rapidement et les frais les plus faibles plus lentement, ce qui entraîne une enchère pathologique des frais où les utilisateurs paient occasionnellement plus de 50 $ pour une seule transaction. Le sharding permet à la blockchain de fonctionner de manière plus fluide et réduit la nécessité d'enchérir sur les frais, et les utilisateurs peuvent se tourner vers un autre shard en cas de congestion sur un shard.

Des nœuds plus faciles à gérer, renforçant la décentralisation et la sécurité
Comme il n'est pas nécessaire d'accéder aux données complètes de l'ensemble de la blockchain, chaque nœud ne devant traiter que les informations d'un seul shard à la fois, le matériel nécessaire à la mise en place d'un nœud devient plus faible. Les utilisateurs peuvent utiliser des appareils moins chers comme nœuds pour participer à la vérification afin de gagner des revenus. La baisse du seuil profite à la décentralisation et à la popularisation des réseaux blockchain. La vision de l'ETH 2.0 est de permettre aux particuliers d'exécuter des applications Ethereum à partir de leurs smartphones. Un avantage secondaire de la décentralisation est le renforcement de la sécurité du réseau. Plus il y a de nœuds et plus ils sont dispersés, plus il est difficile d'attaquer la blockchain.

Si le sharding présente une liste d'avantages, il introduit également une série de nouveaux problèmes :

La possibilité de l'attaque à 1 %
La blockchain est vulnérable aux attaques à 51 %, ce qui signifie qu'un attaquant est capable d'altérer arbitrairement les données des transactions ou même de contrôler l'ensemble du réseau blockchain lorsqu'il contrôle 51 % de la puissance de calcul des nœuds. Dans les plus grands réseaux de blockchain tels que Bitcoin et Ethereum pré-mise à niveau, le coût d'une attaque à 51 % est trop élevé, ce qui rend sa mise en œuvre infaisable.
Toutefois, avec l'adoption du sharding, le nombre de nœuds traitant chaque shard est considérablement réduit et il devient beaucoup plus facile pour un attaquant malveillant de se compromettre, à condition qu'il attaque l'un des shards et qu'il réussisse à falsifier les transactions plutôt que d'attaquer l'ensemble du réseau. Pour être plus précis, pour un réseau blockchain contenant 1 000 nœuds avec la même puissance de calcul, un pirate doit contrôler plus de 500 nœuds pour attaquer l'ensemble du réseau. Mais lorsque ces 1 000 nœuds sont répartis sur 100 shards, il suffit à un pirate de contrôler plus de 5 nœuds dans l'un des shards pour altérer les données.

Source : Genesis Block

Le risque de sécurité des contrats intelligents augmente
L'adoption du sharding nécessite la réécriture de la structure des données et de la logique du code sous-jacent du grand livre du réseau blockchain, et la complication supplémentaire rendra plus difficile la mise à jour et la maintenance du réseau, ce qui entraînera des vulnérabilités de sécurité et des risques de contrats intelligents tandis que des erreurs involontaires peuvent également se produire pendant l'exécution.

Collusion entre les membres du comité
Bien que le sharding adopte un algorithme d'échantillonnage aléatoire pour éviter que des noeuds identiques soient affectés à une chaîne de shard fixe, il est toujours possible que des combinaisons doubles de noeuds identiques puissent co-valider des transactions après une période de temps assez longue, et les membres du comité vérifiant la chaîne de shard sont également possibles de se collusionner entre eux et de soumettre des transactions malveillantes à la chaîne.
Déséquilibre de la charge
La condition préalable à l'amélioration des performances du réseau par le sharding est que le "sharding" apporte avec succès la "déviation". Lorsqu'une blockchain est optimisée avec 100 chaînes de shard, mais que tous les utilisateurs utilisent toujours une chaîne de shard particulière, alors le sharding échoue et l'évolutivité n'a pas été beaucoup améliorée. C'est également un problème potentiel pour l'ETH 2.0, car la possibilité d'effectuer des opérations de smart contract pour chaque chaîne de shards n'est pas prévue dans la planification initiale.
Des explorateurs de blockchain plus compliqués
L'amélioration de l'évolutivité apportée par le sharding est obtenue en ajoutant plus d'algorithmes et de données à l'ensemble du réseau, une plus grande puissance de traitement est nécessaire aux explorateurs de blockchain pour récupérer efficacement les informations sur la blockchain.

Autres blockchains adoptant le Sharding

Elrond :

Elrond est une blockchain publique décentralisée qui vise à améliorer l'évolutivité, la vitesse et la sécurité en développant trois technologies clés, notamment l'Adaptive State Sharding avec la technologie de mise à l'échelle de la blockchain, la Secure Proof of Stake (SPoS) qui détermine la sélection des validateurs pour accélérer la vérification, et la Elrond Virtual Machine, qui prend en charge plusieurs langages de programmation et est compatible avec Ethereum VM.

L'Adaptive State Sharding unique d'Elrond combine trois formes de sharding :

  1. Le Network Sharding représente le processus de regroupement des nœuds en shards.
  2. Le partage des transactions (Transaction Sharding) fait passer la complexité au niveau supérieur et traite de la répartition des transactions entre différents shards, mais tous les nœuds conservent l'intégralité de la blockchain dans leur état.
  3. Le partage de l'état représente la partie la plus sophistiquée et est décrit comme un mécanisme qui permet à différents shards de ne traiter qu'une partie de l'état sans répliquer les données entre les nœuds de différents shards.

Actuellement, Elrond peut atteindre 15 000 TPS tout en maintenant des frais aussi bas que 0,001 $, ce qui constitue un avantage raisonnable par rapport à Ethereum.

Près de :

Near est une chaîne publique de blocs basée sur le sharding à état complet, des applications de développement simplifiées et un mécanisme de preuve d'enjeu. Elle se fixe pour objectif d'accroître l'évolutivité du développement d'applications décentralisées et d'ouvrir la porte de la technologie blockchain à tous. Son mécanisme de consensus Doomslug, qui adopte l'algorithme Nightshade, est capable de faire évoluer les TPS jusqu'à 100 000. L'architecture technique de Near est différente de celle d'autres chaînes publiques shardées telles que la chaîne Beacon, qui est composée d'une chaîne et de plusieurs chaînes shard, elle est divisée en blocs individuels, et le sharding est effectué entre ces blocs. Un bloc contient toutes les transactions de tous les shards tandis que l'état du shard est divisé, et les validateurs sont assignés de manière aléatoire pour vérifier l'état correspondant du shard de la transaction, améliorant ainsi la sécurité.

Zilliqa :

Zilliqa est un oiseau assez précoce dans les blockchains. Elle a été lancée pour résoudre la faible évolutivité de la blockchain à l'époque en utilisant le network sharding et le transaction sharding, ainsi que le PoW et l'algorithme de consensus tolérant aux fautes byzantines (PBFT) à la complexité simplifiée pour accélérer le consensus au sein des shards. Il peut encore fonctionner rapidement avec plus de 600 nœuds, et la mise à l'échelle constante amène Zilliqa à des TPS plus élevés de 2400 à 3600 TPS.

Harmonie :

Harmony est une chaîne publique basée sur le sharding d'états, qui est structurée par une chaîne Beacon et de multiples chaînes de sharding et accompagnée de l'algorithme de consensus tolérant aux fautes byzantines (PBFT) pour atteindre un consensus profondément optimisé tout en accélérant avec les signatures BLS pour agréger plusieurs signatures en une seule. Dans une chaîne publique sharded, 1% de la puissance de calcul peut être utilisée pour des attaques de double dépense, regardez cela, Harmony adopte EPoS (Effective Proof-of-Stake)et Random Sharding pour disperser les jetons mis en jeu à grande échelle et les allouer aléatoirement à plusieurs shards pour réduire le risque d'être attaqué afin de renforcer la sécurité des shards. Il adopte également la communication inter-éclats de Kademlia pour contrôler les dépenses du réseau tout en tirant parti du code d'effacement, qui permet la récupération des données, pour optimiser le processus de diffusion des blocs afin de réaliser une mise à l'échelle horizontale efficace du sharding.

Conclusion

Avec l'explosion de l'utilisation des crypto-monnaies et la prolifération des dAPP, certaines blockchains traditionnelles sont dépassées et incapables de répondre à la demande croissante du marché. Comment améliorer l'évolutivité sans renoncer à la décentralisation et à la sécurité est devenu une question majeure pour l'industrie actuelle de la blockchain.

Le sharding détourne efficacement les besoins on-chain et améliore l'efficacité de l'accès.

Le sharding est une technologie d'optimisation qui améliore l'efficacité de l'accès aux bases de données en divisant les données de transaction sur la chaîne et en les traitant par différents nœuds de manière synchrone. C'est ainsi que l'on obtient une déviation du trafic et une augmentation de la vitesse. En tant que solution de mise à l'échelle de la couche 1 très attendue, lorsque le sharding est réalisé avec succès après avoir surmonté les difficultés techniques de haut niveau, ses avantages potentiels sont assez énormes. Le sharding a été adopté par certaines blockchains et dans la prochaine version ETH 2.0, il sera également adopté dans l'espoir d'améliorer considérablement les performances du réseau.

Le sharding est extrêmement difficile à réaliser, avec de nombreux défis non résolus, mais le triangle impossible sera finalement surmonté.

Toutefois, le sharding n'est pas une solution parfaite. En plus de la complexité accrue, elle peut exposer le réseau à davantage de risques. De nombreux développeurs poursuivent leurs recherches sur la manière de coordonner les différents shards pour qu'ils fonctionnent efficacement, espérant que le sharding sera la clé pour surmonter le "triangle impossible" de la sécurité, de la décentralisation et de l'évolutivité, afin que toutes les applications blockchain et cryptocurrencies existantes puissent être davantage popularisées.

Auteur : Piccolo Traducteur:Yulei
Réviseur(s) : Hugo , Edward
Avertissement :

  • Cet article ne représente que l'opinion des observateurs et ne constitue pas une suggestion d'investissement.
    *Gate.io se réserve tous les droits sur cet article. La rediffusion de l'article sera autorisée à condition que Gate.io soit référencé. Dans tous les autres cas, une action en justice sera engagée en raison de la violation des droits d'auteur.
Auteur : Piccolo
Traduction effectuée par : Yuler
Examinateur(s): Hugo, Edward, Cecilia, Ashley
* Les informations ne sont pas destinées à être et ne constituent pas des conseils financiers ou toute autre recommandation de toute sorte offerte ou approuvée par Gate.io.
* Cet article ne peut être reproduit, transmis ou copié sans faire référence à Gate.io. Toute contravention constitue une violation de la loi sur le droit d'auteur et peut faire l'objet d'une action en justice.
Lancez-vous
Inscrivez-vous et obtenez un bon de
100$
!