Vous savez peut-être également qu'un facteur très important limitant l'application actuelle à grande échelle de la technologie blockchain est la performance. C'est également l'une des raisons pour lesquelles de nombreux praticiens traditionnels de l'Internet ne sont pas optimistes quant à la technologie blockchain.
Alors, comment résoudre le problème de performances de la blockchain ? L'une des solutions est la technologie Sharding.
01
Qu'est-ce que le sharding ?
Le partage est une forme de partitionnement de base de données, également appelé partitionnement horizontal, qui divise une grande base de données en de nombreuses petites parties traitables, améliorant ainsi les performances et raccourcissant le temps de réponse.
Le partage n'est pas un concept nouveau. Il est apparu dans la gestion de bases de données centralisées traditionnelles dès la fin des années 1990. Ce concept est devenu populaire grâce à Ultima Online, un jeu de rôle joué par plusieurs joueurs simultanément en ligne.
Dans ce jeu, les développeurs assignent les joueurs à différents serveurs pour réduire la pression du trafic (cela signifie qu'il existe de nombreux « mondes de jeu » parallèles). Sur le plan commercial, un cas de partitionnement courant consiste à diviser la base de données d'informations utilisateur en fonction de l'emplacement géographique, à regrouper les informations utilisateur dans la même zone et à les stocker sur un serveur distinct.
02
Qu'est-ce que le sharding dans le domaine de la blockchain ?
La blockchain équivaut à une base de données, et chaque nœud équivaut à un serveur indépendant. Dans des circonstances normales, un seul de ces nœuds à la fois peut obtenir le droit d'enregistrer et de produire des blocs. Les nœuds restants qui n'ont pas obtenu le droit de produire des blocs équivaut à effectuer un « travail inutile » et à gaspiller de la puissance de calcul.
Si la technologie de sharding est appliquée à la blockchain, cela équivaut à décomposer toutes les tâches en attente dans le réseau blockchain (telles que la confirmation des transactions, l'exécution de DApps, etc.), et les nœuds de l'ensemble du réseau sont également regroupés, chacun Le groupe traite une tâche décomposée (telle que 150 transactions à confirmer) en même temps, de sorte que le nœud unique d'origine gère toutes les tâches de l'ensemble du réseau et devienne plusieurs groupes de nœuds traitant en parallèle en même temps.
Par exemple, supposons qu'il y ait actuellement 8 000 nœuds (mineurs) sur Ethereum, et qu'il y ait 15 000 transactions à confirmer sur l'ensemble du réseau. Ethereum peut traiter 7 à 15 transactions par seconde. Dans des circonstances normales, le traitement de ces transactions en attente prend au moins 1 000 secondes. Bien entendu, de nouvelles transactions à confirmer seront générées au cours du traitement.
Si la technologie de partitionnement est utilisée pour diviser 8 000 nœuds en 100 groupes, chaque groupe comporte 80 nœuds, et ces 15 000 transactions en attente sont divisées en 100 partitions, chacune avec 150 transactions, alors chaque groupe de nœuds (80) peut être traité en parallèle Traitez les transactions en attente (150 transactions) dans leurs partitions respectives, afin que les 15 000 transactions en attente puissent être traitées en seulement 10 secondes.
À partir de cet exemple, nous pouvons voir que la technologie de sharding peut grandement améliorer les performances de la blockchain.
03
Risques potentiels de la technologie de sharding
Alors, y a-t-il des défauts dans la technologie de sharding ? La réponse est oui.
Bien que la technologie de sharding puisse résoudre dans une certaine mesure les problèmes de performances de la blockchain et rendre la blockchain plus évolutive, elle présente également deux défauts.
Le premier est le problème de communication dans différentes zones après le cloisonnement. L'exemple ci-dessus divise le réseau Ethereum en 100 partitions. Chaque partition est indépendante, ce qui équivaut à 100 blockchains Ethereum indépendantes et parallèles, chacune étant gérée par un groupe de mineurs (80 nœuds).
Ces 100 blockchains Ethereum indépendantes ne peuvent pas communiquer entre elles. Si elles veulent communiquer, il est nécessaire d'ajouter un mécanisme de communication cross-partition (similaire au cross-chain), ce qui augmentera la complexité de la blockchain et augmentera la difficulté. de développement.
Le deuxième est la sécurité de la blockchain. Toujours avec l'exemple ci-dessus, avant le sharding, le réseau Ethereum avait une puissance de calcul de 8 000 nœuds. Après avoir été divisé en 100 partitions, chaque partition équivaut à une blockchain Ethereum indépendante, et la puissance de calcul est tombée à 80 La puissance de calcul composée de. nœuds.
À l'heure actuelle, il est beaucoup plus facile de mener une attaque à 51 % de puissance de calcul sur l'une des partitions. En contrôlant une partition, un attaquant peut faire du mal dans cette partition et falsifier les transactions.
La Fondation Ethereum prévoit d'utiliser la technologie de partage comme l'une des mises à niveau d'Ethereum 2.0. Nous attendrons de voir comment Ethereum résout les 2 défauts ci-dessus de la technologie de sharding.
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!