watch-onlyは能力境界である。public key、script、descriptorは知るがsigning secretはない。balance計算とPSBT作成はでき、別signerが承認する。online key除去は遠隔盗難を減らすがcoordinator表示の正しさを保証しない。
既知scriptのoutputを認識しconfirmationを追跡してUTXOを合計する。key所有、署名能力、最良chainを自ら証明しない。balanceは発見済みwatch setだけであり、単一addressとdescriptor walletの範囲は異なる。 [Bitcoin Core RPC — createwallet] [Bitcoin Core RPC — importdescriptors]
address importは一scriptのみで将来receive/changeを導出しない。account xpubはnon-hardened childを導出するがP2PKH、SegWit、Taproot、internal branch、thresholdを指定しない。descriptorがpolicyを持つ。正しいaccount/network/script typeからexportする。 [BIP 32 — Hierarchical Deterministic Wallets] [BIP 380 — Output Script Descriptors] [Bitcoin Core — Output Descriptors]
BIP380はoutput script集合を記述する。wpkh([fingerprint/path]xpub…/0/*)#checksumはtemplate、origin、branch、wildcard、checksumを含み、tr()はBIP386、multipathはBIP389。checksumは誤記検出で送信者認証ではない。xprv入りはwatch-onlyではない。 [BIP 380 — Output Script Descriptors] [BIP 386 — tr() Output Script Descriptors] [BIP 389 — Multipath Descriptor Key Expressions] [Bitcoin Core — Output Descriptors]
HD walletは通常/0/* receive、/1/* changeを使う。internal欠落はchangeを隠し、小さいrangeや古いnext_indexはdepositを隠す。同期しないcoordinatorはaddressを再利用する。状態を合わせsigner displayでaddress確認する。 [BIP 389 — Multipath Descriptor Key Expressions] [Bitcoin Core RPC — importdescriptors]
importdescriptorsのtimestampはscan開始点で、nowは旧履歴を飛ばし0はgenesisから。range、active/internal、block availability、pruningが結果を左右する。空balanceはkey損失ではない。birthday/heightを記録し既知transactionで復旧確認する。 [Bitcoin Core RPC — importdescriptors] [Bitcoin Core — Offline Signing Tutorial]
coordinatorがUTXO、destination、fee、changeを選びPSBTを作る。BIP174がoffline signerへoutputs、scripts、pathsを渡す。trusted displayでdestination、amount、fee、sighash、changeを確認し、broadcast前にfinal transactionを照合する。 [BIP 174 — Partially Signed Bitcoin Transaction Format] [Bitcoin Core — Offline Signing Tutorial]
xpubは支出不能でもnon-hardened descendantsを公開し、過去未来address、balance、timing、changeをcluster可能にする。第三者serverへのqueryもwatch setを漏らす。own full node、account分離、copy削減、descriptor/label保護が必要。 [BIP 32 — Hierarchical Deterministic Wallets] [Bitcoin Optech — Output Script Descriptors] [Sparrow Wallet — Quick Start Guide]
BIP32ではparent xpubとnon-hardened child private key一つでparent private keyを復元できる。xpub単独ではなく組合せがbranchを危険にする。account上のhardened境界が影響を限定する。xprvやseedをimportしない。 [BIP 32 — Hierarchical Deterministic Wallets]
multisigにはthreshold、script type、全cosigner xpub、origin、order、両branchが要る。seedだけでは別addressになり得る。各signerでpolicyと例addressを確認しchecksummed configurationをbackupし、共同graphを秘匿する。 [BIP 380 — Output Script Descriptors] [Bitcoin Core — Multisig Tutorial]
receive/change descriptor、origin、network、birthday、range、label、policyをkeyと別にbackupする。BIP329 labelはpolicyを代替しない。import、rescan、既知address、UTXO、PSBT、signature、final transactionを試験する。watch-onlyは観測であり権限ではない。 [BIP 329 — Wallet Labels Export Format] [Bitcoin Core RPC — importdescriptors] [Electrum — Cold Storage]
理解を深めるには、この項目とあわせて次もお読みください Extended Public Key (xpub), ウォレット, Cold Storage, Output Descriptor, PSBT, Bitcoin. 次の項目からも参照されています HD Wallet, Cold Storage, Extended Public Key (xpub), Output Descriptor.