Qu’est-ce que le sharding dans la blockchain et comment ça fonctionne ?
Cet article est disponible dans les langues suivantes :
Points essentiels
Le sharding est une technique de mise à l’échelle des bases de données qui divise une blockchain en segments plus petits, appelés shards, permettant ainsi le traitement parallèle des transactions et une augmentation du débit du réseau. Si cette approche améliore nettement la scalabilité et l’efficacité, elle introduit aussi des défis comme la complexité de la communication entre shards et des risques de sécurité accrus, car chaque shard est plus vulnérable aux attaques. Des réseaux comme Zilliqa, NEAR et Ethereum explorent le sharding, qui pourrait, si ses limites sont surmontées, aider à résoudre le trilemme de la blockchain en offrant une scalabilité sans compromettre la décentralisation ni la sécurité.
L’un des principaux défis auxquels sont confrontés les développeurs de bases de données est la montée en charge. À mesure que le volume de données et le nombre d’opérations augmentent, il devient indispensable d’améliorer les performances du système.
Le sharding est une technologie de mise à l’échelle des bases de données qui consiste à diviser celles-ci en segments distincts, chacun pouvant être hébergé sur un serveur différent.
Appliquée à la blockchain, cette technologie se traduit par la division du réseau en secteurs séparés. Chaque secteur, ou shard, contient un ensemble unique de smart contracts et de soldes de comptes, et des nœuds spécifiques du réseau sont affectés à chaque shard.
These nodes are responsible for verifying transactions only in their assigned shard rather than for all transactions on the blockchain.
Quels problèmes le sharding résout-il ?
Plus un projet gagne en popularité, plus il attire d’utilisateurs. Ces derniers effectuent davantage de transactions, lancent plus de DApps et exécutent plus de processus sur le réseau. En conséquence, la vitesse des transactions diminue et les commissions augmentent, ce qui freine l’expansion et le développement du projet. Diviser le réseau en shards permet de résoudre ce problème en augmentant la capacité de traitement de la blockchain.
Lorsqu’un groupe de nœuds est responsable d’un segment particulier du registre, tous les nœuds du réseau sont libérés de l’obligation de maintenir l’intégralité de la blockchain pour chaque transaction. Les opérations sont ainsi validées en parallèle plutôt que de manière linéaire, ce qui augmente le débit du réseau et élimine le problème de scalabilité.
De plus, les nœuds blockchain utilisant le sharding fonctionnent plus efficacement sans besoin de puissance de calcul supplémentaire, grâce à la charge réduite.
Comment ça fonctionne ?
Les blockchains nécessitent le travail de milliers d’ordinateurs pour fonctionner, et leur puissance de calcul permet aux registres distribués de traiter des transactions, d’exécuter des smart contracts, de déployer des DApps, etc. Si le réseau fonctionne sur un mode d’exécution séquentielle, chaque nœud doit traiter chaque transaction. La vérification des opérations prend alors beaucoup de temps. Ethereum, par exemple, traite jusqu’à 10 transactions par seconde.
Ajouter des nœuds à la blockchain n’augmente pas ses performances. Cela ne fait qu’allonger la chaîne de vérification.
Le principe du sharding consiste à abandonner le modèle d’exécution linéaire au profit d’un modèle parallèle, dans lequel les shards effectuent uniquement certains calculs et traitent de nombreuses transactions simultanément. Ils constituent une sorte de « blockchain dans la blockchain », transférant toutes leurs informations à la chaîne principale, mais sous une forme compressée.
Les inconvénients du sharding
Il existe deux principaux problèmes liés au sharding : communication entre shards et sécurité.
- Communication. Si le réseau est divisé en secteurs isolés, chacun devient de facto une blockchain distincte. Les utilisateurs et applications décentralisées d’un shard ne pourront communiquer avec ceux d’un autre qu’au moyen d’un protocole de communication spécifique.
- Sécurité. Dans un réseau sharded, il est beaucoup plus facile de prendre le contrôle total d’un shard que d’un réseau non fragmenté, car la puissance de calcul requise est bien moindre. Par exemple, une attaque à 51 % sur le réseau Bitcoin nécessiterait des milliards de dollars en matériel et des centaines de millions par jour en électricité. C’est coûteux, non rentable et irréalisable. S’emparer d’un seul shard, en revanche, est bien plus abordable et simple.
Le sharding n’est donc pas une solution miracle. Il comporte des complexités et des risques en matière de sécurité. Des hackers pourraient exploiter un shard isolé dans une blockchain segmentée, car il demande moins de puissance de calcul pour contrôler une section. Cela pourrait entraîner des transactions malveillantes perturbant l’ensemble du réseau.
En outre, puisque différents groupes de nœuds gèrent des segments distincts de la blockchain, chaque shard fonctionne en pratique comme un réseau séparé. Des mécanismes spéciaux sont nécessaires pour assurer une communication fluide entre ces segments.
Une mauvaise implémentation peut entraîner des problèmes comme la double dépense, ce qui impacte fortement la sécurité du réseau. Le sharding est aussi difficile à mettre en place sur des blockchains existantes, car il implique de scinder le réseau et de réaffecter les données.
Ethereum propose une solution à ce problème en utilisant l’échantillonnage aléatoire. Les protocoles de shards sont attribués de manière aléatoire à différentes sections pour confirmer l’authenticité des blocs. Cela a été rendu possible par le passage du réseau au consensus proof-of-stake.
Les réseaux qui déploient déjà le sharding
Le premier réseau à avoir introduit le sharding est Zilliqa. Il se présente comme une plateforme blockchain visant à résoudre les problèmes de scalabilité grâce au sharding. Lors de la phase de testnet, il a atteint 2 828 transactions par seconde.
L’écosystème blockchain NEAR se définit comme une blockchain PoS sharded et affirme que sa technologie de sharding permet à des nœuds suffisamment petits de fonctionner sur des appareils peu puissants.
Ethereum prévoit également d’implémenter la technologie de sharding. D’autres réseaux sharded incluent Cardano, QuarkChain et Plian.
Conclusion
En théorie, le sharding pourrait enfin résoudre le trilemme de la blockchain s’il parvient à dépasser ses limites. Si tel est le cas, il sera possible de faire évoluer les blockchains sans sacrifier la décentralisation ni la sécurité.