181 / 691BIP370

PSBT v2

Zweite Version des Formats für teilweise signierte Transaktionen

PSBT v2 trennt Transaktionsdaten in Eingabe- und Ausgabemaps, damit mehrere Beteiligte sie schrittweise zusammensetzen können. Änderungen hängen von Flags, Signaturen und vereinbaren Zeitsperren ab.

PSBT v2 ist das Format nach BIP 370 zum Austausch einer unfertigen Bitcoin-Transaktion und ihrer Signierdaten. Die Zahl bezeichnet die Version der PSBT-Hülle, nicht automatisch die Transaktionsversion oder ein neues Prüfverfahren im Netzwerk.

PSBT v0 nach BIP 174 enthält eine globale unsignierte Transaktion. BIP 370 verlagert deren Konstruktionsdaten in einzelne Felder. Beteiligte können dadurch regelkonform nachträglich Eingaben und Ausgaben hinzufügen. Bereits signierte Teile werden damit nicht beliebig veränderbar, und die Datei selbst ist noch keine Zahlung. [BIP 370 — PSBT Version 2] [BIP 174 — Partially Signed Bitcoin Transaction Format]

PSBT_GLOBAL_VERSION muss 2 sein, PSBT_GLOBAL_UNSIGNED_TX muss fehlen. Das Pflichtfeld PSBT_GLOBAL_TX_VERSION bestimmt unabhängig davon die Transaktionsversion; die globale Map enthält außerdem die Anzahl der Eingaben und Ausgaben. Nur die Versionsnummer einer alten Datei umzuschreiben erzeugt keine gültige PSBT v2. [BIP 370 — PSBT Version 2]

Eine Eingabe muss vorherige TXID und Index der ausgegebenen Ausgabe angeben. Eine Ausgabe benötigt Betrag in satoshi und scriptPubKey; beim Hinzufügen wird auch der jeweilige globale Zähler angepasst. Eine fehlende Eingabe-sequence bedeutet 0xffffffff. Konstruktionsdaten ersetzen weder die Prüfung der UTXO-Daten noch anderer Informationen, die das Signiergerät benötigt. [BIP 370 — PSBT Version 2]

In PSBT_GLOBAL_TX_MODIFIABLE erlaubt Bit 0 Eingabeänderungen und Bit 1 Ausgabeänderungen. Bit 2 weist auf eine SIGHASH_SINGLE-Signatur hin: Eingabe und Ausgabe müssen am entsprechenden Index gepaart bleiben. Der Konstrukteur muss die tatsächlichen Signaturen prüfen; ein gesetztes Flag macht eine sonst ungültige Änderung nicht sicher. [BIP 370 — PSBT Version 2]

Für nLockTime wird ein mit allen Eingaben vereinbarer Anforderungstyp und dessen höchster Wert gewählt. Sind beide Typen möglich, hat die Blockhöhe Vorrang; eine unvereinbare Eingabe darf nicht hinzugefügt werden. Ohne Eingabeanforderungen gilt der globale Ersatzwert oder null. Bei vorhandenen Signaturen darf eine neue Eingabe nLockTime nicht ändern. [BIP 370 — PSBT Version 2]

Der Signierende aktualisiert die Flags entsprechend SIGHASH. Ohne SIGHASH_ANYONECANPAY sperrt er Eingabeänderungen; ohne SIGHASH_NONE sperrt er Ausgabeänderungen und bei SIGHASH_SINGLE markiert er die erforderliche Paarung. Nach der Finalisierung setzt der Extraktor die Netzwerktransaktion aus den Feldern zusammen. Versand und Netzwerkannahme sind weitere Schritte, keine Eigenschaften der übertragenen Hülle. [BIP 370 — PSBT Version 2] [BIP 174 — Partially Signed Bitcoin Transaction Format] [Bitcoin Core — PSBT workflow]

PSBT v0 und v2 sind nicht direkt austauschbar. Die Umwandlung in v0 erfordert das Erstellen der unsignierten Transaktion und das Einhalten ihrer Feldregeln. BIP 371 definiert Taproot-Daten separat für beide Versionen. Unterstützung für PSBT oder Taproot allein beweist daher nicht, dass eine Wallet PSBT v2 importieren, signieren und exportieren kann. [BIP 370 — PSBT Version 2] [BIP 371 — Taproot Fields for PSBT]

Vergleiche auf einem vertrauenswürdigen Gerät Empfänger, Beträge, eigene Wechselgeldausgabe und Gebühr mit deiner ursprünglichen Absicht. Prüfe UTXO-Daten, Skripte und verwendetes SIGHASH; Metadaten zur Schlüsselableitung beweisen allein kein Ausgabeeigentum. Ein Probelauf mit dem konkreten Koordinator und Gerät prüft Kompatibilität, nicht die Sicherheit aller künftigen Transaktionen. [BIP 174 — Partially Signed Bitcoin Transaction Format] [Bitcoin Core — PSBT workflow]

Für ein möglichst vollständiges Bild lies diesen Eintrag zusammen mit PSBT, Hardware Wallet, Multisig, Taproot.

DOC · 001BIP 370 — PSBT Version 2SpezifikationDOC · 002BIP 174 — Partially Signed Bitcoin Transaction FormatSpezifikationDOC · 003BIP 371 — Taproot Fields for PSBTSpezifikationDOC · 004Bitcoin Core — PSBT workflowDokumentation
Quellenbasiert · Keine Anlageberatung