Sharding - KamilTaylan.blog
18 avril 2021 12:13

Sharding

Qu’est-ce que le sharding?

Le sharding est une technique de partitionnement de base de données utilisée par les entreprises blockchain dans un but d’évolutivité, leur permettant de traiter plus de transactions par seconde. Le partage divise tout le réseau d’une société de blockchain en partitions plus petites, appelées «fragments». Chaque fragment est composé de ses propres données, ce qui le rend distinctif et indépendant par rapport aux autres fragments.

Le partage peut aider à réduire la latence ou la lenteur d’un réseau car il divise un réseau blockchain en fragments séparés. Cependant, il existe des problèmes de sécurité concernant le sharding dans lequel les fragments peuvent être attaqués.

Points clés à retenir

  • Le sharding est une technique de partitionnement de base de données envisagée par les réseaux blockchain et testée par Ethereum.
  • Plus les réseaux blockchain prennent d’utilisateurs, plus le réseau devient lent, ce qui entraîne une latence importante.
  • Le partage peut améliorer la latence du réseau en divisant un réseau blockchain en fragments séparés, chacun avec ses propres données, séparés des autres fragments.
  • Les problèmes de sécurité liés au sharding incluent un piratage ou une prise de contrôle de partition, où une partition en attaque une autre, entraînant une perte d’informations.

Comprendre le partage

Les réseaux de chaînes de blocs et leurs cryptomonnaies respectives gagnent en popularité en raison de l’application généralisée de la technologie, qui comprend la gestion de la chaîne d’approvisionnement et les transactions financières. À mesure que la popularité de la blockchain augmente, la charge de travail et le volume transactionnel gérés par le réseau augmentent également. Si nous considérons une blockchain comme une base de données partagée, au fur et à mesure que de plus en plus de données sont ajoutées, le réseau doit trouver de nouvelles façons de pouvoir traiter toutes ces données de manière efficace et rapide, et c’est là que le sharding peut aider.

Grand livre distribué

Le grand livre distribué de la technologie blockchain le rend attrayant car il permet aux transactions d’être partagées de manière consensuelle sur plusieurs sites et zones géographiques. Au fur et à mesure que les transactions sont enregistrées, des copies sont envoyées au réseau partagé en quelques secondes, créant des «témoins» publics. Si une partie du réseau est victime d’une fraude ou d’une attaque malveillante, les participants du réseau partagé peuvent identifier ce qui a été modifié par les fraudeurs puisqu’ils conservent tous une copie des transactions du grand livre. En conséquence, la technologie de la blockchain et son système de registre distribué peuvent aider à réduire la fraude et à limiter les dommages causés par les cyberattaques, comme un piratage.

Évolutivité

Cependant, l’un des principaux défis de la technologie blockchain est qu’au fur et à mesure que des ordinateurs supplémentaires sont ajoutés au réseau et que davantage de transactions sont traitées, le réseau peut s’enliser, ralentissant le processus, appelé latence. La latence est un obstacle à l’adoption de la blockchain pour une utilisation généralisée, en particulier par rapport aux systèmes de paiement électronique actuels qui fonctionnent rapidement et efficacement. En d’autres termes, l’ évolutivité est un défi pour la blockchain, car les réseaux peuvent ne pas être en mesure de gérer les quantités croissantes de données et de flux de transactions alors que de plus en plus d’industries adoptent la technologie.

L’une des solutions envisagées pour créer une évolutivité sans latence est le processus de partitionnement. Le partage est conçu pour répartir la charge de travail d’un réseau en partitions, ce qui peut aider à réduire la latence et permettre le traitement d’un plus grand nombre de transactions par la blockchain.



Les trois traits que les réseaux blockchain cherchent à utiliser sont la décentralisation, l’évolutivité et la sécurité.

Comment le sharding est-il réalisé?

Avant d’explorer comment le sharding est accompli au sein d’un réseau blockchain, il est important d’examiner comment les données sont actuellement stockées et traitées.

Nœuds de blockchain

Actuellement, dans la blockchain, chaque nœud d’un réseau doit traiter ou gérer tous les volumes de transaction au sein du réseau. Les nœuds d’une blockchain sont indépendants et sont responsables de la maintenance et du stockage de toutes les données au sein d’un réseau décentralisé. En d’autres termes, chaque nœud doit stocker des informations critiques, telles que les soldes de compte et l’historique des transactions. Les réseaux blockchain ont été établis de sorte que chaque nœud doit traiter toutes les opérations, données et transactions sur le réseau.

Bien qu’il assure la sécurité d’une blockchain en stockant chaque transaction dans tous les nœuds, ce modèle ralentit considérablement le traitement des transactions. La lenteur du traitement des transactions n’est pas de bon augure pour un avenir dans lequel la blockchain deviendra responsable de millions de transactions.

Le partage peut aider car il partitionne ou répartit la charge de travail transactionnelle à partir d’un réseau blockchain afin que chaque nœud n’ait pas besoin de gérer ou de traiter toute la charge de travail de la blockchain. D’une certaine manière, le sharding compartimente la charge de travail en partitions ou en fragments.

Partitionnement horizontal

Le partage peut être effectué par le partitionnement horizontal des bases de données par division en lignes. Les fragments, comme les lignes sont appelées, sont conceptualisés en fonction de caractéristiques. Par exemple, une partition peut être chargée de stocker l’état et l’historique des transactions pour un type d’adresse spécifique. En outre, il peut être possible de diviser les fragments en fonction du type d’actif numérique qui y est stocké. Les transactions impliquant cet actif numérique pourraient être rendues possibles grâce à une combinaison de fragments.

À titre d’exemple, considérons une transaction immobilière locative dans laquelle plusieurs fragments sont impliqués. Ces fragments correspondent aux différentes entités impliquées dans la transaction, du nom du client aux clés numériques configurées dans une serrure intelligente mise à disposition du locataire lors du paiement du loyer.

Partage de fragments

Chaque fragment peut toujours être partagé entre les autres fragments, ce qui conserve un aspect clé de la technologie de la blockchain: le registre décentralisé. En d’autres termes, le grand livre est toujours accessible à chaque utilisateur, ce qui lui permet de visualiser toutes les transactions du grand livre.

Partage et sécurité

L’un des principaux problèmes de la pratique qui a surgi est la sécurité. Bien que chaque fragment soit séparé et ne traite que ses propres données, il existe un problème de sécurité concernant la corruption des fragments, où un fragment prend le contrôle d’un autre fragment, entraînant une perte d’informations ou de données.

Si nous considérons chaque fragment comme son propre réseau de blockchain avec ses utilisateurs et ses données authentifiés, un pirate informatique ou via une cyberattaque pourrait prendre le contrôle d’un fragment. L’attaquant pourrait alors introduire de fausses transactions ou un programme malveillant.

Ethereum, l’une des sociétés de blockchain les plus importantes, est en première ligne pour tester le partitionnement en tant que solution possible aux problèmes de latence et d’évolutivité. Ethereum a combattu le potentiel d’une attaque par fragments en attribuant au hasard des nœuds à certains fragments et en les réaffectant constamment à des intervalles aléatoires. Cet échantillonnage aléatoire rendrait difficile pour les pirates de savoir quand et où corrompre un fragment.

En outre, il est important de noter que le sharding en est encore à la phase de test précoce de son utilisation pour les réseaux blockchain. En conséquence, tous les problèmes et défis potentiels doivent encore être résolus.