Wie verifizieren Nodes Bitcoin-Transaktionen?

Ich versuche, die Rolle zu verstehen, die verschiedene Knoten im Bitcoin-Netzwerk bei der Überprüfung der Transaktionen spielen, die in Echtzeit stattfinden. Ich denke, dass ich den Prozess der Transaktion (unter Verwendung von Eingabe- und Ausgabeskripten) verstehe und wie die Transaktion gebildet wird. Ich versuche jedoch, es damit zu korrelieren, wie eine Transaktion an andere Knoten gesendet und dann verifiziert wird.

Betrachten Sie ein Beispiel:

Wenn A einige BTC an B senden möchte, werden 2 Dinge passieren:

(a) A bildet das Eingabeskript der neuen Transaktion. Es wird auf das Ausgabeskript einer früheren Transaktion verwiesen, bei der A einige BTC (in der Vergangenheit) erhalten hat. Es wird das Eigentum an diesen BTC beweisen, indem es seinen öffentlichen Schlüssel verwendet und die Signatur verifiziert.

(b) Das Ausgabeskript für die neue Transaktion wird von A's Client gebildet. Es wird den Hash der BTC-Adresse von B speichern und es ihm ermöglichen, diese BTC in Zukunft auszugeben.

Nun sind meine Fragen:

  1. Alle diese Aktionen werden vom Bitcoin-Client von A ausgeführt und erfordern keine Interaktion mit dem Peer-to-Peer-Netzwerk. Es hat seine eigene lokale Kopie der Blockchain, die es verwenden kann, um den Schritt a auszuführen. Wird die Transaktion also nicht vom Bitcoin-Client von A verifiziert?

  2. Ich vermute, dass diese neu erstellte Transaktion (Eingabe- und Ausgabeskripte, die wie oben beschrieben erstellt wurden) an das gesamte Bitcoin-Netzwerk gesendet wird. Welche Art von Verifizierung wird nun von anderen Knoten bei dieser Transaktion durchgeführt?

Auf welcher Grundlage wird eine Transaktion vom Bitcoin-Netzwerk akzeptiert und in den Block integriert, der Teil der Blockchain ist?

Vielen Dank.

Antworten (1)

  1. Ja, aber das bedeutet nicht, dass das Netzwerk es akzeptiert hat.

  2. Es gibt Regeln für die Annahme einer Transaktion. Miner schließen nur Blöcke ein, die nicht gegen die Regeln verstoßen. Zu den Regeln gehört die Überprüfung, ob die Eingaben gültig sind, dass eine Münze nicht doppelt ausgegeben wird, dass die Ausgabe nicht mehr als die Eingabe ist usw.

Ein Miner kann wählen, ob er eine Transaktion einbeziehen möchte oder nicht. Ein Miner könnte sich sogar dafür entscheiden, eine Transaktion einzubeziehen, die gegen die Regeln verstößt! Aber wenn er das tut, werden andere Miner, die sich an die Regeln halten, seinen Block nicht akzeptieren und er wird seine Mining-Belohnung nicht erhalten. Er hat also einen Anreiz, sich an die Regeln zu halten.

vielen Dank für die Antwort hier – wie viel kostet es den Miner rechnerisch, dies zu tun? Würde sie das dazu anregen, weniger Transaktionen einzubeziehen, da es länger dauert, jede einzelne zu validieren?
@streetlight Der Rechenaufwand für die Überprüfung ist im Vergleich zum Erstellen eines Blocks nahezu vernachlässigbar. Außerdem sind Transaktionen normalerweise mit Gebühren verbunden, die die Verifizierungskosten überwiegen.