61 / 691DESC

Output Descriptor

出力ディスクリプタ

Output Descriptor は、Bitcoin の出力スクリプト集合と、その導出に必要な鍵を機械可読に記述するものです。単一の鍵やアドレスではなく、アドレス・ポリシーを正確に再現できます。

Descriptor はアドレス、seed、wallet ファイルではありません。wpkh(...) などが scriptPubKey の型、鍵の由来、derivation、任意の range を指定します。最終使用 index や scan birthday は別途保存が必要です。

Output Descriptor は scriptPubKey の集合と、導出または支出に必要な情報を記述します。wpkh(KEY) はその鍵の native SegWit 出力です。Bitcoin アドレス、seed、完全な wallet backup そのものではありません。

pk()、pkh()、wpkh()、sh()、wsh()、addr()、raw() は正確な出力スクリプトを定めます。sh(wpkh(KEY)) のような入れ子は scriptPubKey とアドレスを変え、同じ xpub でも別の wallet になります。

鍵には [fingerprint/path] の origin、xpub、追加 derivation を記せます。Key origin は signer の経路照合を助けますが、fingerprint は暗号学的な身元や端末認証ではありません。信頼できる経路で export を確認します。

Wildcard /* は ranged descriptor を作り、導出時に range が必要です。multipath <0;1> は receive と change の分岐をまとめられます。next index、使用済みアドレス、gap limit、scan birthday は descriptor 単体に残りません。

# の後の8文字は BIP 380 descriptor checksum です。多くの入力ミスや転置を検出しますが、署名、暗号化、出所証明ではありません。式を変更した者も有効な checksum を再計算できます。

xpub を含む公開 descriptor は署名なしで監視と導出ができます。xprv、WIF など秘密情報を含めば支出可能なので seed 同様に保護します。getdescriptorinfo は正規公開形式と hasprivatekeys を返します。

multi(k,...) は記載順を保持し、並べ替えるとスクリプトとアドレスが変わります。sortedmulti(k,...) は導出ごとに辞書順で整列します。backup には threshold、全 cosigners、key origins、wrapper が必要で、seed 一つでは不足です。

tr(KEY) は Taproot key path、tr(KEY,TREE) はさらに script path tree を記述します。木の形は Merkle root とアドレスを変えるため、順序のない一覧では不十分です。Miniscript や multi_a も完全な descriptor の代替ではありません。

importdescriptors は checksum 付き descriptor と timestamp、active、internal、range、next_index の metadata を受け取ります。timestamp が scan 開始を決め、遅い birthday は正しい rescan まで過去を隠します。全状態が式内にあるわけではありません。

受取前に getdescriptorinfo を実行し、checksum、isrange、issolvable、hasprivatekeys を確認します。deriveaddresses で複数の外部・change アドレスを導出し、元 wallet または hardware wallet 画面と比較します。完全復元も事前に試します。 出典: BIP 380 — Generic Output Script Descriptors; BIP 383 — multi() and sortedmulti() Descriptors; BIP 386 — tr() Output Script Descriptors; Bitcoin Core — Output Descriptors; Bitcoin Core RPC — importdescriptors.

理解を深めるには、この項目とあわせて次もお読みください ウォレット, Watch-only Wallet, Multisig, PSBT, Miniscript, Bitcoin. 次の項目からも参照されています Watch-only Wallet, Extended Public Key (xpub), PSBT, Miniscript.

DOC · 001BIP 380 — Generic Output Script Descriptors仕様 ↗DOC · 002BIP 383 — multi() and sortedmulti() Descriptors仕様 ↗DOC · 003BIP 386 — tr() Output Script Descriptors仕様 ↗DOC · 004Bitcoin Core — Output Descriptors文書 ↗DOC · 005Bitcoin Core RPC — importdescriptors文書 ↗
2026年8月1日確認一次資料を優先 · 投資助言ではありません