Heim  >  Artikel  >  Bitcoin-Vollknotensynchronisierung zu langsam? SPV-Mechanismus, der Zahlungen überprüfen kann, ohne einen vollständigen Knoten zu verwenden

Bitcoin-Vollknotensynchronisierung zu langsam? SPV-Mechanismus, der Zahlungen überprüfen kann, ohne einen vollständigen Knoten zu verwenden

DDD
DDDnach vorne
2024-03-06 13:22:22368Durchsuche

Seit seiner Geburt steht Bitcoin wegen der Verschwendung von Stromressourcen in der Kritik, aber seine „starke Rechenleistung“ ist ein notwendiger Prozess und es ist schwierig, einen besseren Weg zu finden, ihn zu ersetzen. Da es es schon immer länger gibt, nehmen immer mehr Menschen an Transaktionen auf der zugrunde liegenden Technologie-Blockchain teil, und der Inhalt des von

Satoshi Nakamoto

festgelegten Distributed Ledgers hat sich dramatisch erweitert MB begrenzt den Transaktionsprozess und die Transaktionsgeschwindigkeit. Das Herunterladen des gesamten Hauptbuchs bereitet also Kopfschmerzen. Können Sie nicht das gesamte Hauptbuch herunterladen, sondern nur die für Sie relevanten Teile finden? Mit anderen Worten: Finden Sie einen Filter und halten Sie das nutzlose Zeug fern.

So entstand der SPV-Mechanismus.

01. SPV-Mechanismus

Satoshi Nakamoto erwähnte dieses Konzept in seinem Artikel:

Es ist immer noch möglich, Transaktionen zu überprüfen, ohne einen vollständigen Knoten auszuführen. Benutzer müssen nur alle Blockheaderdaten in der längsten Kette behalten.

Um es einfach auszudrücken:

Wenn Xiao Hei einen Bitcoin an Da Bai überträgt, woher weiß Da Bai dann, dass die Münztransaktion abgeschlossen wurde? In einem dezentralen System ist es unmöglich, Zeugen zu finden.

Nach der traditionellen Methode: Dabai muss alle Blockchain-Ledger herunterladen, dann Xiaoheis Konto finden und zunächst prüfen, ob es bereits einen solchen Bitcoin gibt und ob eine Aufzeichnung über die Übertragung an Dabai vorliegt. Schon der erste Schritt ließ die Speicherkapazität von Dabai explodieren.

Die Blockkapazität jedes Bitcoin beträgt 1 MB und der Blockheader ist nur 80 KB groß, sodass Sie nur den Blockheader herunterladen müssen, um viel Platz zu sparen.

Was genau sind Blockheader und Blockkörper?

Vergleichen Sie den Block-Header mit einem menschlichen Kopf, der die Header-Informationen des Blocks wie Hash-Wert, Zeitstempel usw. speichert, während der Block-Körper dem gesamten Körper einer Person ähnelt und detaillierte Daten davon speichert Block, wie zum Beispiel bestimmte Transaktionsinformationen. Der Blockheader ist im Blockkörper enthalten.

Das heißt, obwohl ein Blockheader einen Hashwert hat, kann Dabai nach dem Herunterladen des Blockheaders immer noch nicht wissen, in welchem ​​Block die Transaktion aufgezeichnet ist. Zu diesem Zeitpunkt müssen Sie mit der Transaktion zum vollständigen Knoten gehen ID, um zu prüfen, ob in welchem ​​Block ein Und vorhanden ist.

02. SPV-Zahlungsüberprüfungsprozess

Hey, was wäre, wenn die Bergleute und Xiaohei sich zusammenschließen, um Dabai zu täuschen?

Hier kommt der SPV-Mechanismus zum Einsatz.

Wenn der Bergmann sagte, dass Xiao Hei sich umgedreht hat, aber tatsächlich hat er es nicht getan.

Um die Lüge zu vervollständigen, muss er dann weitere Transaktionen fälschen, damit diese Transaktionen den gleichen Hashwert wie in seinem eigenen Blockheader erhalten können.

Aufgrund der technischen Eigenschaften des Hashings ist es jedoch schwierig, den gleichen Hashwert der geänderten Daten wie die Originaldaten zu erreichen.

Kurz gesagt läuft der gesamte SPV-Transaktionsprozess wie folgt ab:

Der erste Schritt besteht darin, zu bestätigen, ob die Transaktionszahlung verifiziert wurde

.

Berechnen Sie zunächst den Transaktions-Hash-Wert der zu verifizierenden Zahlung, speichern Sie den Blockheader aus dem Blockchain-Netzwerk lokal und rufen Sie dann den Merkel-Baum-Hash-Authentifizierungspfad ab, der der zu verifizierenden Zahlung aus der Blockchain entspricht.

Vergleichen Sie, ob der erhaltene Hash-Wert mit Ihrem eigenen übereinstimmt. Wenn sie konsistent sind, beweist dies, dass die Zahlung echt und gültig ist.

Der zweite Schritt besteht darin,

zu überprüfen, wie viele Bestätigungen

eingegangen sind. Anhand der Position des Blockheaders wird die Anzahl der Bestätigungen ermittelt, dass die Zahlung eingegangen ist.

Nach Abschluss dieser beiden Schritte ist die Überprüfung der Transaktionszahlung abgeschlossen.

03. Zusammenfassung

Der SPV-Mechanismus spart nicht nur Speicherplatz

, reduziert die Verschwendung von P2P-Netzwerkbandbreite und ermöglicht es normalen Benutzern, ohne das Herunterladen vollständiger Daten zu arbeiten, sondern bietet auch großen Komfort bei der Prüfung. Da SPV jedoch nicht über vollständige Blockdaten verfügt, kann es nicht überprüfen, ob die Transaktion nicht existiert. Diese Situation kann leicht zu doppelten Ausgaben führen, und zufällige Verbindungsknoten können auch böswillig vom Netzwerk angegriffen werden.

Glauben Sie, dass es noch weitere Vor- und Nachteile von SPV gibt? Willkommen, Ihre Ansichten im Nachrichtenbereich zu teilen.

Das obige ist der detaillierte Inhalt vonBitcoin-Vollknotensynchronisierung zu langsam? SPV-Mechanismus, der Zahlungen überprüfen kann, ohne einen vollständigen Knoten zu verwenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:zhihu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:Was sind die Bitcoin-Adressen?Nächster Artikel:Was sind die Bitcoin-Adressen?