Points clés
Le sharding découpe une blockchain en segments plus petits appelés shards, ce qui permet de traiter les transactions en parallèle plutôt que les unes après les autres.
Chaque shard agit comme une base de données indépendante qui traite sa propre portion de transactions, ce qui réduit la charge sur les nœuds individuels.
Le sharding peut augmenter le débit des transactions, réduire les exigences matérielles pour les opérateurs de nœuds et améliorer l’efficacité globale du réseau.
Les compromis incluent une complexité accrue, le risque d’attaques sur un seul shard, ainsi que des défis liés aux transactions qui s’étendent sur plusieurs shards.
En mars 2024, Ethereum a mis en œuvre une forme intermédiaire de sharding appelée Proto-Danksharding (EIP-4844) via la mise à niveau de Cancun, réduisant les frais pour les réseaux de couche 2. Le full danksharding reste à l’étude sur la feuille de route.
Introduction
La technologie des blockchains offre un moyen décentralisé et transparent d’enregistrer les transactions, mais elle présente une limite bien connue : la scalabilité. À mesure que le réseau grandit et que davantage d’utilisateurs envoient des transactions, il peut ralentir et devenir plus coûteux à utiliser. On décrit parfois cela comme le « trilemme de la blockchain », qui fait référence à la difficulté d’obtenir simultanément la scalabilité, la sécurité et la décentralisation.
Le sharding est une approche qui tente de résoudre l’aspect scalabilité de ce problème. À l’origine, c’était une technique de gestion de base de données, mais plusieurs projets de blockchain l’ont adaptée pour permettre aux réseaux de traiter davantage de transactions sans sacrifier la décentralisation.
Qu’est-ce que le sharding ?
Le sharding consiste à découper un réseau blockchain en partitions plus petites appelées shards. Chaque shard contient sa propre portion des données du réseau et traite ses propres transactions de manière indépendante. Plutôt que d’exiger que chaque nœud stocke et vérifie chaque transaction sur l’ensemble du réseau, chaque nœud n’est responsable que d’un shard.
C’est un changement important par rapport à la manière dont fonctionnent la plupart des blockchains par défaut. Dans une blockchain standard, chaque nœud doit traiter et stocker toutes les transactions sur l’ensemble du réseau. Bien que cette approche soit sécurisée, elle limite la vitesse à laquelle le réseau peut fonctionner, car tous les nœuds doivent rester synchronisés.
Comment fonctionne le sharding ?
Pour comprendre le sharding, il est utile d’examiner d’abord comment les données sont normalement traitées sur une blockchain, puis comment le sharding modifie cela.
Traitement séquentiel vs parallèle
Dans une blockchain typique, chaque nœud traite les transactions une par une, dans l’ordre. Cela signifie que la vitesse du réseau entier est limitée par ce que chaque nœud individuel peut gérer. À mesure qu’une blockchain grandit, cela devient un goulot d’étranglement.
Le sharding introduit un traitement parallèle. Au lieu que tous les nœuds travaillent sur les mêmes transactions, différents groupes de nœuds gèrent simultanément différents shards. Cela permet au réseau de traiter bien plus de transactions en même temps.
Partitionnement horizontal
Le sharding utilise une technique appelée partitionnement horizontal, qui divise les données en lignes plutôt qu’en colonnes. Chaque shard conserve un sous-ensemble complet des données de transaction pour les transactions qu’il traite. Cela préserve l’intégrité des données, car chaque shard dispose de l’enregistrement complet de sa portion du réseau.
Le partitionnement horizontal est privilégié dans les systèmes blockchain car il soutient la décentralisation. Les nœuds n’ont besoin de conserver et de vérifier que les données d’un shard, ce qui réduit la capacité de stockage et de calcul requise pour participer au réseau.
Partitionnement vertical
Dans le partitionnement vertical, les données sont divisées en colonnes plutôt qu’en lignes. Chaque partition dans le partitionnement vertical contient un sous-ensemble de données pour chaque entité, ou pour l’ensemble de l’ensemble de données, mais uniquement pour un certain ensemble d’attributs.
Quels sont les avantages du sharding ?
Le sharding offre plusieurs avantages potentiels pour les réseaux blockchain :
Débit accru : en traitant les transactions en parallèle sur plusieurs shards, un réseau sharded peut traiter beaucoup plus de transactions par seconde qu’une conception sur une seule chaîne.
Moins d’exigences matérielles : Comme chaque nœud ne stocke des données que pour un seul shard, les besoins en stockage et en traitement sont réduits. Il devient donc plus facile et moins coûteux d’exécuter un nœud, ce qui peut accroître la décentralisation du réseau.
Meilleure évolutivité : Un réseau sharded peut, en théorie, ajouter davantage de shards à mesure que la demande augmente, ce qui permet au réseau de s’étendre sans baisse proportionnelle des performances.
Ces avantages sont théoriques, à des degrés variables. L’amélioration qu’observe un réseau réel dépend de la façon dont le sharding est mis en œuvre et des compromis acceptés.
Quelles sont les limites du sharding ?
Le sharding introduit de nouveaux défis qui n’existent pas dans les blockchains non shardées :
Attaques sur un shard unique : Un attaquant a besoin de bien moins de ressources pour prendre le contrôle d’un shard que pour attaquer l’ensemble du réseau. Cela rend les shards individuels plus vulnérables à un type d’attaque de type 51%.
Complexité inter-shards : Les transactions qui impliquent des données provenant de deux shards différents sont difficiles à gérer. Si un shard ne suit pas correctement l’état d’un autre shard pendant une transaction, des erreurs comme le double paiement pourraient potentiellement survenir.
Disponibilité des données : Si les nœuds responsables d’un shard donné se déconnectent, les données de ce shard peuvent devenir temporairement indisponibles, perturbant ainsi le réseau.
Surcoût de synchronisation : Maintenir les shards coordonnés ajoute de la complexité à la conception du réseau. Des erreurs dans la gestion des shards peuvent entraîner des incohérences ou des problèmes de performance.
Ces compromis expliquent pourquoi le sharding est techniquement difficile à mettre en œuvre et pourquoi de nombreux réseaux adoptent des approches progressives.
Comment le sharding est-il utilisé sur Ethereum ?
La feuille de route de scalabilité d’Ethereum a considérablement évolué depuis que le sharding a été évoqué pour la première fois dans le plan de mise à niveau « Ethereum 2.0 ». Plutôt que d’implémenter directement le sharding d’exécution, la Ethereum Foundation a opté pour une stratégie centrée sur les rollups : les rollups de couche 2 gèrent l’exécution des transactions hors chaîne tout en publiant des données sur la chaîne principale Ethereum.
Dans le cadre de cette stratégie, Ethereum a introduit le Proto-Danksharding (EIP-4844) lors de la mise à niveau de Cancun en mars 2024. L’EIP-4844 introduit un nouveau type de transaction appelé transaction “avec blob”. Les blobs permettent aux rollups de couche 2 de publier de grandes quantités de données sur Ethereum à un coût beaucoup plus faible qu’avant, car les données de blob sont stockées temporairement (environ 18 jours) et ne sont pas traitées par la machine virtuelle Ethereum.
Le full danksharding est la prochaine étape de la feuille de route Ethereum. Il étendra le système de blobs en permettant l’échantillonnage de disponibilité des données, une technique qui permet aux nœuds de vérifier que les données sont disponibles sans avoir à les télécharger entièrement. Cela permettrait à Ethereum de prendre en charge bien plus de blobs par bloc, réduisant considérablement les coûts pour les utilisateurs de couche 2. Au moment de la rédaction, le full danksharding n’a pas encore été implémenté.
FAQ
Qu’est-ce que le sharding dans une blockchain ?
Le sharding découpe une blockchain en segments indépendants plus petits appelés shards. Chaque shard traite ses propres transactions et stocke ses propres données. Cela permet à différentes parties du réseau de fonctionner en parallèle, augmentant le nombre total de transactions que le réseau peut traiter.
Ethereum est-il actuellement shardé ?
Ethereum a mis en place une forme intermédiaire de sharding appelée Proto-Danksharding (EIP-4844), introduite dans la mise à niveau de Cancun en mars 2024. Cela permet aux réseaux de couche 2 de publier des données de transaction sous forme de blobs peu coûteux plutôt que dans des calldata coûteux. Le full danksharding, qui permettrait l’échantillonnage de la disponibilité des données sur de nombreux shards, reste en développement.
Quels sont les principaux risques du sharding ?
Les principaux risques incluent les attaques sur un seul shard : un attaquant peut cibler un shard avec moins de ressources que nécessaires pour attaquer l’ensemble du réseau. Il existe aussi une complexité des transactions inter-shards, qui peut introduire des cas limites comme le double paiement si elle n’est pas gérée avec soin. Des problèmes de disponibilité des données peuvent également survenir si les nœuds qui gèrent un shard donné se déconnectent.
En quoi le sharding diffère-t-il de l’utilisation de solutions de couche 2 ?
Le sharding est une technique d’« scaling » de couche 1 qui modifie la façon dont la blockchain de base stocke et traite les données. La scalabilité d’une blockchain peut aussi être abordée via des solutions de couche 2, qui gèrent les transactions hors chaîne et publient des résumés sur la chaîne principale. Dans la feuille de route actuelle d’Ethereum, les deux approches fonctionnent ensemble : le sharding (via les blobs) réduit le coût de publication des données de couche 2 sur Ethereum, tandis que les rollups gèrent l’exécution des transactions hors chaîne.
Dernières réflexions
Le sharding est une technique prometteuse pour améliorer la scalabilité des blockchains, mais elle s’accompagne de compromis réels en termes de complexité et de sécurité. Le concept a évolué d’une proposition théorique vers une implémentation progressive et pratique, notamment grâce à l’EIP-4844 d’Ethereum. À mesure que la recherche continue et que davantage de réseaux testent des conceptions de sharding, la technologie devrait continuer à évoluer. Le succès d’une implémentation donnée dépendra de la façon dont elle équilibrera, dans le temps, le débit, la sécurité et la décentralisation.
Lectures complémentaires
Couche 1 vs couche 2 : solutions de scalabilité des blockchains
Qu’est-ce qu’Ethereum et comment fonctionne-t-il ?
Rollups optimistes vs rollups à preuves à divulgation nulle (ZK) : quelle différence ?
Qu’est-ce que la mise à niveau d’Ethereum Cancun ?
Scalabilité des blockchains : sidechains et canaux de paiement
Clause de non-responsabilité : Ce contenu vous est fourni « en l’état » à des fins d’information générale et/ou d’éducation uniquement, sans aucune déclaration ni garantie d’aucune sorte. Il ne doit pas être interprété comme un conseil financier, juridique ou professionnel, ni comme une recommandation d’achat d’un produit ou d’un service spécifique. Vous devez demander conseil à des professionnels compétents. Lorsque le contenu est fourni par un contributeur tiers, veuillez noter que les opinions exprimées appartiennent à ce contributeur tiers et ne reflètent pas nécessairement celles de Binance Academy. Les prix des actifs numériques peuvent être volatils. La valeur de votre investissement peut baisser ou augmenter et vous pourriez ne pas récupérer le montant investi. Vous êtes seul responsable de vos décisions d’investissement et Binance Academy n’est pas responsable des pertes que vous pourriez subir. Pour plus d’informations, veuillez consulter nos Conditions d’utilisation, l’Avertissement sur les risques et les Conditions d’utilisation de Binance Academy.
