Bip32-Hd-Wallets
bip32 版本字節如何轉換為 base58?
將 BIP32 版本字節 -
x04\x88\xad\xe4
- 從 base256 轉換為 base58 和 base58Check 分別返回7irrX
和1kz713TZjju
。我認為版本字節表示
xprv
。我錯過了什麼?我正在使用pybitcointools,如果這有所作為。
就像在正常比特幣地址(或任何基於 58 編碼的地址)中一樣,版本字節不會自行編碼。如序列化格式部分所述,有 78 字節的有效負載在被編碼為基數 58 之前被版本化和校驗和:
- 4 byte:版本字節(主網:0x0488B21E public,0x0488ADE4 private;testnet:0x043587CF public,0x04358394 private)
- 1 字節:深度:0x00 用於主節點,0x01 用於 1 級派生密鑰,….
- 4 個字節:父密鑰的指紋(如果是主密鑰,則為 0x00000000)
- 4 個字節:子編號。這是 xi = xpar/i 中 i 的 ser32(i),其中 xi 是鍵 > - 被序列化。(如果是主密鑰,則為 0x00000000)
- 32字節:鏈碼
- 33 字節:公鑰或私鑰數據(公鑰為 serP(K),私鑰為 0x00 || ser256(k))
當您對多字節結構進行 base58 序列化時,沒有字節到字元的映射。這不像 0x04 變成 ‘x’,0x88 變成 ‘p’ 等等。相反,整個 86(78 個有效負載 + 4 個版本 + 4 個校驗和)字節結構被編碼為以 ‘xpriv’ 開頭的東西,當 4 個最重要的字節時86 個字節的結構是 [0x04, 0x88, 0xad, 0xe4]。