Qu'est-ce que le Sharding dans les crypto-monnaies ?

Le sharding est une technique permettant de séparer de grandes bases de données en parties plus petites, plus rapides et plus faciles à gérer, appelées shards de données. Le mot "shard" signifie une petite partie d'un tout.

Chaque sous-ensemble de données est appelé "shard" ou "nœud", et l'ensemble des shards constitue le jeu de données complet. Le nombre de tessons dans une application dépend de ses exigences de performance, telles que la capacité de stockage ou la vitesse de lecture/écriture.

L'objectif du sharding est de répartir les données sur plusieurs machines et de permettre à plusieurs transactions de se dérouler en parallèle. En d'autres termes, l'objectif est l'évolutivité horizontale. Le sharding peut être utilisé dans blockchain également les réseaux. Par exemple, Ethereum prévoit de mettre en œuvre le sharding sur son réseau afin d'en augmenter l'évolutivité.

Dans cet article, nous allons expliquer ce qu'est le sharding et comment il fonctionne dans les crypto-monnaies.

Le sharding est l'une des technologies de mise à l'échelle les plus prometteuses dans l'espace des crypto-monnaies qui a attiré l'attention dernièrement. Le sharding est un processus qui vise à améliorer l'évolutivité de blockchain en le divisant en unités plus petites (appelées "shards") qui peuvent être traitées en parallèle et ainsi ajouter à la capacité globale de débit des transactions du réseau. 

Pourquoi avons-nous besoin de Sharding ?

Lorsqu'un nœud veut participer à un réseau de crypto-monnaies, le client télécharge l'historique complet des transactions. La raison en est qu'il peut ainsi valider les transactions et vérifier qu'aucune double dépense n'a eu lieu. Cela signifie que pour participer à un blockchain, vous devez télécharger toutes les données.

Si vous voulez héberger ou faire fonctionner un nœud en Bitcoin et recevoir la récompense complète du bloc, il faut au moins 200 Go d'espace de stockage, en date d'avril 2018. Dans Ethereum, ce nombre est encore plus élevé, en avril 2018, il y a plus de 100 Go de données stockées sur chaque nœud. Avec une connexion internet classique, le téléchargement de toutes ces informations prend environ deux semaines. Ce n'est pas pratique pour la plupart des personnes qui veulent s'impliquer dans un réseau de crypto-monnaies.

Le sharding a été introduit pour la première fois dans les systèmes de gestion de base de données afin d'améliorer les performances, l'efficacité et l'évolutivité des services de base de données en répartissant les données sur plusieurs machines. Le sharding est utilisé dans les systèmes de bases de données modernes car il permet d'augmenter la vitesse globale d'une application. La même idée est maintenant appliquée à la technologie blockchain.

Les réseaux de blockchain comme Ethereum tentent de mettre en œuvre le sharding dans le but d'augmenter l'évolutivité de leur réseau, ce qui leur permettrait de traiter davantage de transactions à un rythme plus rapide. Le cofondateur d'Ethereum, Vitalik Buterin, effectue des recherches et développe le concept de sharding depuis un certain temps, et ces recherches ont abouti à la création de l'EIP 1559, une implémentation possible du sharding sur Ethereum.

L'idée de sharding existe depuis un certain temps, mais elle a été utilisée pour la première fois dans le monde des crypto-monnaies par Zilliqa. Le modèle de preuve de travail (PoW) blockchain n'est pas idéal si l'on veut créer un réseau capable de gérer un volume élevé de transactions. Zilliqa a été la première entreprise à essayer de résoudre ce problème en créant l'un des réseaux blockchain les plus rapides du marché.

Zilliqa utilise une solution de sharding qui lui permet d'augmenter sa capacité de transaction à mesure que de nouveaux nœuds rejoignent le réseau. Plus le nombre d'ordinateurs ajoutés au réseau est important, plus le nombre de transactions traitées par seconde est élevé.

Comment fonctionne le Sharding

Un blockchain est un grand livre distribué qui consiste en des données stockées dans des blocs ; chaque bloc contient une certaine quantité de données, et ces blocs sont enchaînés ensemble pour former le grand livre. La chaîne est maintenue par des nœuds - des participants qui détiennent une copie de l'ensemble du grand livre et la mettent à jour lorsque de nouvelles informations sont reçues. Chaque nœud doit valider les nouvelles données avant qu'elles ne puissent être ajoutées à la chaîne. Si une entreprise doit faire évoluer son système, elle a deux possibilités : acheter du matériel plus coûteux ou trouver une solution alternative qui utilise mieux le matériel existant.

Le sharding est l'une des nombreuses approches de la mise à l'échelle et de la haute disponibilité des bases de données. Les autres approches comprennent la mise en cache des réponses, la réplication maître-esclave et l'hébergement en nuage.

Le sharding distribue les données sur plusieurs serveurs, comme le montre le schéma ci-dessous. Chaque shard agit comme une base de données distincte, et chaque serveur de base de données gère les opérations de lecture et d'écriture pour son propre shard. Afin de diviser une base de données en shards, chaque shard doit contenir un certain type de métadonnées qui aident à identifier quelles données doivent être stockées dans quel shard.

Ethereum prévoit d'utiliser le sharding pour sa solution de mise à l'échelle. Actuellement, il existe deux types de nœuds dans Ethereum : les nœuds complets et les nœuds légers. Les nœuds complets stockent toutes les informations sur le blockchain (jusqu'à 1 téraoctet) tandis que les nœuds légers ne stockent qu'une petite partie de ces informations ou juste un résumé de ce qui se passe sur la chaîne. Avec la solution de sharding d'Ethereum, les nœuds complets seront divisés en nœuds "collation" et "attester". Ce faisant, les nœuds de collation auront beaucoup moins de validateurs que les nœuds complets actuels et pourront stocker beaucoup moins d'informations que les nœuds complets actuels. Cela signifie que davantage de personnes pourront participer au réseau en tant que validateurs et mainteneurs.

Cette approche présente plusieurs avantages :

Bénéfices et avantages du Sharding sur le marché des crypto-monnaies 

Comme mentionné ci-dessus, le sharding vise à diviser une charge de travail importante en petites sous-charges de travail. Cela permet d'améliorer l'évolutivité et l'efficacité d'un réseau. Les avantages de cette méthode comprennent un débit plus élevé et des vitesses de transaction plus rapides. Ce dernier point est particulièrement important pour les bourses de crypto-monnaies qui recherchent un moyen alternatif et plus efficace de traiter les transactions des utilisateurs.

  1. Réduction des coûts - Le sharding vous permet de faire croître votre base de données horizontalement plutôt que verticalement, car chaque shard peut être hébergé sur un serveur distinct. Cela signifie que vous pouvez commencer avec un matériel moins puissant et moins coûteux, puis ajouter des shards au fur et à mesure que votre système s'agrandit ou nécessite plus de puissance de traitement. 
  1. Une augmentation de la demande de transactions sur blockchains provoque une congestion et augmente la valeur des frais de transaction ; cela peut poser des problèmes dans les écosystèmes de crypto-monnaies où les "mineurs" sont récompensés par les frais de transaction. Plus la valeur des frais est élevée, plus l'incitation à miner des blocs est forte. Toutefois, si les frais de transaction sont trop élevés, ils peuvent devenir prohibitifs pour certains utilisateurs, ce qui pourrait entraîner une baisse de l'adoption.
  1. Des requêtes plus rapides - Les tessons peuvent être répartis sur différents serveurs, ce qui réduit le temps nécessaire à chaque requête car il y a moins de données à rechercher.
  1. Augmentation de l'évolutivité : Le débit augmente avec l'augmentation du nombre de nœuds, ce qui permet de prendre en charge un plus grand nombre de transactions par seconde sur un réseau. L'idée derrière le sharding est similaire au stockage de différentes données dans différents serveurs de base de données ou à l'utilisation de plusieurs serveurs pour différentes tâches. Cela permet de maintenir une base de données volumineuse et capable de gérer de nombreuses transactions par seconde.
  1. Haute disponibilité : Comme la base de données est divisée en bases de données plus petites appelées "shards", même si l'une d'entre elles tombe en panne, de nombreuses autres peuvent contribuer à maintenir la disponibilité du réseau.
  1. Réduction de la latence : Lorsque vous disposez de plusieurs serveurs de bases de données, ils peuvent être placés plus près des utilisateurs et

Les inconvénients de l'utilisation du Sharding 

Les inconvénients du sharding sont vraiment dans l'implémentation, pas dans le concept. La mise en œuvre du sharding est difficile et nécessite des hard forks car il existe de nombreuses variantes de propositions de sharding. De plus, sans une mise en œuvre et des tests appropriés, elle peut entraîner des risques de centralisation en raison de chaînes brisées ou d'une mauvaise distribution des récompenses.

Certains des principaux problèmes liés au sharding sont d'ordre pratique. Par exemple, si vous avez plusieurs shards (blocs de données), comment savoir lequel contient les informations les plus récentes ? Si un shard possède une ancienne version de certaines données et un autre une version plus récente, lequel doit être utilisé ? C'est ce qu'on appelle la "synchronisation des shards", et c'est un problème que les développeurs doivent résoudre avant de mettre en œuvre un nouveau système.

  • Les shards peuvent devenir indisponibles en cas d'erreur de réseau.
  • Le re-shard prend du temps lorsque le nombre de nœuds change dans le système.
  • Il peut être difficile de retrouver des informations en cas de panne

Le Sharding n'est pas une baguette magique qui peut résoudre tous les problèmes blockchain d'un seul coup. C'est un concept dont la mise en œuvre nécessite beaucoup de travail, et il y a toujours des compromis à faire. La sécurité sera toujours la principale préoccupation des blockchain - si vous facilitez l'attaque du réseau par quelqu'un, vous devez vous assurer que votre sécurité est toujours suffisamment bonne pour repousser ces attaques.

Il est clair que le sharding a un grand potentiel car il pourrait permettre d'augmenter le nombre de transactions par seconde en augmentant le nombre de shards. Par conséquent, les utilisateurs pourraient bénéficier de temps de transaction plus rapides. Et lorsqu'il s'agit de les échanges et le commerce de crypto-monnaies les plateformes - c'est ce qui compte le plus.

Liens connexes

fr_FRFrench