Qu’est-ce que le sharding ? Une explication simple

Qu’est-ce que le sharding ? Une explication simple

✔️ Le terme « sharding » désigne un morceau ou une petite partie d’un ensemble.

✔️ Le sharding date des années 1990

✔️ Le sharding est conçu pour rendre une base de données plus rapide.

✔️ Le sharding sur une blockchain est principalement destiné à être rapide et bon marché.

✔️ Ethereum a trouvé sa propre solution au problème de l’extensibilité.

Vous avez probablement entendu parler du sharding, mais ce qu’il implique est une autre affaire. Après avoir lu ce blog, vous saurez exactement de quoi il s’agit.

Table des matières

  1. Qu’est-ce que le sharding ?

  2. Comment fonctionne le sharding sur une blockchain ?

  3. But du sharding

  4. Formes de sharding

  5. Danksharding en détail

  6. Les points forts du sharding

  7. Faiblesses du sharding

  8. Exemples de blockchains utilisant le sharding

  9. Sharding comparé à d’autres solutions

  10. L’avenir du sharding

Qu’est-ce que le sharding ?

Sharding est un terme datant des années 1990. Vous pouvez le traduire par « petite partie d’un tout ». Il fallait résoudre toutes sortes de problèmes liés aux bases de données sur les ordinateurs et dans les réseaux. On a même prédit qu’il n’y aurait pas d’avenir pour les bases de données distribuées avec du matériel spécialisé.

Comme nous pouvons le voir avec la blockchain, ils avaient complètement tort ! Mais encore une fois, il est plus difficile de prédire l’avenir que de se contenter d’être négatif.

D’énormes progrès ont été réalisés depuis lors, tant au niveau du matériel que des logiciels et des techniques de base de données.

En 1997, le terme shard est également apparu dans un jeu populaire appelé Ultima Online. Chaque joueur se retrouvait dans sa propre partie du monde virtuel, ce que l’on peut appeler à juste titre un tesson. Le jeu existe toujours et a depuis obtenu 8 records du monde Guinness.

Le sharding est une technique de gestion de base de données dans laquelle une base de données croissante est divisée en partitions ou portions plus petites et plus faciles à gérer. Une telle petite partition est appelée « shard ».

L’idée est de stocker ces portions sur des machines différentes en tant que fragments indépendants.

Une base de données se compose de lignes et de colonnes. Dans le partage de base de données, vous procédez à un partitionnement horizontal, en divisant une base de données plus importante en sections plus petites, dans le but de faciliter et d’accélérer la gestion de la base de données.

Le partage est généralement utilisé lorsqu’un ensemble de données devient trop volumineux pour être stocké dans une seule base de données. Si une base de données devient trop volumineuse, une interrogation habituelle d’une base de données, pour laquelle elle est bien sûr partiellement conçue, peut prendre trop de temps ou coûter trop cher. La solution consiste alors à créer un groupe de données (shard), ce qui permet d’éviter l’utilisation d’un matériel coûteux et d’assurer un temps de réponse acceptable pour les requêtes. Un ensemble logique de données est alors divisé en plusieurs petites parties de cette base de données globale.

Le sharding est donc une mise à l’échelle horizontale. Avec cette technique, des appareils supplémentaires sont ajoutés, ce qui permet de répartir la charge de travail. Lorsque vous procédez à une mise à l’échelle verticale, vous ajoutez de la puissance de traitement aux dispositifs existants. Cette dernière technique ne peut pas être appliquée indéfiniment. Par conséquent, lorsque les appareils ne peuvent plus tout traiter ou qu’ils deviennent trop chers, vous pouvez commencer à penser à la répartition, comme dans l’échelonnement horizontal. Ce qui était fait par un appareil peut alors être réparti sur plusieurs appareils. En théorie, le sharding vous permet d’évoluer à l’infini, car il vous suffit d’ajouter de plus en plus d’appareils qui se répartissent le travail.

Le partage signifie également que les périphériques individuels n’ont pas à rechercher dans l’ensemble de la base de données. Ils se trouvent dans une petite partition, responsable d’une partie spécifique de la base de données globale, et sont donc prêts beaucoup plus rapidement lorsqu’une requête se présente pour leur base de données, ou qu’une transaction doit être traitée pour laquelle leur partition est responsable. C’est évidemment beaucoup plus rapide, en particulier dans les bases de données de plus en plus grandes, pour lesquelles les blockchains sont connues.

En fait, une bonne représentation visuelle du sharding est une file d’attente. Supposons que tout le monde aux Pays-Bas doive aller chercher une nouvelle carte d’identité à une certaine date. Vous ne pouvez évidemment pas faire attendre ces millions de personnes devant un guichet à Utrecht ou ailleurs. Si vous n’ouvrez qu’un deuxième guichet, la file d’attente est déjà réduite de moitié. C’est là toute la puissance du sharding. Chaque guichet supplémentaire que vous ouvrez réduit la file d’attente. L’objectif du sharding est donc clair dans ce cas : augmenter le débit en ouvrant plus de guichets.

Ligne d'attente

Comment fonctionne le sharding sur une blockchain ?

Un shard est responsable d’une partie de la base de données totale. Une blockchain consiste en une base de données gérée par de nombreux ordinateurs. C’est ce qu’on appelle une base de données distribuée. Si tous les nœuds, validateurs ou mineurs doivent assurer le suivi de l’ensemble de la base de données, ils risquent d’être soumis à une forte pression, en particulier dans le cas de bases de données volumineuses, comme celle d’Ethereum et de ses contrats intelligents très répandus. En divisant la base de données en partitions ou en portions, les différents validateurs ou nœuds ne doivent suivre qu’une partie de la base de données et sont donc beaucoup plus rapides. La communication entre les nœuds est donc considérablement réduite.

L’un des problèmes de la blockchain est son évolutivité. Au début d’une blockchain, la base de données n’est pas très grande, mais avec chaque nouveau bloc ajouté, la base de données est plus grande. Au fil du temps, les sauvegardes de la base de données peuvent commencer à poser des problèmes. Les réseaux particulièrement populaires comme Bitcoin et Ethereum ont des problèmes d’évolutivité. Des taux de traitement aussi bas que 20 par seconde ne sont plus réalistes lorsqu’un grand nombre de personnes utilisent un réseau. Vous ne pouvez pas faire attendre les gens indéfiniment pour la validation de leur transaction. En outre, les mineurs ou les nœuds tentent souvent de tirer parti de la congestion du réseau en faisant payer le plus cher possible la validation.

L’un des moyens de résoudre ce problème est le processus de partage (sharding). Dans ce processus, il est possible d’effectuer un très grand nombre de transactions sur une blockchain par seconde si cela est fait correctement. Nous parlons de chiffres supérieurs à 100 000 par seconde.

Une fois que la disposition des tessons est connue, ces tessons doivent commencer à faire ce qu’ils font normalement. tous doivent faire : vérifier une transaction dans leur rayon d’action. Un exemple serait qu’ils valident toutes les transactions avec un hachage commençant par un 1.
commençant par un 1. Ensuite, tous les membres de ce shard devront se mettre d’accord selon un protocole de consensus de ce shard, puis rassembler les transactions approuvées dans un nouveau bloc à former.
protocole de consensus de ce shard et rassembler les transactions approuvées dans un nouveau bloc à former. Ceux-ci deviennent alors partie intégrante de la blockchain. Étant donné que la base de données reste relativement petite par shard, ces types de réseaux blockchain sont beaucoup plus rapides que les blockchains traditionnelles telles que Bitcoin, par exemple.

L’un des problèmes de la blockchain est le trilemme, tel que proposé par Vitalik Buterin d’Ethereum. Une blockchain doit être décentralisée, sécurisée et évolutive. Sur ce dernier point, le sharding vise à apporter une contribution significative en partitionnant une base de données en petits morceaux qui sont beaucoup plus faciles et moins coûteux à traiter et beaucoup plus rapides. En théorie, une base de données partagée est extensible à l’infini.

Si vous voulez partitionner une base de données, il y a plusieurs façons de le faire. Vous pouvez diviser la base de données par alphabet, par numéro, par hachage ou autre. L’idée est alors qu’un morceau n’est responsable que de cette partie particulière de la base de données.

Partage des objectifs

  • Augmenter l’évolutivité

  • Réduire les coûts de transaction

  • Diviser la charge de travail en plus petites partitions

  • Augmenter le temps de réponse des requêtes par base de données

  • Augmenter la puissance de calcul d’un réseau en ajoutant des machines supplémentaires

  • Utiliser des machines moins chères pour la validation ou l’interrogation

Formes de sharding

  1. La répartition des données. Il s’agit simplement d’une classification par alphabet, par exemple.

  2. Hash sharding. La base de données est partitionnée sur la base d’un hachage.

  3. Répartition par plage. Il s’agit d’une répartition basée sur une plage, par exemple, tout ce qui commence par la lettre a à f.

  4. Partage en réseau. Le réseau est divisé en groupes de consensus qui vérifient ensemble une partie de tous les blocs sur une base aléatoire.

  5. Regroupement des transactions. Ici, une partie de la charge de travail est attribuée à un shard sur la base d’un identifiant de transaction, par exemple toutes les transactions commençant par 1 sont dans le shard 1. Un risque plausible est celui de la double dépense, ce qui fait que cette solution ne deviendra probablement pas populaire de sitôt.

  6. Mise en commun des états. Ici, un nœud a une vue partielle d’un composant du système entier. La validation et l’approbation d’une transaction peuvent nécessiter plusieurs tables, et donc plusieurs niveaux. Ethereum y travaille depuis un certain temps et figurait même sur sa feuille de route, mais il a décidé d’aller de l’avant avec les rollups de couche 2 pour faire évoluer Ethereum et le rendre moins cher. Cela permet également de simplifier le consensus sur Ethereum et de ne pas avoir besoin de bases de données partagées.

  7. Danksharding. C’est la voie actuelle d’Ethereum, qui vise à obtenir à terme un débit de plus de 100 000 transactions par seconde au cours le plus bas possible.

Danksharding en détail

Parce qu’Ethereum est un réseau si important, nous allons entrer un peu plus dans les détails de leur stratégie.

L’objectif de Danksharding est de faire d’Ethereum une blockchain réellement évolutive. Cependant, des étapes intermédiaires sont encore nécessaires.

L’une de ces étapes intermédiaires est Proto-Danksharding. Le nom vient de deux chercheurs nommés Protolambda et Dankrad Feist. L’objectif de cette proposition Ethereum est d’ajouter des données moins chères aux blocs de la blockchain.

Les rollups doivent maintenant envoyer leurs données à tous les nœuds du réseau Ethereum, et ces données y restent pour toujours.

Danksharding introduit des blobs de données qui peuvent être attachés à des blocs qui ne peuvent pas être ramassés par la machine virtuelle Ethereum et qui sont automatiquement supprimés après un certain temps.

Un rollup se compose de deux parties : les données et la vérification du prouveur. Le prouveur doit vérifier si le récapitulatif est correct. Ce dernier n’a donc pas besoin de rester éternellement sur la MVE.

Complet Danksharding n’est en fait pas du tout un sharding. Les véritables chaînes de tessons ne figurent plus sur la feuille de route d’Ethereum, car Danksharding est une solution simple et efficace.

Danksharding est la pleine réalisation de la mise à l’échelle du rollup qui a commencé avec Proto-Danksharding. Avec Danksharding, il y aura beaucoup d’espace sur Ethereum pour que les rollups puissent y déverser leurs données de transaction compressées.
pour que les rollups puissent y déverser leurs données de transaction compressées. Cela permettra à Ethereum de prendre en charge des centaines de rollups individuels et, à terme, d’atteindre des millions de transactions par seconde.

Normalement, je dirais : « Les paroles ne coûtent pas cher ! »

Mais oui, quand Vitalik le dit, je suis un peu plus modéré dans mes déclarations. Son réseau et son succès parlent d’eux-mêmes. S’ils réussissent, cela pourrait devenir la blockchain la plus rapide du monde des crypto-monnaies. C’est un peu différent que de payer 50 dollars pour une transaction et d’attendre deux heures pour la réaliser !

Ils vont le faire en ajoutant non pas un blob, comme dans la partie proto, mais 64 blobs à un bloc. Avant que vous ne vous en rendiez compte, vous aurez un
film effrayant ! Enfin, effrayant. Plutôt drôle.

Il faudra encore attendre quelques années avant que le Danksharding ne soit complet.
mais après une véritable cérémonie d’invocation, la magie d’Ethereum aura une autre partie sous la forme de Proto-Danksharding qui s’apparente à de la sorcellerie, bien que vous ne puissiez pas appeler cette partie un shard.

Les points forts du sharding

  1. Si un serveur tombe en panne, tous les autres continuent de fonctionner. Si vous avez tout sur un seul serveur et qu’il tombe en panne, tout votre réseau n’est plus accessible ! Avec la blockchain, d’ailleurs, c’est rare étant donné leur base de données distribuée.

  2. Le sharding permet de réduire la taille des bases de données.

  3. Le sharding rend un réseau blockchain moins cher.

  4. La gestion d’une base de données est facilitée par le sharding.

  5. Le partage de la charge de travail peut faciliter les opérations complexes.

  6. La blockchain est plus rapide.

  7. Vous pouvez utiliser du matériel moins cher.

Faiblesses du sharding

  1. La mise en œuvre du sharding peut s’avérer une tâche très complexe et chronophage.

  2. Lors de l’introduction du sharding, des données de la base de données peuvent être perdues ou la base de données peut être corrompue.

  3. Les données se trouvent dans toutes sortes d’endroits, ce qui fait qu’il est parfois difficile de distinguer le bois de l’arbre.

  4. La congestion peut toujours se produire si un groupe particulier reçoit beaucoup plus de travail que les autres.

  5. La sécurité de la blockchain ou d’un shard peut être compromise.

  6. Si vous souhaitez vous débarrasser à nouveau du sharding, cela peut représenter un travail énorme pour que la base de données soit à nouveau correcte.

  7. Vous avez besoin de plus de matériel et de logiciels.

  8. Si les disques dépendent les uns des autres, un seul disque corrompu peut entraîner l’effondrement de l’ensemble de la base de données.

Exemples de blockchains utilisant le sharding

  • Zilliqa

  • Ontologie

  • Polkadot

  • Près de

  • Elrond

  • QuarkChain

Sharding comparé à d’autres solutions

L’objectif du sharding est d’augmenter l’évolutivité. Pour ce faire, on crée des îlots qui ne suivent qu’une petite partie de la blockchain. Ces îlots n’exigent généralement pas que vous communiquiez avec d’autres îlots.

Si l’on compare cette solution à d’autres, telles que les roll ups,
sidechains ou le Lightning Network de Bitcoin, on remarque que si ces solutions permettent à un réseau d’être plus évolutif, il doit toujours communiquer avec la blockchain principale, de sorte qu’il peut toujours être surchargé.

L’avantage du sharding est que vous pouvez en fait augmenter l’échelle à l’infini. Si vous travaillez d’abord avec des compartiments qui traitent, par exemple, toutes les transactions commençant par 1, vous pouvez créer une autre subdivision composée des deux premiers chiffres, et ainsi de suite, en rendant les compartiments de plus en plus petits par rapport à l’ensemble de la base de données.

L’avenir du sharding

Le sharding est un moyen prometteur et pratique d’augmenter considérablement l’évolutivité d’une blockchain. La réduction des coûts est également un élément important de cette stratégie.

Cependant, la difficulté de sa mise en œuvre peut également freiner la croissance du sharding en tant qu’application.

Quiconque a examiné les inconvénients du sharding et les a comparés à la solution d’Ethereum peut commencer à douter de l’efficacité du sharding.

Cependant, lorsque vous voyez qu’il faudra des années même aux super-héros d’Ethereum pour bricoler quelque chose comme cela, il y a peut-être quelque chose à dire en faveur du sharding.

Ce qui est indéniable, cependant, c’est le fait qu’une blockchain qui utilise le sharding est beaucoup moins chère et plus rapide que la blockchain traditionnelle. C’est une très bonne nouvelle pour les utilisateurs ordinaires.

Retrouver nos meilleurs guides sur les crypto monnaies, les nft, ainsi que notre article sur comment acheter des bitcoins avec votre carte bleue

A Lire aussi :   Acheter un bien immobilier dans le métaverse