Raw-Data
輸出描述符序列化
我正在查看以下官方測試向量:
wsh(multi(1,xpub661MyMwAqRbcFW31YEwpkMuc5THy2PSt5bDMsktWQcFF8syAmRUapSCGu8ED9W6oDMSgv6Zz8idoc4a6mr8BDzTJY47LJhkJ8UB7WEGuduB/1/0/*,xpub69H7F5d8KSRgmmdJg2KhpAK8SR3DjMwAdkxj3ZuxV27CprR9LgpeyGmXUbC6wb7ERfvrnKZjXoUmmDznezpbZb7ap6r1D3tgFxHmwMkQTPH/0/0/*))
對於第一個鍵,它被序列化為:
04 ; version 4 88b21e ; `xpub` 00 ; depth 0 == public key of a master key 00000000 ; parent fingerprint 00000000 ; child index 60499f801b896d83179a4374aeb7822aaeaceaa0db1f85ee3e904c4defbd9689 ; chain code 03cbcaa9c98c877a26977d00825c956a238e8dddfbd322cce4f74b0b5bd6ace4a7 ; key data e233a252 ; base58 checksum
和第二把鑰匙:
04 ; version 4 88b21e ; `xpub` 01 ; depth 1 bd16bee5 ; parent fingerprint 00000000 ; child index f0909affaa7ee7abe5dd4e100598d4dc53cd709d5a5c2cac40e7412f232f7c9c ; chain code 02fc9e5af0ac8d9b3cecfe2a888e2117ba3d089d8585886c9c826b6b22a98d12ea ; key data 44183bfc ; base58 checksum
- 我的問題是例如第二個鍵:深度是否與附加的尾部/0/0/*有關?如果是,不應該是 2 而不是 1 嗎?可以從附加的尾部恢復深度嗎?
- 為什麼第二個鍵的子索引為零?它應該不等於對應於星星的數字。可以從附加的尾部 /0/0/* 中恢復子索引嗎?
看起來您將 BIP 32 序列化與輸出描述符序列化混淆了。
輸出描述符包含使用 BIP 32 中描述的方法序列化的擴展公鑰。此序列化僅適用於該特定公鑰。附加到末尾的派生是獨立的,並且與該 xpub 的序列化分開。那是描述符的一部分。
- 我的問題是例如第二個鍵:深度是否與附加的尾部/0/0/*有關?如果是,不應該是 2 而不是 1 嗎?可以從附加的尾部恢復深度嗎?
不,尾巴是獨立於 xpub 的。深度僅適用於由 xpub 序列化的 pubkey,派生路徑不是其中的一部分。
- 為什麼第二個鍵的子索引為零?它應該不等於對應於星星的數字。可以從附加的尾部 /0/0/* 中恢復子索引嗎?
因為序列化只針對那個特定的 xpub。附加的派生資訊不是此序列化的一部分。