Depuis l’avènement des cryptomonnaies en 2009, introduit par Satoshi Nakamoto, de plus en plus de grands esprits aussi brillants les uns que les autres font évoluer la technologie de la #Blockchain tout en gardant son originalité. C’est dans cet ordre d’idée qu’a été inventé le sharding que nous verrons dans cet article.
Définition
Le #sharding est le fait de partitionner (répartir) les tâches (données) dans un réseau pour accroître ses performances et permettre ainsi un traitement efficient des données. Les datasets ou fragments logiques issus du partitionnement constituent alors des sous-ensembles de la base de données fractionnée et répartie dans des nœuds de bases de données distinctes appelées #fragments physiques.
Le sharding crypto
Dans la cryptosphère, le sharding permet de faire une mise à l’échelle plus connu sous l’expression de #scalabilité. Le problème avec les blockchains comme Bitcoin et Ethereum est que le consensus de validation des transactions qu’est le Proof of Work (POW) ne permet pas d’effectuer des milliers de transactions à la seconde. Ceci est dû au fait que le temps de traitement est long ou les coûts de transactions sont élevés, ce qui est à la l’origine de la congestion du réseau.
Pour vous expliquer avec des termes simples, il faut savoir qu’à mesure que le nombre de transactions effectuées sur la Blockchain augmente, l’accumulation de blocs non validés commence à se faire ressentir dans la célérité du réseau. C’est un problème important avec les Blockchains comme Bitcoin ou Ethereum, où les utilisateurs doivent attendre un temps frustrant pour que leurs multiples transactions soient traitées.
La solution proposée pour remédier à cette situation est de fragmenter le réseau en sous-couche de traitement pour le désengorger, ce qui permet une nette amélioration des performances par augmentation de nombre de transactions à la seconde. Ainsi, les différents nœuds de chaque fragment se chargeront de valider les transactions associées à ce fragment.
L’implémentation du sharding sur le réseau Ethereum est l’un des objectifs majeurs de ses développeurs. Dans sa blockchain, les nœuds stockent (soldes de comptes, code et stockage de contrat, etc.) grâce à la Machine Virtuelle Ethereum (EVM) l’état du réseau. Ce qui signifie que l’ensemble des nœuds du globe doivent se partager le résultat de minage de chaque bloc. L’importante quantité de transactions sur le réseau fait en sorte que ses performances s’amoindrissent et congestionnent le réseau. Il faut pouvoir traiter plus de 10000 transactions par seconde sans forcer chaque nœud à être un super-ordinateur, ni à stocker un téraoctet de données d’état, et cela demande une solution complète où la charge de travail résultant du stockage de l’état, du traitement des transactions et même du téléchargement et de la rediffusion des transactions est répartie sur tous les nœuds. L’algorithme de consensus Proof of Work ne peut pas fonctionner avec la méthode du sharding, raison pour laquelle le #Merge à venir permettra le fonctionnement sur le consensus Proof of Stake (POS) et implémentera le sharding.
Avantages et inconvénients
Avantages | Inconvénients |
-Rapidité (plusieurs transactions par seconde) -Système plus sécurisé car les données sont réparties sur plusieurs nœuds -Moins coûteux -mise de l’échantillonnage aléatoire pour filtrer et choisir au hasard le nœud pour la validation et l’approbation des informations des blocs. | -Une mauvaise implémentation peut engendrer une perte de données -Potentiel problème de déséquilibre -Problème de cyber-sécurité car un individu malintentionné pourra attaquer facilement un fragment (shard) : c’est l’attaque par acquisition de fragment unique. |
Les réalisations actuelles du sharding
De nombreuses blockchains comme Cardano et Ethereum sont en cours de développement et d’implémentation du sharding, mais d’autres comme Zilliqa (ZIL) ont déjà mis sur pied cette technologie ce qui lui a permis d’atteindre 2828 transactions dans le tesnet. Une caractéristique clé de Zilliqa est sa capacité à fournir une évolutivité via le processus de partitionnement. Actuellement, Zilliqa comporte quatre parties individuelles de la Blockchain, où chaque transaction au sein du réseau est validée par des nœuds au sein de l’une de ces parties. Les performances du sharding de la blockchain TON (The Open Network) de télégram ont déjà montré le plus haut niveau d’évolutivité possible.
Conclusion
Il était question dans cet article de présenter le sharding. Nous pouvons retenir de ce qui précède que les projets blockchain peuvent se tourner vers cette technologie pour leur mise à l’échelle tout en se penchant sur les éléments de vulnérabilités cités ci-haut. Etant encore un concept nouveau dans la blockchain, seul le temps permettra d’apprécier ses performances à leurs justes valeurs.
Sources : https://www.dz-techs.com/, https://academy.bit2me.com/, https://cryptoast.fr/, https://www.ethereum-france.com/, https://cryptostrategie.com/.
Superbe article, explication terre a terre
Merci