PSBT (BIP174): gemeinsam signieren

Das Standard-Dateiformat für Multisig und Hardware-Wallets.

Eine Transaktion zu signieren braucht Informationen, die der Signer vielleicht nicht hat: welche Münzen ausgegeben werden, ihre Beträge, Scripts und Schlüsselableitungspfade. Eine Partially Signed Bitcoin Transaction (PSBT), definiert in BIP174 von Andrew Chow 2017, ist ein Standardbehälter dafür.

Das Format

Eine PSBT beginnt mit den Magic-Bytes 0x70 0x73 0x62 0x74 0xff („psbt“ gefolgt von 0xff). Sie hat einen globalen Abschnitt, eine Map pro Input und eine pro Output, jeweils mit typisierten Schlüssel–Wert-Paaren. Sie wird meist als Base64 oder als binäre .psbt-Datei geteilt.

Inputs können die volle vorherige Transaktion oder den ausgegebenen UTXO tragen, das Redeem- oder Witness-Script, Teilsignaturen, Sighash-Typen und BIP32-Ableitungspfade. Outputs können Ableitungspfade tragen, damit eine Hardware-Wallet prüfen kann, welcher Output Wechselgeld ist.

Die Rollen

  1. Creator: erstellt die unsignierte Transaktion.
  2. Updater: fügt UTXO-Daten, Scripts und Schlüsselpfade hinzu.
  3. Signer: prüft die Details und fügt seine Signatur hinzu.
  4. Combiner: merged PSBTs, die von verschiedenen Parteien signiert wurden.
  5. Finalizer: baut endgültiges scriptSig und Witness.
  6. Extractor: gibt die broadcastfertige Transaktion aus.

Eine App kann mehrere Rollen übernehmen, oder jede kann ein anderes Gerät sein – etwa Telefon, Laptop und zwei Hardware-Wallets.

Warum es zählt

  • Air-gappedes Signieren: PSBTs können per SD-Karte oder QR-Code wandern.
  • Multisig: jeder Cosigner signiert unabhängig, dann werden Signaturen kombiniert.
  • Gebührensicherheit: Weil Input-Beträge enthalten sind, kann ein Signer die Gebühr vor dem Signieren berechnen.
  • Coinjoins und Payjoins: Mehrere Personen steuern Inputs zu einer Transaktion bei.

In Bitcoin Core

RPCs umfassen walletcreatefundedpsbt, walletprocesspsbt, combinepsbt, finalizepsbt und decodepsbt.

Version 2

BIP370 (PSBTv2) lässt Inputs und Outputs nach der Erstellung hinzufügen, was interaktiven Protokollen hilft. Taproot-Felder kamen mit BIP371.

Regel: Prüfe Adressen und Beträge immer auf dem Bildschirm deines Signiergeräts, nicht nur am Computer.