PSBT (BIP174): å signere sammen

Standardfilformatet for multisig og maskinvarelommebøker.

Å signere en transaksjon trenger informasjon signeren kanskje ikke har: hvilke mynter som brukes, beløpene deres, scripter og nøkkelutledningsstier. En Partially Signed Bitcoin Transaction (PSBT), definert i BIP174 av Andrew Chow i 2017, er en standardbeholder for alt dette.

Formatet

En PSBT starter med magic-bytes 0x70 0x73 0x62 0x74 0xff («psbt» etterfulgt av 0xff). Den har en global seksjon, ett map per inndata og ett per utdata, hver med typede nøkkel–verdi-par. Den deles vanligvis som Base64 eller som en binær .psbt-fil.

Inndata kan bære den fulle forrige transaksjonen eller UTXOen som brukes, redeem- eller witness-scriptet, delsignaturer, sighash-typer og BIP32-utledningsstier. Utdata kan bære utledningsstier slik at en maskinvarelommebok kan verifisere hvilken utdata som er vekslepenger.

Rollene

  1. Creator: lager den usignerte transaksjonen.
  2. Updater: legger til UTXO-data, scripter og nøkkelstier.
  3. Signer: sjekker detaljene og legger til sin signatur.
  4. Combiner: slår sammen PSBT-er signert av ulike parter.
  5. Finalizer: bygger den endelige scriptSig og witness.
  6. Extractor: sender ut den klar-til-kringkasting-transaksjonen.

Én app kan gjøre flere roller, eller hver kan være en annen enhet, som en telefon, en laptop og to maskinvarelommebøker.

Hvorfor det betyr noe

  • Luftgappet signering: PSBT-er kan flyttes via SD-kort eller QR-kode.
  • Multisig: hver medsigner signerer uavhengig, deretter kombineres signaturene.
  • Gebyrsikkerhet: fordi inndata-beløp er inkludert, kan en signer beregne gebyret før signering.
  • Coinjoins og payjoins: flere personer bidrar med inndata til én transaksjon.

I Bitcoin Core

RPC-er inkluderer walletcreatefundedpsbt, walletprocesspsbt, combinepsbt, finalizepsbt og decodepsbt.

Versjon 2

BIP370 (PSBTv2) lar inndata og utdata legges til etter opprettelse, noe som hjelper interaktive protokoller. Taproot-felter ble lagt til av BIP371.

Regel: verifiser alltid adressene og beløpene på signeringsenhetens skjerm, ikke bare på datamaskinen.