Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Output Descriptor

Output Descriptor

GBECの解説動画の資料です。
https://goblockchain.network/2021/03/output-descriptor/

C403a9e0b7bfed4c94020220b5ab89f7?s=128

shigeyuki azuchi

March 31, 2021
Tweet

Transcript

  1. Output Descriptor


  2. 1 Output Descriptorとは?
 Bitcoinのアウトプットスクリプト(scriptPubkey)を
 人が理解しやすい文字列で表現する仕様
 https://github.com/bitcoin/bitcoin/blob/master/doc/descriptors.md
 
 (例)P2PKH
 • scriptPubkey:


    OP_DUP OP_HASH160 H(<公開鍵>) OP_EQUAL OP_CHECKSIG
 • Output Descriptor: pkh(<公開鍵>)
 
 ※鍵だけでは、どのようなscriptPubkeyが構成されたか分からない
 (P2PKH、P2WPKH、P2SH-P2WPKH、マルチシグなど)
 

  3. 2 Output Descriptor function
 Output Descriptorの記述タイプ
 • pk(KEY)
 • pkh(KEY)


    • wpkh(KEY)
 • combo(KEY) → P2PK, P2PKH, P2WPKH, P2SH-P2WPKH
 • multi(k, KEY1, …, KEYn)
 • sortedmult(k, KEY1, …, KEYn)
 • sh(SCRIPT)
 • wsh(SCRIPT)
 wsh(multi(2, KEY1, KEY2, KEY3))
 • addr(アドレス)
 • raw(Hex SCRIPT)

  4. 3 Output Descriptor function
 • KEYの形式
 ◦ Hexエンコードされた公開鍵
 ◦ WIFエンコードされた秘密鍵


    ◦ 拡張公開鍵(xpub)
 ◦ 拡張秘密鍵(xprv)
 ◦ オプション
 ▪ xpub/xprvにはBIP-32の導出パス(/1/2, /1’, /1/*)
 xpub...gGDnw/1/2
 ▪ Key Origin Information([master fingerprint/path])
 [d34db33f/44'/0'/0']xpub...RcEL/1/2
 masterからxpubを導出した際の情報を付与
 • チェックサム
 オプションで、アルファベット8文字のチェックサムがSuffixに。

  5. 4 Output Descriptorの採用
 • Bitcoin Core v0.21.0から試験的にOutput Descriptorを使ったウォレットDescriptor Walletをサポート。
 ◦

    createwallet RPCのdescriptorsオプションをtrueに。
 ◦ Descriptor WalletのDBはSQLiteに。
 • Bitcoin Core v0.21.0でサポートされているOutput Descriptor関連のRPC
 ◦ scantxoutset
 ◦ getdescriptorinfo
 ◦ deriveaddresses
 ◦ listunspent
 ◦ getaddressinfo
 ◦ importmulti
 ◦ generatetodescriptor 
 ◦ utxoupdatepsbt
 ◦ createmultisig
 ◦ addmultisigiaddress