本文へスキップ
ecdsa.com

PSBT(部分署名済み Bitcoin トランザクション)

BIP-174(バージョン 0)と BIP-370(バージョン 2)で定められた交換形式で、未署名のトランザクションと、署名者が必要とするすべてのデータを運ぶため、ウォレット、ハードウェアデバイス、コーディネーターが別々のステップで署名できます。
別表記PSBTBIP-174BIP-370partially signed Bitcoin transaction

PSBT はマジックバイト psbt と 0xff(70736274ff、base64 では cHNidP8)で始まり、キーと値のマップを含みます。グローバルマップ(v0 では未署名のトランザクション、v2 ではバージョン、入出力の数、ロックタイム)、入力ごとに 1 つのマップ(UTXO データ、sighash タイプ、導出パス、部分署名、Taproot のフィールド)、出力ごとに 1 つのマップです。役割は、作成者(Creator)、更新者(Updater)、署名者(Signer)、結合者(Combiner)、ファイナライザー(Finalizer)、抽出者(Extractor)です。

ハードウェアウォレットは署名前に PSBT のデータから入力と出力を検証するため、コーディネーターは、前のトランザクション全体またはウィットネス UTXO と、おつりの判定に使う BIP-32 の導出パスを提供しなければなりません。攻撃は、署名者に表示される内容を狙います。たとえば、おつりに見せかけた出力や、誤解を招く手数料データです。PSBT インスペクターは PSBT をデコードし、欠けているフィールドや矛盾するフィールドを指摘します。

規格と参考文献

すべての用語