Bip32-Hd-Wallets

如何獲得主鏈碼

  • May 22, 2016

我正在使用 NBitcoin 並創建了一個ExtKey對象。現在我需要獲取這個 HD 節點的主鏈程式碼(參見 Mastering Bitcoin 的第 89 頁以獲得很好的解釋)。我該怎麼做呢?

根據 Mastering Bitcoin 的說法,根種子與 HMAC-SHA512 一起使用以創建 512 位輸出。左 256 位用於主私鑰,右 256 位用於主鏈碼。但是,當我呼叫GetBytes()我的ExtKey對象時,它會返回一個 byte[74] 數組。這對應於 592 位。我不知道額外的 80 位是什麼,所以我不能只取正確的 256 位。

我通過一個拉取請求解決了這個問題,該請求添加了一個屬性ExtKeyExtPubKey允許您呼叫該ChainCode屬性。請參閱拉取請求 156

它已合併到NuGet 上可用的 NBitcoin 3.0.0.28 中

以下是您可以做的一些事情,我在評論中指出了您需要的內容:

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 的相應部分

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