Maison > web3.0 > le corps du texte

Le concept de sharding et son fonctionnement

PHPz
Libérer: 2024-07-17 13:23:52
original
1063 Les gens l'ont consulté

La technologie Blockchain apporte un potentiel sans précédent en termes de décentralisation, de transparence et de sécurité, mais elle fait également face à l'énorme défi de l'évolutivité. L’évolutivité est l’un des trilemmes de la blockchain, les deux autres étant la sécurité et la décentralisation. Le domaine de la blockchain s'est toujours efforcé de satisfaire simultanément les trois éléments ci-dessus, et le « sharding » est une solution stratégique qui peut s'avérer utile.

Qu'est-ce que le partage ?

Le partage est un concept emprunté à la gestion de base de données traditionnelle et fait référence au processus de division d'une base de données plus grande en parties plus petites et plus gérables (appelées « fragments »). Le Sharding est utilisé dans le domaine de la blockchain pour améliorer l'évolutivité tout en conservant le principe de décentralisation. Le partage divise en fait le réseau blockchain en parties plus petites, et chaque partie fragmentée peut traiter des transactions et des contrats intelligents en parallèle.

Comment fonctionne le sharding ?

Pour comprendre comment le partitionnement est effectué dans un réseau blockchain, vous devez d'abord comprendre comment les données blockchain sont conventionnellement stockées et traitées. Il existe de nombreuses façons de traiter les données. Le traitement séquentiel et le traitement parallèle seront présentés ci-dessous.

D'une manière générale, chaque nœud blockchain est responsable du traitement de tout le volume de transactions au sein du réseau. Ce type de traitement de données est appelé « traitement séquentiel ». Autrement dit, chaque nœud doit conserver et stocker toutes les informations critiques, telles que les soldes des comptes et l'historique des transactions. Essentiellement, chaque nœud doit gérer toutes les opérations, données et transactions du réseau.

Ce mode améliore la sécurité de la blockchain en enregistrant chaque transaction sur tous les nœuds, mais il réduit également considérablement la vitesse de traitement des données. C’est là qu’intervient le traitement parallèle des données, permettant d’effectuer plusieurs opérations simultanément.

Le partage divise ou « partitionne » la charge de travail des transactions sur l'ensemble du réseau blockchain et constitue donc une solution efficace à ce dilemme. Cela signifie que tous les nœuds n’ont pas besoin de gérer ou de traiter l’intégralité de la charge de travail de la blockchain.

En revanche, le partitionnement sépare la charge de travail via une répartition horizontale. Dans ce processus, les données sont divisées en sous-ensembles horizontaux, chaque fragment agissant comme une base de données indépendante et capable de traiter les transactions séparément des autres fragments.

La division horizontale et la division verticale

La division horizontale et la division verticale sont les deux principales méthodes d'expansion de base de données. Les deux approches sont conçues pour gérer efficacement de grands ensembles de données, mais les bases de leur fonctionnement sont complètement différentes. Le partage est un moyen courant de mettre en œuvre un horizon partagé.

Les données peuvent être divisées en lignes et distribuées à différents nœuds (ou bases de données) grâce à la division horizontale. Chaque nœud (ou base de données) contient un sous-ensemble de données. Chaque ligne du tableau est une entité unique, donc des lignes séparées ne compromettent pas l'intégrité des données. Un exemple classique d’horizon partagé est la distribution de réseaux blockchain tels que Ethereum et Bitcoin.

Les données divisées verticalement sont divisées en colonnes au lieu de lignes. Chaque partition d'une division verticale contient des données pour des entités individuelles ou un sous-ensemble de l'ensemble de données complet, mais uniquement pour un ensemble spécifique d'attributs. Par exemple, une table client avec des colonnes telles que Nom, Statut, Description et Photo. Dans le cas d'une division verticale, "nom" et "statut" peuvent être stockés dans un tableau, et "description" et "photo" dans un autre tableau.

Pourquoi le fractionnement horizontal est-il plus populaire ?

Dans les réseaux blockchain, le partitionnement horizontal est généralement préféré au partitionnement vertical, principalement pour les trois raisons principales d'évolutivité, de décentralisation et de sécurité.

Évolutivité : Le partage fournit une solution en décomposant les données en « fragments » plus petits et plus gérables. Chaque fragment peut fonctionner indépendamment et traiter davantage de transactions simultanément, augmentant ainsi la vitesse et l'efficacité du réseau. La division verticale répartit les colonnes dans différentes bases de données, ce qui peut rendre plus complexe la récupération des informations complètes sur les transactions ou les blocs, limitant ainsi l'évolutivité.

Décentralisation : Conformément au concept de base de la blockchain, l'horizon partagé prend en charge la décentralisation. Si les nœuds n'ont besoin de traiter qu'une partie des données totales (un fragment), la charge de calcul et de stockage sera réduite, permettant à davantage de nœuds de participer au réseau. En revanche, le partitionnement vertical a la limitation que chaque nœud doit accéder à toutes les partitions (toutes les colonnes de données) pour comprendre et vérifier l'intégralité des données du bloc.

Sécurité et intégrité des données : Chaque fragment (ou partition) contient des données de transaction complètes pour garantir que chaque nœud contient une copie complète et précise de sa partie de la blockchain, afin que l'horizon partagé préserve l'intégrité des données. La segmentation verticale divise essentiellement les données de bloc de différents nœuds, ce qui rend difficile la garantie de l'intégrité et de la sécurité des données les plus importantes du réseau blockchain.

Quels sont les avantages du sharding ?

Les avantages potentiels que le sharding apporte à la technologie blockchain seront explorés en détail ci-dessous :

Amélioration de la vitesse des transactions : Sharding favorise le traitement parallèle des transactions. Au lieu de traiter les transactions une par une dans l'ordre, le partitionnement permet aux transactions d'être traitées simultanément sur différentes partitions. Chaque fragment fonctionne indépendamment, ce qui augmente considérablement la vitesse des transactions. Cela accélère non seulement les transactions, mais signifie également que l'ensemble du réseau peut gérer davantage d'utilisateurs, favorisant ainsi la popularité du réseau.

Ziliqa est un réseau blockchain qui utilise le partitionnement pour résoudre l'évolutivité. Grâce à ce mécanisme de partitionnement, Ziliqa peut traiter des milliers de transactions par seconde.

Minimisez les coûts de traitement et de stockage : La conception traditionnelle de la blockchain nécessite que chaque nœud stocke toutes les transactions. À mesure que la blockchain se développe, la demande de matériel augmente également. Mais avec le partitionnement, chaque nœud n'est responsable que du traitement et du stockage d'une petite partie des données de l'ensemble du réseau, ce qui réduira les ressources nécessaires aux nœuds pour participer au réseau.

Par conséquent, plus il y aura de participants qui rejoignent en tant que validateurs, plus le réseau sera décentralisé sans encourir de coûts élevés. De cette façon, le problème est atténué et non seulement les entités disposant de ressources informatiques haut de gamme coûteuses peuvent réellement participer au processus, préservant ainsi la nature démocratisée du réseau blockchain.

Améliorer les performances du réseau : Le partage contribue à améliorer les performances globales et la capacité du réseau. Dans la blockchain traditionnelle, le nombre de nœuds participant au réseau augmente de jour en jour, ce qui augmentera la communication et la synchronisation entre les nœuds, mais les performances diminueront.

Cependant, le sharding change cette situation. Étant donné que chaque fragment peut fonctionner indépendamment et en parallèle, le système peut gérer davantage de transactions et de calculs. Les nouveaux nœuds sont ajoutés uniquement aux fragments, et non à l'ensemble du réseau, augmentant ainsi la capacité d'extension du réseau. L'efficacité est améliorée et les transactions deviennent plus fluides, garantissant une meilleure expérience utilisateur.

N'oubliez pas que les développements et améliorations futurs de la technologie de sharding peuvent également apporter des avantages supplémentaires ou améliorer les avantages existants, optimisant ainsi continuellement l'écosystème blockchain.

Quelles sont les limites du sharding ?

Le partage peut aider les réseaux blockchain à devenir plus efficaces grâce à de nombreux avantages potentiels, mais il présente également un ensemble unique de défis en cours de route. Les vulnérabilités potentielles apportées par le sharding incluent :

Attaque par prise de contrôle d'un seul fragment : dans un environnement fragmenté, la puissance de calcul requise pour prendre en charge un seul fragment est bien inférieure à la puissance de calcul requise pour prendre en charge l'ensemble du réseau. Par conséquent, un seul fragment est plus vulnérable à une « attaque à 1 % » ou à une « prise de contrôle de fragment ». Il est possible pour un attaquant disposant d’un petit nombre de ressources de s’emparer d’un seul fragment plutôt que d’attaquer l’ensemble du réseau.

Transactions cross-shard : Effectuer des transactions sur différents fragments (cross-shards) présentera des défis uniques. Les transactions entre fragments sont complexes et une gestion imprudente peut entraîner des problèmes de double dépense. Au cours d'une transaction, si un fragment ne peut pas suivre avec précision l'état d'un autre fragment, les utilisateurs peuvent exploiter cette vulnérabilité pour tenter de provoquer un « problème de double dépense ».

Problèmes de disponibilité des données : Le partage rend complexe la maintenance de l'état de l'ensemble du réseau. Étant donné que les nœuds qui gèrent certaines partitions sont hors ligne, ces partitions ne sont pas disponibles en cas de besoin, ce qui peut entraîner des problèmes de disponibilité des données et perturber l'ensemble du réseau.

Sécurité du réseau : Le partage nécessite la mise en œuvre de protocoles stables pour équilibrer la charge entre les fragments. Un fonctionnement incorrect peut entraîner une distribution inégale des données ou un déséquilibre des ressources, ce qui peut entraîner une instabilité du réseau.

Synchronisation des nœuds : La synchronisation des nœuds peut entraîner des retards sur le réseau en raison du temps nécessaire au partage et à la mise à jour des informations entre les différents nœuds. De plus, si la puissance de traitement des nœuds ralentit ou si la connexion réseau est en retard, cela peut ralentir l'ensemble du processus de synchronisation, réduisant ainsi les performances globales du réseau blockchain.

Le sharding est-il implémenté sur Ethereum ?

Ethereum a prévu la mise en œuvre du sharding dans le cadre de la mise à niveau Ethereum 2.0. Ethereum 2.0, également connu sous le nom de « Eth2 » ou « Quiet Phase », est une mise à niveau de la blockchain Ethereum conçue pour augmenter la vitesse, l'efficacité et l'évolutivité du réseau, augmentant ainsi la capacité de gérer davantage de transactions et réduisant la congestion.

Pour l'instant, la mise à niveau est mise en œuvre par phases, la phase finale (phase 2) incluant la mise en œuvre complète du sharding. Les développeurs d'Ethereum espèrent que la mise à niveau répondra aux défis rencontrés par le réseau actuel, tels que l'évolutivité et les coûts de transaction.

Mais il convient de noter que la mise en œuvre du sharding est intrinsèquement difficile, notamment en ce qui concerne le maintien de la sécurité du réseau et la décentralisation. Par conséquent, les développeurs d’Ethereum ont soigneusement examiné et effectué des tests approfondis sur cette transition pour garantir que la mise à niveau réussira une fois entièrement mise en œuvre.

Conclusion

Dans l'ensemble, le sharding représente un progrès significatif dans la résolution du problème du paradoxe ternaire de la blockchain. Le partage apporte de nouvelles complexités et des lacunes potentielles, mais il devrait améliorer l'évolutivité sans affecter la décentralisation, rendant le développement futur des réseaux blockchain plein d'espoir sans fin.

C’est sans aucun doute la raison pour laquelle de nombreuses blockchains explorent le sharding comme solution potentielle. Ethereum intègre le partitionnement dans le cadre de la mise à niveau Ethereum 2.0 pour résoudre les problèmes d'évolutivité. La mise en œuvre du partage devrait avoir lieu via la mise à niveau de Cancun, un élément clé du plan global de mise à niveau. Néanmoins, comme pour d’autres technologies en évolution, le succès de la mise en œuvre du sharding sera déterminé par des facteurs tels que la poursuite de la recherche et du développement et des tests rigoureux.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:binance.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!