Maison > web3.0 > le corps du texte

La synchronisation complète des nœuds Bitcoin est trop lente ? Mécanisme SPV capable de vérifier les paiements sans utiliser de nœud complet

DDD
Libérer: 2024-03-06 13:22:22
avant
423 Les gens l'ont consulté

Depuis sa naissance, Bitcoin a été critiqué pour son gaspillage de ressources électriques, mais sa puissante puissance de calcul est un processus nécessaire, et il est difficile de trouver une meilleure façon de la remplacer.

Comme il existe depuis de plus en plus longtemps, de plus en plus de personnes participent à des transactions sur sa blockchain technologique sous-jacente, et le contenu du grand livre distribué s'est considérablement élargi. Un bloc 1 défini par Satoshi Nakamoto La capacité de stockage de. MB limite le processus de transaction et la vitesse de transaction.

Donc, télécharger l’intégralité du registre devient un casse-tête. Ne pouvez-vous pas télécharger l’intégralité du registre, mais trouver uniquement les parties qui vous intéressent ? En d’autres termes, trouvez un filtre et gardez les éléments inutiles à l’écart.

C'est ainsi qu'est apparu le mécanisme SPV.

01. Mécanisme SPV

Le nom complet du SPV est « Simplified Payment Verification », qui est communément traduit par simple vérification de paiement. Son objectif est de vérifier si une certaine transaction existe, mais il ne peut pas vérifier la légalité de la transaction. Cela nécessite une opération en deux étapes. La première étape consiste à confirmer si le paiement de la transaction a été vérifié et la deuxième étape consiste à calculer. combien de confirmations ont été obtenues.

Satoshi Nakamoto a mentionné ce concept dans son article :

Il est toujours possible de vérifier les transactions sans exécuter un nœud complet. Les utilisateurs doivent uniquement conserver toutes les données d'en-tête de bloc sur la chaîne la plus longue.

Pour faire simple :

Si Xiao Hei transfère un Bitcoin à Da Bai, comment Da Bai saura-t-il que la transaction de pièces est terminée ? Il est impossible de trouver des témoins dans un système décentralisé.

Selon la méthode traditionnelle : Dabai doit télécharger tous les registres de la blockchain, puis trouver le compte de Xiaohei et voir d'abord s'il possède déjà un tel Bitcoin et s'il existe une trace de son transfert à Dabai. La première étape a fait exploser la capacité de stockage de Dabai.

La capacité de bloc de chaque Bitcoin est de 1 Mo et l'en-tête du bloc ne fait que 80 Ko, il vous suffit donc de télécharger l'en-tête du bloc pour économiser beaucoup d'espace.

Que sont exactement l'en-tête et le corps du bloc ?

Comparez l'en-tête du bloc à une tête humaine, qui stocke les informations d'en-tête du bloc, telles que la valeur de hachage, l'horodatage, etc., tandis que le corps du bloc est similaire au corps entier d'une personne, stockant des données détaillées de celle-ci ; bloc , comme des informations de transaction spécifiques. L'en-tête du bloc est inclus dans le corps du bloc.

C'est-à-dire que même si un en-tête de bloc a une valeur de hachage, après avoir téléchargé l'en-tête de bloc, Dabai ne peut toujours pas savoir dans quel bloc la transaction est enregistrée. À ce stade, vous devez accéder au nœud complet avec la transaction ID pour vérifier s'il y a Et dans quel bloc.

02. Processus de vérification des paiements SPV

Hé, et si les mineurs et Xiaohei unissaient leurs forces pour tromper Dabai ?

C’est là que le mécanisme SPV s’avère utile.

Si le mineur a dit que Xiao Hei s'était retourné, mais en fait il ne l'a pas fait. Ensuite, afin de compléter le mensonge, il doit forger plus de transactions afin que ces transactions puissent obtenir la même valeur de hachage que dans son propre en-tête de bloc. Cependant, en raison des caractéristiques techniques du hachage, il est difficile d'obtenir la même valeur de hachage des données modifiées que celle des données d'origine.

En bref, l'ensemble du processus de transaction SPV est le suivant :

La première étape consiste à confirmer si le paiement de la transaction a été vérifié.

Calculez d'abord la valeur de hachage de transaction du paiement à vérifier, enregistrez l'en-tête de bloc du réseau blockchain vers le local, puis obtenez le chemin d'authentification de hachage de l'arbre Merkel correspondant au paiement à vérifier à partir de la blockchain.

Comparez si la valeur de hachage obtenue est cohérente avec la vôtre. Si elles sont cohérentes, cela prouve que le paiement est réel et valide.

La deuxième étape, vérifiez combien de confirmations ont été reçues. En fonction de la position de l'en-tête du bloc, le nombre de confirmations reçues pour le paiement est déterminé.

Après avoir complété ces deux étapes, la vérification du paiement de la transaction est terminée.

03. Résumé

Le mécanisme SPV permet non seulement d'économiser de l'espace de stockage, réduit le gaspillage de bande passante du réseau P2P, permet aux utilisateurs ordinaires de fonctionner sans télécharger de données complètes, mais apporte également une grande commodité à l'audit.

Cependant, comme SPV ne dispose pas de données de bloc complètes, il ne peut pas vérifier que la transaction n'existe pas. Cette situation peut facilement conduire à une double dépense, et des nœuds de liaison aléatoires peuvent également être attaqués de manière malveillante par le réseau.

Pensez-vous qu'il existe d'autres avantages et inconvénients du SPV ? Bienvenue pour partager votre point de vue dans la zone de message.

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!

Étiquettes associées:
source:zhihu.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