Zum Inhalt springen
buybitcoinsmart

Glossar / Transaktionen und Gebühren

Sequenznummer

Auch bekannt als nSequence.

Was ist die Sequenznummer?
Die Sequenznummer ist ein vier Byte großes Feld in jeder Transaktionseingabe, das die Ersetzung durch eine höhere Gebühr (Replace-by-Fee) signalisiert, die Sperrzeit aktiviert und eine relative Zeitsperre kodieren kann.

Spezifiziert im BIP-68.

Drei unabhängige Aufgaben teilen sich ein Feld, weil Bitcoin es sich nicht leisten konnte, ein weiteres hinzuzufügen. Satoshis ursprünglicher Plan dafür, ein roher Zahlungskanal, in dem jede neue Version die Nummer erhöhte, wurde um 2010 aufgegeben, weil keine Regel Miner dazu zwang, die höhere zu bevorzugen. Was übrig blieb, ist eine Reihe von magischen Werten, die das Verhalten der Transaktionen Ihrer Wallet bestimmen.

So funktioniert es

Eine Sequenznummer zu lesen bedeutet, sie gegen drei getrennte Regeln zu prüfen, nach dem Alter der Regeln.

Der Endwert. Eine Sequenz von 0xffffffff, dezimal 4.294.967.295, kennzeichnet eine Eingabe als endgültig. Sind alle Eingaben einer Transaktion endgültig, wird das Sperrzeit-Feld vollständig ignoriert. Das war der Standard in frühen Wallets und ist noch immer das, was Sie bei Transaktionen sehen, die von Software erstellt wurden, die sich nie mit dem Feld befasst hat.

Das Ersatzsignal. BIP125 wies dem unteren Ende des Bereichs eine Bedeutung zu: Jede Eingabe mit 0xfffffffd oder darunter zeigt an, dass der Sender die Transaktion durch eine höher bezahlte Version ersetzen darf. Der Wert 0xfffffffe trifft den schmalen Grat: Er aktiviert die Sperrzeit und enthält das Ersatzsignal vor. Dieser Unterschied hat den größten Teil seiner Kraft verloren, denn Bitcoin Core leitet Ersetzungen unabhängig vom Signal seit Version 28.0 im Oktober 2024 weiter.

Die relative Zeitsperre. BIP68 deutete die unteren Bits für Transaktionen neu, die Version 2 oder höher angeben, und die Regel wurde ab Block 419.328 im Juli 2016 durchsetzbar. Ist Bit 31 nicht gesetzt, geben die unteren 16 Bits an, wie viel Zeit nach der Bestätigung der Coin vergehen muss, die die Eingabe selbst ausgibt. Bit 22 wählt die Einheit: nicht gesetzt bedeutet Blöcke, also maximal 65.535 Blöcke oder ungefähr 455 Tage, gesetzt bedeutet Zeiträume von 512 Sekunden, was eine Obergrenze nahe 388 Tagen ergibt. Die Uhr beginnt mit der Bestätigung der Vorgängertransaktion, nicht zu einem festen Datum, und genau das braucht ein Vertrag zwischen zwei Personen.

Wo Sie es sehen

Die Sequenznummer erscheint als Spalte in Rohdatenausgaben von Transaktionen und als Kontrollkästchen in Wallet-Software, und die beiden Ansichten verwenden selten dieselben Worte.

Ein Blockexplorer, der Eingaben dekodiert, gibt Werte wie 4294967293 neben jeder Eingabe aus. Das ist 0xfffffffd, und es zeigt Ihnen, dass die Wallet eine ersetzbare Transaktion erstellt hat. Der Aufruf decoderawtransaction von Bitcoin Core zeigt dieselbe Zahl, und Sparrow und Electrum legen sie hinter einem Schalter „replace by fee“ offen statt als Zahl.

Lightning ist der wichtigste reale Nutzer. Die Widerrufsverzögerung eines Kanals, das Zeitfenster, in dem Ihre Gegenpartei dafür bestraft werden kann, einen alten Zustand zu veröffentlichen, ist eine relative Zeitsperre, die über dieses Feld in der Eingabe der Commitment-Transaktion durchgesetzt wird. Derselbe Mechanismus liegt Submarine Swaps, Vault-Konstruktionen und jedem Vertrag zugrunde, bei dem ein Rückerstattungspfad erst dann verfügbar werden darf, nachdem die andere Partei eine faire Gelegenheit zum Handeln hatte.

Sequenznummer vs. Sperrzeit

Sequenznummern gelten pro Eingabe, die Sperrzeit pro Transaktion. Das ist der schnellste Weg, sie auseinanderzuhalten, und es erklärt, warum die beiden für verschiedene Dinge verwendet werden.

Die Sperrzeit setzt eine einzige absolute Frist für die gesamte Transaktion, ausgedrückt als Blockhöhe oder als Uhrzeit, und sie gilt unabhängig davon, ob die ausgegebenen Coins einen Tag oder fünf Jahre alt sind. Eine relative Zeitsperre in einer Sequenznummer misst ab der Bestätigung der konkreten Coin, die diese Eingabe ausgibt, sodass jede Eingabe ihre eigene Wartezeit tragen kann und dasselbe Skript funktioniert, egal wann es finanziert wird. Die beiden hängen zudem auf unbequeme Weise voneinander ab: Die Sperrzeit wird nur durchgesetzt, wenn mindestens eine Sequenznummer unter dem Endwert liegt, sodass eine Wallet, die alles auf 0xffffffff setzt, das andere Feld still deaktiviert.

Nicht zu verwechseln mit

Häufig gestellte Fragen

Was bedeutet eine Sequenznummer von 4294967293?

Es ist 0xfffffffd, der Wert, den Wallets verwenden, um zu signalisieren, dass eine Transaktion durch eine höher bezahlte Version ersetzt werden darf. Er lässt außerdem die Durchsetzung der Sperrzeit eingeschaltet, weshalb die meisten modernen Wallets ihn standardmäßig wählen.

Ist eine relative Zeitsperre dasselbe wie eine Sperrzeit?

Nein. Eine relative Zeitsperre in einer Sequenznummer zählt ab der Bestätigung der ausgegebenen Coin, sie beginnt also, wann immer diese Coin gemint wurde. Die Sperrzeit nennt eine feste Blockhöhe oder ein festes Datum für die gesamte Transaktion.

Verwandte Begriffe

Mehr zum Thema Transaktionen und Gebühren

Diese Seite auf Englisch lesen