Blockchain/Niveau II · Mechanik/2.2 Transaktionen/Lektion 7
Das Leben einer Transaktion
Von der Signatur bis zur Finalität: Wie eine Transaktion das Netzwerk durchläuft
MaterialienDie Website mempool.spaceEin Block-Explorer, um die Bestätigungstiefe zu verfolgen
Neugier
- Warum muss ein Node eine Transaktion überprüfen, bevor er überhaupt weiß, ob sie gemined wird?
- Was macht einen Block „echter“ als einen anderen, wenn zwei gleichzeitig auftauchen?
- Warum wurden sechs Bestätigungen zur Konvention, und wann sind das zu viele oder zu wenige?
Erkunden
- Die Reise beginnt in der Wallet-Software. Der Nutzer wählt bestimmte Unspent Transaction Outputs (UTXOs) aus, um Zahlung und Gebühr zu decken. Die Wallet erstellt ein neues Transaktionsobjekt und definiert dabei Inputs, die über Transaktions-ID und Index auf frühere Outputs verweisen, sowie Outputs, die Empfänger- oder Change-Adressen Werte zuweisen. Jeder Input wird mit dem privaten Schlüssel signiert, der zu seinem Locking-Skript gehört; so entstehen digitale Signaturen, die das Eigentum nachweisen, ohne den Schlüssel selbst preiszugeben.
- Die vollständig signierte Transaktion wird in ein Binärformat serialisiert und über das Peer-to-Peer-Netzwerk an verbundene Peers gesendet. Nach dem Empfang validiert jeder Node sie unabhängig anhand der Konsensregeln: Er prüft, ob die Inputs die Outputs decken, verifiziert die kryptografischen Signaturen, stellt sicher, dass keine bestehenden UTXOs doppelt ausgegeben werden, und validiert die Skriptlogik. Ist sie gemäß den Richtlinien gültig, fügt der Node die Transaktion seinem lokalen Mempool hinzu und kündigt sie seinen Peers mit „inv“-Nachrichten (Inventory) an; Peers, denen sie fehlt, fordern die vollständige Transaktion mit „getdata“ an.
- Miner durchsuchen ihre Mempools laufend nach profitablen Transaktionen. Sie wählen eine Reihe von Transaktionen mit hoher Gebührenrate aus und nehmen sie in ein Kandidaten-Block-Template auf, das außerdem die Coinbase-Transaktion enthält, die die aktuelle Blocksubvention und die eingesammelten Gebühren auszahlt. Anschließend leistet der Miner Proof of Work: Er hasht den Block-Header immer wieder, bis er einen Hash findet, der das aktuelle Schwierigkeitsziel des Netzwerks erfüllt. Diese Arbeit macht den Block teuer in der Erzeugung und günstig in der Überprüfung; sobald er gefunden ist, wird der Block im Netzwerk verbreitet.
- Nodes, die den neuen Block empfangen, prüfen dessen Proof of Work und die Gültigkeit der Transaktionen, bevor sie ihn an ihre lokale Kopie der Chain anhängen. Die Transaktionen in diesem Block gelten nun als mit einer Tiefe von eins bestätigt. Ihre Inputs werden im UTXO-Set als ausgegeben markiert, und ihre Outputs können künftig ausgegeben werden, sobald etwaige Locktimes oder Reifefristen abgelaufen sind. Erscheint ein konkurrierender Block auf derselben Höhe, folgen die Nodes dem Zweig, der die meiste Arbeit akkumuliert; ersetzt eine kurze Reorganisation einen Block, kehren dessen Transaktionen in den Mempool zurück, sofern der neue Zweig sie nicht bereits enthält.
- Die Sicherheit steigt mit jedem weiteren Block, der auf den bestätigenden Block folgt. Die Tabellen im Whitepaper zeigen, dass ein Angreifer mit 10 % der Hashrate eine Chance von weniger als 0,1 % hat, einen Rückstand von fünf Blöcken aufzuholen. Sechs Bestätigungen, etwa eine Stunde, wurden aufgrund solcher Analysen zur gängigen Konvention, obwohl das tatsächliche Risiko vom Anteil des Angreifers und vom jeweiligen Betrag abhängt. Während manche Händler bei kleinen Beträgen Zahlungen ohne Bestätigung akzeptieren, wird bei größeren Überweisungen in der Regel auf mehrere Bestätigungen gewartet, um das Risiko eines Double-Spending-Angriffs durch eine Reorganisation der Chain zu verringern.
- Coinbase-Transaktionen, die aus Mining-Belohnungen und Gebühren neue Bitcoin erzeugen, unterliegen einer besonderen Einschränkung: Ihre Outputs können erst ausgegeben werden, wenn sie 100 Bestätigungen haben. Die Regel existiert, weil ein Coinbase-Output verschwindet, wenn sein Block bei einer Reorganisation ersetzt wird; die Verzögerung verhindert, dass sich solche Coins in spätere Transaktionen ausbreiten, die dann ungültig würden. Bei gewöhnlichen Überweisungen von Nutzer zu Nutzer gibt es keine solche Verzögerung; sobald sie bestätigt sind, sind die Outputs technisch ausgebbar, wobei das Warten auf weitere Bestätigungen eine Entscheidung des Risikomanagements ist, die sich nach dem jeweiligen Wert und den Vertrauensannahmen richtet.
Kernfakten
- Nodes validieren Transaktionen anhand der Konsensregeln, bevor sie sie in ihren Mempool aufnehmen.
- Die Gültigkeit eines Blocks hängt davon ab, ob sein Proof-of-Work das aktuelle Schwierigkeitsziel erfüllt.
- Sechs Bestätigungen (etwa eine Stunde) sind eine gängige Konvention, keine Protokollregel.
- Coinbase-Outputs benötigen eine Reifezeit von 100 Blöcken, bevor sie ausgegeben werden können.
- Bei einer Reorganisation kehren gewöhnliche Transaktionen aus dem ersetzten Block in den Mempool zurück, sofern sie nicht mit dem neuen Zweig in Konflikt stehen; seine Coinbase verschwindet.
- Nodes kündigen neue Transaktionen mit „inv“-Nachrichten an und senden sie auf Anfrage („getdata“).
Übung neun, sechs, drei, eins
9SammelnListen Sie 9 unterschiedliche Stufen oder Ereignisse im Lebenszyklus einer Transaktion von der Erstellung bis zur Finalität auf.
6GruppierenGruppieren Sie diese 9 Stufen in 6 Phasen: Erstellung, Validierung, Verbreitung, Mining, Bestätigung und Zustände nach der Bestätigung.
3VerdichtenReduzieren Sie die 6 Phasen auf 3 kritische Kontrollpunkte, an denen das Netzwerk Sicherheit oder Konsens durchsetzt.
1KristallisierenSchreiben Sie 1 Satz, der erklärt, warum das Folgen der Chain mit der meisten Arbeit Konflikte zwischen konkurrierenden Blöcken auflöst.
Faktcheck
Datumsangaben, Zahlen und Behauptungen wurden mit den unten aufgeführten veröffentlichten Quellen abgeglichen.