Bip32-Hd-Wallets
如何獲得主鏈碼
我正在使用 NBitcoin 並創建了一個
ExtKey
對象。現在我需要獲取這個 HD 節點的主鏈程式碼(參見 Mastering Bitcoin 的第 89 頁以獲得很好的解釋)。我該怎麼做呢?根據 Mastering Bitcoin 的說法,根種子與 HMAC-SHA512 一起使用以創建 512 位輸出。左 256 位用於主私鑰,右 256 位用於主鏈碼。但是,當我呼叫
GetBytes()
我的ExtKey
對象時,它會返回一個 byte[74] 數組。這對應於 592 位。我不知道額外的 80 位是什麼,所以我不能只取正確的 256 位。
我通過一個拉取請求解決了這個問題,該請求添加了一個屬性
ExtKey
並ExtPubKey
允許您呼叫該ChainCode
屬性。請參閱拉取請求 156。
以下是您可以做的一些事情,我在評論中指出了您需要的內容:
var masterPrivateKey = new ExtKey(); var masterPublicKey = masterPrivateKey.Neuter(); // This is what you need: var masterMainNetPrivateKey = masterPrivateKey.GetWif(Network.Main); var masterTestNetPrivateKey = masterPrivateKey.GetWif(Network.TestNet); var masterMainNetPublicKey = masterPublicKey.GetWif(Network.Main); var masterTestNetPublicKey = masterPublicKey.GetWif(Network.TestNet);
您可能需要查看C# Bitcoin book 的相應部分。