Zum Inhalt springen
buybitcoinsmart

Glossar / Transaktionen und Gebühren

Transaktionsversionsnummer

Was ist die Transaktionsversionsnummer?
Die Transaktionsversionsnummer belegt die ersten vier Bytes einer Transaktion; sie sagt Prüfern, welche optionalen Regelsätze, etwa relative Timelocks, für die Transaktion gelten.

Nur drei Werte haben jemals etwas bedeutet. Das Feld ist keine Softwareversion, keine Protokollversion und kein Hinweis darauf, welche Adresstypen darin stecken, was das meiste von dem ist, was Menschen annehmen, wenn sie es zum ersten Mal sehen. Der Konsens ist ihm gegenüber weitgehend gleichgültig, die Weiterleitungsrichtlinie nicht, und genau diese Lücke erklärt das Feld.

Wie es funktioniert

Die Version belegt die Bytes 1 bis 4 der serialisierten Form, vor der Anzahl der Inputs, und Bitcoin Core liest sie als vorzeichenbehaftete Ganzzahl mit 32 Bit.

Version 1 ist die ursprüngliche, die jede Transaktion in den ersten Jahren der Chain nutzte. Version 2 existiert, weil BIP68 einen Weg brauchte, Sequenznummern als relative Timelocks neu zu deuten, ohne ältere Transaktionen ungültig zu machen; deshalb hängte es die neue Bedeutung an eine Versionserhöhung. Ab Block 419.328 im Juli 2016 werden bei einer Transaktion, die Version 2 angibt, die Sequenznummern als Wartezeiten geprüft, bei einer mit Version 1 nicht. Moderne Wallets setzen standardmäßig Version 2, ob sie Timelocks verwenden oder nicht; deshalb steht bei fast allem, was Sie in einem Explorer nachschlagen, die 2.

Version 3 kam mit Bitcoin Core 28.0 im Oktober 2024 unter dem Namen topology restricted transactions, oder TRUC. Wer Version 3 angibt, akzeptiert strengere Bedingungen: Die Transaktion gilt immer als ersetzbar, sie darf höchstens eine unbestätigte Elterntransaktion und eine unbestätigte Kindtransaktion haben, die Kindtransaktion ist auf 1.000 virtuelle Bytes begrenzt und die Transaktion selbst auf 10.000. Diese Grenzen klingen nach einer Verschlechterung, bis Sie gepinnt wurden; das ist der Fall, wenn eine Gegenpartei Ihrer unbestätigten Transaktion einen riesigen, billigen Nachfahren anhängt, sodass eine Gebührenerhöhung unbezahlbar wird. Lightning-Implementierungen haben Version 3 genau aus diesem Grund übernommen.

Nichts in den Konsensregeln lehnt eine Transaktion ab, weil sie Version 7 oder Version 0 hat. Die Standardkonformität tut es: Bitcoin Core leitet Versionen außerhalb der akzeptierten Menge weder weiter noch mint sie, eine ungewöhnliche Version ist also eine Transaktion, die auf einem anderen Weg zu einem Miner gelangen muss.

Wo Sie es sehen

Jeder Block-Explorer zeigt die Version oben auf der Detailseite einer Transaktion, und der Aufruf decoderawtransaction von Bitcoin Core gibt sie als erstes Feld zurück.

Für alle, die Bitcoin kaufen oder halten, ist sie eine Diagnose und keine Entscheidung. Sie wählen sie nie selbst, das tut Ihre Wallet. Ihr praktischer Wert liegt im Lesen unbekannter Software: Eine Wallet, die in einer Welt relativer Timelocks noch Transaktionen mit Version 1 erzeugt, ist alt, und eine Zahlung mit Angabe der Version 3 stammt fast sicher aus der Kanaltechnik eines Lightning-Node und nicht von einer Person, die auf Senden gedrückt hat.

Transaktionsversionsnummer vs. Blockversionsnummer

Transaktionen und Blöcke tragen beide ein vier Byte großes Versionsfeld, und sie haben nichts miteinander zu tun.

Die Blockversion folgt den Konsens-Upgrades. Blöcke der Version 2 wurden mit Block 227.931 im März 2013 verpflichtend, als BIP34 die Blockhöhe im Coinbase-Input verlangte, Version 3 erzwang die strenge DER-Signaturkodierung nach BIP66, und Version 4 kam mit der Bereitstellung von CHECKLOCKTIMEVERIFY. Ab 2015 wurde das Feld erneut umgewidmet, diesmal als eine Menge von Signalbits nach BIP9, sodass Miner durch das Umlegen eines Bits davon für eine Soft Fork stimmen konnten. Die Version einer Transaktion tut nichts davon. Sie signalisiert nie, sie zählt nicht mit jedem Upgrade nach oben, und sie gilt für eine einzelne Transaktion und nicht für den Regelsatz des gesamten Netzwerks.

Nicht zu verwechseln mit

Häufig gestellte Fragen

Warum steht bei fast allen Bitcoin-Transaktionen die Version 2?

Weil Wallets sie standardmäßig setzen. Version 2 ist die, welche die von BIP68 eingeführte Lesart der Sequenznummern als relative Timelocks ermöglicht, und Software setzt sie unabhängig davon, ob die Funktion genutzt wird; so ist sie zum gewöhnlichen Wert geworden.

Ist eine Transaktion mit Version 3 besser als eine mit Version 2?

Nicht besser, nur stärker eingeschränkt. Version 3 akzeptiert Grenzen für unbestätigte verwandte Transaktionen und ist immer ersetzbar, was Vertragsprotokolle wie Lightning vor Gebühren-Pinning schützt. Für eine normale Zahlung bringen die Einschränkungen keinen Vorteil.

Verwandte Begriffe

Mehr zum Thema Transaktionen und Gebühren

Diese Seite auf Englisch lesen