Définition
Le sharding (ou fragmentation en français) est une technique de partitionnement de base de données utilisée pour améliorer la scalabilité d'une chaîne de blocs. Plutôt que de demander à chaque nœud du réseau de traiter et de stocker l'intégralité des transactions et des données de la chaîne, le sharding divise le réseau en plusieurs sections plus petites et indépendantes, appelées des "shards" (fragments). Chaque shard possède son propre ensemble d'états et son propre historique de transactions, permettant ainsi au réseau de traiter des opérations en parallèle plutôt que de manière séquentielle (une-par-une).
En effet, dans une architecture classique, la capacité de traitement globale est limitée par la puissance du nœud le plus lent, puisque chaque participant doit valider l'intégralité des informations. Le sharding transforme donc cette logique en divisant le réseau en 64 fragments distincts. La charge de travail est ainsi répartie, ce qui permet théoriquement de traiter 64 fois plus de transactions simultanément. On passe ainsi d'une mise à l'échelle verticale, centrée sur la performance individuelle des nœuds, à une mise à l'échelle horizontale, où l'efficacité du système s'accroît par l'ajout de nouveaux fragments.
Schéma du partitionnement par fragments (Sharding)
Source : Ethereum Foundation / Documentation technique
Fonctionnement technique et communication entre fragments
Le défi majeur du sharding réside principalement dans la coordination des différents noeuds du réseau. Pour maintenir la cohérence de l'ensemble, une structure centrale, qu’on appelle souvent appelée Beacon Chain (chaîne phare) ou couche de coordination, est nécessaire. Son rôle est de gérer les validateurs, de les assigner de manière aléatoire aux différents fragments pour éviter la collusion, et de faciliter la communication entre les fragments (cross-shard communication).
Ainsi, lorsqu'un utilisateur du fragment A souhaite envoyer des fonds à un utilisateur du fragment B, le protocole doit s'assurer que la transaction est validée de manière atomique, càd qu’elle ne doit pas pouvoir être validée sur un fragment et échouer sur un autre. Ce processus nécessite l’introduction de preuves cryptographiques complexes pour garantir que chaque fragment "fait confiance" à l'état des autres sans avoir à télécharger l'intégralité de leurs données respectives.
Le sharding au sein d'Ethereum (=Danksharding)
L'exemple le plus emblématique de transition vers le sharding est celui d'Ethereum. Initialement prévu comme un sharding complet de l'exécution, le projet a évolué vers le Danksharding. Dans cette configuration, le sharding vise à fragmenter le stockage des données (contenu dans les blobs).
Cette évolution permet à Ethereum de répondre à la montée en puissance des solutions de seconde couche (Layer 2) comme les Rollups, qui visent à rendre le L1 plus scalable. Le réseau principal d'Ethereum utilise donc le sharding pour offrir de vastes espaces de stockage temporaires et bon marché, permettant aux réseaux de seconde couche d'y publier leurs preuves de validité. Ainsi, le sharding devient la structure de base permettant à Ethereum de supporter des milliers de transactions par seconde tout en restant accessible aux noeuds domestiques (noeuds de particuliers) qui n'ont plus à stocker des téraoctets de données inutiles.
Défis de sécurité
Malgré son potentiel révolutionnaire, le sharding introduit de nouvelles vulnérabilités, notamment l'attaque de fragment (1% attack). En effet, dans le cas une chaîne non fragmentée, un attaquant doit contrôler 51 % de la puissance totale pour corrompre le réseau. Or, dans un système fragmenté, si un attaquant parvient à concentrer sa puissance sur un seul shard (fragment), il pourrait théoriquement prendre le contrôle de l’ensemble du réseau avec une fraction bien moindre de la puissance globale totale que celui-ci possède. C'est pourquoi le mécanisme de sélection aléatoire des validateurs à chaque nouvelle période est crucial et doit être mathématiquement inattaquable.
Conclusion
Le sharding représente l'une des solutions les plus sophistiquées pour résoudre le trilemme de la chaîne de blocs (sécurité, décentralisation et scalabilité). En brisant la linéarité du traitement des données, il permet d'imaginer des réseaux capables de rivaliser avec les systèmes de paiement traditionnels comme Visa ou Mastercard, sans pour autant sacrifier la décentralisation au profit de la puissance brute d’un réseau.
Toutefois, cette efficacité accrue s'accompagne d'une complexité architecturale considérable. En effet, le succès du sharding dépendra de la robustesse des protocoles de communication entre fragments et de la capacité des développeurs à maintenir une interopérabilité totale.
Sources
Attaque de fragment (1% attack) : https://www.coindesk.com/opinion/2025/02/06/how-to-fix-ethereum-s-fragmentation-problem
https://www.veracash.com/fr/blog/mastercard-visa-comprendre-reseaux-paiement-mondiaux