Qu’est-ce que le sharding dans la blockchain et comment ça fonctionne ?

Author logo
Patrick Dike-Ndulue
Post image

Points essentiels

Le sharding est une technique de montée en charge des bases de données qui divise une blockchain en segments plus petits, appelés shards, permettant le traitement parallèle des transactions et une augmentation du débit du réseau. Cette approche améliore considérablement la scalabilité et l’efficacité, mais introduit des défis comme la complexité de la communication entre shards et une sécurité accrue, car chaque shard devient plus vulnérable aux attaques. Des réseaux comme Zilliqa, NEAR et Ethereum explorent le sharding, qui, si ses limites sont surmontées, pourrait contribuer à résoudre le trilemme de la blockchain en offrant de la scalabilité sans compromettre la décentralisation ni la sécurité.

L’un des principaux défis pour 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 montée en charge qui consiste à diviser une base de données en segments distincts, chacun pouvant être hébergé sur un serveur différent.

Appliquée à la blockchain, cette technologie revient à segmenter le réseau en secteurs indépendants. 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 utilisateurs effectuent davantage de transactions, lancent plus de DApps et exécutent davantage 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’ensemble de la blockchain pour chaque transaction. Les opérations sont alors validées en parallèle plutôt que de façon linéaire, ce qui augmente le débit du réseau et élimine le problème de scalabilité.

De plus, les nœuds de la blockchain qui utilisent le sharding fonctionnent de manière plus efficace sans accroître la puissance de calcul nécessaire, grâce à la réduction de la charge.

Comment cela fonctionne-t-il ?

Les blockchains nécessitent le travail de milliers d’ordinateurs pour fonctionner, et leur puissance de calcul permet aux registres distribués de traiter les 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 donc beaucoup de temps. Par exemple, Ethereum 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 repose sur l’abandon du modèle d’exécution linéaire au profit d’un modèle parallèle, dans lequel chaque shard effectue certains calculs et traite de nombreuses transactions simultanément. Il s’agit en quelque sorte d’une « blockchain dans la blockchain », qui transmet toutes ses informations à la chaîne principale, mais sous une forme compressée.

Les inconvénients du sharding

Il existe deux problèmes majeurs dans le sharding : communication entre shards et sécurité. 

  1. Communication. Si le réseau est divisé en secteurs isolés, chacun devient de fait une blockchain distincte. Les utilisateurs et applications décentralisées d’un shard ne pourront communiquer avec ceux d’un autre shard qu’en utilisant un protocole de communication spécifique.
     
  2. Sécurité. Dans un réseau sharded, il est beaucoup plus facile de prendre le contrôle d’un shard que de l’ensemble du réseau, car le taux de hachage requis est bien inférieur. 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éaliste. En revanche, s’emparer d’un seul shard est bien moins cher et plus accessible.

Le sharding n’est donc pas une solution miracle. Il comporte des complexités et des risques de sécurité. Un hacker pourrait exploiter un shard isolé dans une blockchain segmentée, car il faut moins de puissance de calcul pour contrôler une section individuelle. Cela pourrait entraîner des transactions malveillantes perturbant l’ensemble du réseau.

De plus, puisque différents groupes de nœuds gèrent différents segments de la blockchain, chaque shard fonctionne en pratique comme un réseau indépendant. Des mécanismes spécifiques sont nécessaires pour permettre une communication fluide entre ces segments.

Une mauvaise implémentation peut entraîner des problèmes comme la double dépense, ce qui nuit gravement à la sécurité du réseau. Le sharding est aussi difficile à mettre en place sur des blockchains existantes, car il implique de diviser le réseau et de réaffecter les données.

Ethereum propose une solution à ce problème basée sur l’échantillonnage aléatoire. Les protocoles de shard sont attribués de façon aléatoire à différentes sections pour valider l’authentification des blocs. Cela a été rendu possible grâce au passage du réseau au consensus proof-of-stake.

Les réseaux qui utilisent 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 légers de fonctionner sur des appareils peu puissants.

Ethereum prévoit également d’implémenter le 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 à corriger ses faiblesses. Si tel est le cas, il sera possible de faire évoluer les blockchains sans sacrifier la décentralisation ni la sécurité.
 

Author logo
Auteur Patrick Dike-Ndulue

Senior editor covering crypto, onchain equities, and technology.

Author logo
Examiné par Rukkayah Jigam

Writer & editor covering digital assets and product updates.