Wallet

無法從助記符種子(Python)中獲取 bip32masterkey

  • March 5, 2022

我正在嘗試理解和實現分層確定性錢包的功能。但我無法根據本教程獲得 bip32masterkey:https ://medium.com/mycrypto/the-journey-from-mnemonic-phrase-to-address-6c5e86e11e14

這個助記符種子:0x77cdf1d92225adc0e67b1b4f5a31820251d518b3af074df25a07b751947fd07ebd29a4d0e57b84ea9de03a9123e2a6ea1e3ed739d4c562efec21f1bb0a54a89

應該給我這個 bip32masterkey : 0x300b155f751964276c0536230bd9b16fe7a86533c3cbaa7575e8d0431dbedf23f9945bb8b052bd0b0802c10c7c852e7765b69b61ce10233d9fe5ababab356

但是我有(pbkdf2):0x11df5cd2d2095dde0a46a8de0c2aba91a565e16dd0e5877d21285e605659d587bd3b3c72cba372ecf3b26fdf27151d9dc5d9f341760784cb04540f95d1

還有這個(hmac-sha512):0xc661464729610902524d0919cc3000af9bfbd4fa003e78979b6026bb24d150ae99c5f70573e3eaf1b04ab3c735adc7e410bb65557e1f35cdf9929f87825f

這是我正在使用的程式碼:

def get_bip32masterkey(seed):
   master_key = pbkdf2_hmac("SHA512", bytes(binascii.a2b_hex(seed)), bytes("Bitcoin seed".encode()), 1).hex()
   return (master_key)

我也嘗試使用 hmac 而不是 pbkdf2 但我無法獲得正確的 bip32masterkey,有人看到我缺少的點嗎?

這是我與 hmac 一起使用的程式碼:

def bip32masterkey(seed):
   seed = binascii.a2b_hex(seed)
   masterkey = hmac.new(key=bytes("Bitcoin seed".encode()), msg=seed, digestmod=sha512).hexdigest()
   return (masterkey)

(我不是 python 開發人員,我只是想了解基礎)

提前感謝大家的回答

編輯:看起來我使用的範例提供了錯誤資訊,並且我的 hmac 實現正在執行。

看起來我使用的範例提供了錯誤資訊,並且我的 hmac 實現正在執行。

編輯所以也許它更清楚一點:

我通過在此處粘貼我的 BIP39 種子來檢查它: https ://iancoleman.io/bip39/

並使用此站點對 base58 進行解碼: https ://appdevtools.com/base58-encoder-decoder

並檢查解碼結果與我的函式的返回,看看它是否匹配

hmac 匹配的結果

查看規範和教程中推薦的 FOSS 實現。當然,重新閱讀規範文件,仔細解析。

不僅是 Python,甚至包括 BX 和 bash 工具、腳本等 CLI 軟體;在嘗試編碼之前作為使用者獲得清晰的理解。

引用自:https://bitcoin.stackexchange.com/questions/112695