Maison > développement back-end > Golang > Améliorer le réseau Bitcoin avec Utreexo

Améliorer le réseau Bitcoin avec Utreexo

WBOY
Libérer: 2024-07-30 08:03:14
original
981 Les gens l'ont consulté

Improving the Bitcoin network using Utreexo

Le monde devient de plus en plus numérique de jour en jour et de plus en plus d'aspects de nos vies sont devenus de plus en plus intangibles. La monnaie n’a pas été laissée de côté, de l’argent liquide aux systèmes sans numéraire et maintenant aux crypto-monnaies. Depuis la création du premier bloc de Bitcoin en 2009, son adoption s'est développée très rapidement et avec une plus grande adoption s'ajoute plus de stabilité et de confiance dans le réseau, ce qui ne fera qu'augmenter son adoption.

Tout d’abord, qu’est-ce que Bitcoin et comment fonctionne Bitcoin ?

Bitcoin est une monnaie numérique de réseau peer to peer décentralisée créée en 2008 par une entité pseudo anonyme nommée Satoshi Nakamoto. Le réseau Bitcoin est un réseau composé d'ordinateurs, également appelés nœuds, qui sont interconnectés les uns aux autres et aident à propager et à valider les transactions sur l'ensemble du réseau. Ce réseau utilise la monnaie numérique Bitcoin (BTC). Ces transactions sont stockées sur un registre public décentralisé qui utilise la technologie blockchain.
La blockchain Bitcoin est composée de blocs qui sont liés à chaque bloc précédent, à l’exception du premier bloc également appelé bloc Genesis qui n’est connecté à aucun bloc précédent. Les blocs sont constitués de plusieurs transactions qui ont été validées et soigneusement ajoutées à un bloc par les mineurs, avant d'effectuer le processus de minage. Une transaction est essentiellement un transfert de valeur entre des portefeuilles Bitcoin. Les mineurs sont chargés d'effectuer les travaux majeurs sur le réseau qui confirment ou « extraient » de nouveaux blocs et les ajoutent à la blockchain.
Il existe plusieurs ressources disponibles en ligne pour en savoir plus sur Bitcoin. Ces ressources donnent plus de détails sur le fonctionnement du bitcoin.
Malgré les avantages du Bitcoin, l’évolutivité a toujours été un problème majeur. Les blocs Bitcoin sont limités à une taille de 1 Mo, avec un bloc extrait toutes les 10 minutes environ. Cela porte la taille actuelle de la blockchain Bitcoin à environ 580 Go au moment d'écrire ces lignes, soit une augmentation d'environ 18 % par rapport à l'année dernière. Pour que les nœuds complets rejoignent la blockchain et vérifient les réseaux, ils doivent télécharger l'intégralité de la blockchain et commencer à effectuer une validation sur tous les anciens blocs et sur les blocs nouvellement ajoutés. Cette taille est garantie de continuer à croître de jour en jour et, à un moment donné, elle pourrait devenir trop grande, à tel point qu'elle dissuade certains utilisateurs normaux de rejoindre le réseau en raison de ses contraintes de ressources.
Outre la taille de la blockchain, les nœuds vérifient et stockent également l'état actuel du réseau. Cet état est l'ensemble de sortie de transaction non dépensé (UTXO) actuel, qui est relativement beaucoup plus petit que l'ensemble de la blockchain. Cependant, cet état est également assuré de continuer à croître rapidement à mesure que de plus en plus d'utilisateurs effectuent davantage de transactions sur le réseau. Cet ensemble est l'ensemble de toutes les sorties de transactions non dépensées dans le réseau.

Alors, qu’est-ce qu’Utreexo ?

Utreexo introduit un accumulateur dynamique basé sur le hachage qui permet de réduire considérablement la taille de l'état actuel. Il permet aux nœuds de vérifier entièrement les entrées d'une transaction sans connaître l'état complet du système. Pour ce faire, il permet au propriétaire des fonds de conserver une preuve que les fonds existent réellement, et il présente ensuite ces fonds lorsqu'il est sur le point de dépenser les fonds.
Utreexo introduit un nouveau type de nœud appelé Compact State Node. Ces nœuds stockent uniquement une représentation cumulative de l’état. Pour que ces nœuds puissent vérifier les transactions, ils ont besoin d'une preuve d'inclusion. Cette preuve est fournie par la transaction de dépense lorsqu'ils sont sur le point de dépenser certains intrants.

Comment Utreexo améliore-t-il le réseau Bitcoin ?

Comme vu ci-dessus, Utreexo permet de représenter l'état du réseau Bitcoin comme un accumulateur dynamique, ces accumulateurs ne font que quelques kilo-octets, par opposition à l'état actuel du Bitcoin, qui fait plus de 5 Go.
Pour comprendre le fonctionnement d'Utreexo, nous devons d'abord comprendre ce qu'est un accumulateur cryptographique et comment il fonctionne. Un accumulateur cryptographique nous permet d'interroger un ensemble sans stocker ni révéler tous les membres de l'ensemble. Cette approche de construction d'accumulateur fonctionne très bien pour l'ensemble Bitcoins UXTO car pour chaque transaction, nous aimerions demander si les TXO dépensés sont effectivement membres de l'ensemble UTXO, et sinon, rejeter la transaction.
Lorsqu'ils rejoignent le réseau, les nœuds réguliers doivent télécharger l'intégralité de l'historique de la blockchain, qui dépasse 580 Go, vérifier les transactions et créer leur propre copie de l'ensemble UTXO. Ils doivent ensuite vérifier tous les changements d’état touchant le nœud. Tous ces processus sont des opérations gourmandes en ressources, qui limitent ainsi le nombre de participants au réseau, ce qui limite ensuite l'évolutivité.
Ce processus de synchronisation initiale, également connu sous le nom de téléchargement du bloc initial (IBD), peut prendre beaucoup de temps, en fonction de la connexion Internet et des ressources matérielles. L'un des principaux facteurs affectant la vitesse de cette opération IBD est le type de disque de stockage utilisé et la vitesse des opérations d'E/S, en particulier la capacité d'effectuer rapidement des lectures à accès aléatoire. C'est pourquoi les ordinateurs utilisant un disque SSD, qui a normalement des temps de lecture par accès aléatoire bien supérieurs, peuvent utiliser plus de 30 fois moins de temps pour vérifier les transactions, par rapport aux ordinateurs équipés d'un disque dur.
Avec Utreexo, le type de disque utilisé ne ferait pas une si grande différence, car nous verrons juste une légère différence de performances entre les ordinateurs SSD et les ordinateurs HDD
Utreexo introduit un accumulateur dynamique basé sur le hachage sans aucune exigence de configuration ou de gestionnaire fiable. Comme mentionné ci-dessus, les accumulateurs sont des représentations compactes d’un ensemble, auxquelles des éléments peuvent être ajoutés et prouvés. Un accumulateur Utreexo utilise une forêt d'arbres Merkle parfaits qui permettent une suppression efficace des éléments de l'accumulateur, réduisant ainsi le nombre total de feuilles dans la forêt lorsque des suppressions se produisent.
Les ajouts sont calculables sans aucune donnée au-delà de l'accumulateur et de l'élément à ajouter, et les suppressions sont calculables avec une preuve d'inclusion des données à supprimer.
La conception de l’accumulateur est une forêt d’arbres de hachage binaires parfaits. La représentation de l'accumulateur qui doit être stocké comprend : le nombre d'éléments stockés, et la racine de chaque arbre de la forêt.
La structure logique de l’arbre binaire parfait dépasse le cadre de cet article car il ne s’agit que d’un article d’introduction. Cependant, l'article complet d'Utreexo peut être trouvé ici.

Conclusion

L'accumulateur basé sur le hachage Utreexo vise à réduire la taille de l'état Bitcoin à seulement quelques kilo-octets, permettant à pratiquement n'importe quel appareil de rejoindre le réseau Bitcoin et de commencer à vérifier les transactions sans avoir besoin de matériel coûteux et haut de gamme. Cela augmentera considérablement l'évolutivité du réseau Bitcoin, car la taille de l'accumulateur augmente très lentement (Onlogn) en termes de complexité spatiale.

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:dev.to
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