Ledger Nano S 是否有用於比特幣錢包的 xPub 或 zPub?
{ "xpub": "tpub-big-long-key-that-starts-with-tpub", "index": 1, "freshAddressPath": "84'/1'/1'/0/0", "id": "libcore:1:bitcoin_testnet:tpub-big-long-key-that-starts-with-tpub:native_segwit", "blockHeight": 2097540 }
當我從 Ledger Nano S 比特幣測試網錢包中複製“xPub”時,我發現正是這個(密鑰顯然被混淆了)。我很困惑,因為在我的新手研究中,我的理解是派生路徑 84’/1’/1’/0/0 用於 zpub 密鑰和 segwit 錢包。事實上,我分類賬中的錢包被標記為“segwit”。但是這裡的擴展密鑰被標記為“xpub”並且密鑰以“xpub”開頭,或者在比特幣測試網的情況下,它以“tpub”開頭。為什麼?
有人可以向我解釋為什麼這看起來很混亂嗎?這個密鑰是 xpub 還是 zpub?tpub 和 xpub 是一回事嗎?我應該使用 Bip32、Bip44 或 Bip84 來派生與我的賬本 nano 匹配的子密鑰(以及地址)嗎?
我找到了一個聰明的 python 類,可以將 xpub 轉換為 zpub。在這種情況下,這是正確的做法嗎?
<https://gist.github.com/jleo84/97fc58c6174f146642b2c215c20f88f5>
提前致謝!這是我在 Stack Exchange 上的第一個問題(別擔心,我還有更多問題),我非常感謝我能得到的任何支持或建議。
BIP 32 指定了擴展公鑰的序列化格式。此格式具有前綴
xpub
,並且對於可與 BIP 32 一起使用的所有公鑰都是通用的,無論地址類型或派生路徑如何。BIP 84 添加了一個額外的序列化,它導致前綴
zpub
指示從該擴展公鑰派生的密鑰只能用於本機 segwit 地址。錢包為 segwit 地址中使用的密鑰輸出 xpubs 是正確的。錢包為相同的密鑰輸出 zpubs 也是正確的。這僅取決於實施。序列化僅用於錢包的一些元數據,派生的密鑰都是相同的。為了獲得相同的地址,您需要一個錢包,該錢包將派生密鑰並在您期望的地址類型中使用它們。
tpub
是用於在測試網錢包中創建的擴展公鑰的前綴。