181 / 691BIP370

PSBT v2

Druhá verze formátu částečně podepsané transakce

PSBT v2 odděluje údaje transakce do map vstupů a výstupů, aby ji mohlo postupně sestavovat více účastníků. Možnost změn závisí na příznacích, podpisech a shodě časových podmínek.

PSBT v2 je formát podle BIP 370 pro výměnu rozpracované bitcoinové transakce a podkladů k podpisu. Číslo označuje verzi obálky PSBT, nikoli automaticky verzi samotné transakce nebo nový způsob ověřování v síti.

PSBT v0 podle BIP 174 obsahuje globální nepodepsanou transakci. BIP 370 její konstrukční údaje přesouvá do samostatných polí. Účastníci tak mohou podle pravidel přidávat vstupy a výstupy po vytvoření obálky. Neznamená to, že lze libovolně měnit už podepsané části nebo že soubor sám představuje platbu. [BIP 370 — PSBT Version 2] [BIP 174 — Partially Signed Bitcoin Transaction Format]

PSBT_GLOBAL_VERSION musí být 2 a PSBT_GLOBAL_UNSIGNED_TX nesmí být přítomno. Povinné PSBT_GLOBAL_TX_VERSION určuje samostatně verzi vytvářené transakce; globální mapa obsahuje také počty vstupů a výstupů. Pouhé přepsání čísla verze ve starém souboru nevytvoří platné PSBT v2. [BIP 370 — PSBT Version 2]

Vstup musí určit předchozí TXID a index utráceného výstupu. Výstup musí obsahovat částku v satoshi a scriptPubKey; při přidání se upraví i příslušný globální počet. Nepřítomná sequence vstupu znamená 0xffffffff. Tyto konstrukční údaje nenahrazují ověření UTXO ani dalších podkladů, které potřebuje podepisující zařízení. [BIP 370 — PSBT Version 2]

V poli PSBT_GLOBAL_TX_MODIFIABLE bit 0 dovoluje změny vstupů a bit 1 změny výstupů. Bit 2 upozorňuje na podpis SIGHASH_SINGLE: musí zůstat zachováno párování vstupu a výstupu na odpovídajícím indexu. Sestavovatel musí prověřit konkrétní podpisy; samotný zapnutý příznak neudělá jinak neplatnou změnu bezpečnou. [BIP 370 — PSBT Version 2]

Pro nLockTime se vybere typ požadavku slučitelný se všemi vstupy a jeho nejvyšší hodnota. Jsou-li možné oba typy, přednost má výška bloku; neslučitelný vstup se nepřidá. Bez vstupních požadavků se použije globální fallback, případně nula. Nový vstup nesmí změnit nLockTime, pokud už existují podpisy. [BIP 370 — PSBT Version 2]

Podepisující aktualizuje příznaky podle SIGHASH. Bez SIGHASH_ANYONECANPAY uzavře změny vstupů; bez SIGHASH_NONE uzavře změny výstupů a při SIGHASH_SINGLE označí nutné párování. Po finalizaci extraktor sestaví síťovou transakci z polí. Její odeslání a přijetí sítí jsou další kroky, nikoli vlastnost přenesené obálky. [BIP 370 — PSBT Version 2] [BIP 174 — Partially Signed Bitcoin Transaction Format] [Bitcoin Core — PSBT workflow]

PSBT v0 a v2 nejsou přímo zaměnitelné. Převod do v0 vyžaduje sestavení nepodepsané transakce a dodržení pravidel polí dané verze. Taproot podklady definuje odděleně BIP 371 pro obě verze. Podpora PSBT nebo Taproot proto sama nedokazuje, že daná peněženka umí importovat, podepsat a exportovat PSBT v2. [BIP 370 — PSBT Version 2] [BIP 371 — Taproot Fields for PSBT]

Na důvěryhodném zařízení porovnej příjemce, částky, vlastní vrácený výstup a poplatek s původním záměrem. Ověř podklady UTXO, skripty a použitý SIGHASH; metadata o odvození klíčů sama neprokazují vlastnictví výstupu. Zkušební průchod konkrétním koordinátorem a zařízením ověří kompatibilitu, nikoli bezpečnost všech budoucích transakcí. [BIP 174 — Partially Signed Bitcoin Transaction Format] [Bitcoin Core — PSBT workflow]

Pro nejúplnější obraz čtěte toto heslo společně s PSBT, Hardware Wallet, Multisig, Taproot.

DOC · 001BIP 370 — PSBT Version 2SpecifikaceDOC · 002BIP 174 — Partially Signed Bitcoin Transaction FormatSpecifikaceDOC · 003BIP 371 — Taproot Fields for PSBTSpecifikaceDOC · 004Bitcoin Core — PSBT workflowDokumentace
Primární zdroje · Nejde o investiční doporučení