Cryptography NBitcoin与记忆标准
我是比特币开发的新手,所以请原谅我 我在.Net控制台应用程序中使用NBitcoin,使用助记符生成主密钥,然后派生分层密钥。以下是我正在使用的代码:Cryptography NBitcoin与记忆标准,cryptography,bitcoin,blockchain,nbitcoin,Cryptography,Bitcoin,Blockchain,Nbitcoin,我是比特币开发的新手,所以请原谅我 我在.Net控制台应用程序中使用NBitcoin,使用助记符生成主密钥,然后派生分层密钥。以下是我正在使用的代码: Mnemonic mnemo = new Mnemonic(Wordlist.English, WordCount.Twelve); ExtKey hdroot = mnemo.DeriveExtKey(); var wif = hdroot.GetWif(Network.Main); var defaultAddress = hdroot.De
Mnemonic mnemo = new Mnemonic(Wordlist.English, WordCount.Twelve);
ExtKey hdroot = mnemo.DeriveExtKey();
var wif = hdroot.GetWif(Network.Main);
var defaultAddress = hdroot.Derive(new KeyPath("m/0/0"));
这是我得到的助记符,以及使用“m/0/0”路径从主密钥派生的公共地址:
助记符:干棕色驾驶游行激烈的光泽拥抱硬报告贷款折叠铁
路径:m/0/0/:1GcchMaHAN1XRQsoi8gPg8TShqzN4sNGvu
我测试了使用助记符重新创建我的密钥,并且始终能够在我的控制台应用程序中获得与预期相同的精确密钥
出于好奇,我想看看是否可以将这个助记符导入现有的钱包软件,并获得相同的钥匙。因为《出埃及记》钱包使用的是标准的12字助记符,所以我启动了它,并用同样的助记符生成了我的钱包。但是没有一把钥匙匹配!我导出了我的公钥,并确保它与主密钥中的“m/0/0”路径相同。正如您所看到的,这不是一个匹配:
使用相同的助记符从Exodus导出公钥:
助记符:干棕色驾驶游行激烈的光泽拥抱硬报告贷款折叠铁
地址:1DMDJ266gxMCJiTcWk5MZFbfxxx4Ss3URN
路径:m/0/0
我还测试了Jaxx上的助记符以及Android上的Coinomi钱包,它得到了与Exodus相同的键
所以我完全糊涂了。我能想到的唯一一件事是,这些钱包使用的标准熵在我的实现中缺失了
我的问题是,如何使用NBitcoin创建与Exodus、Coinomi和Jaxx等钱包相同的助记标准?1DMD由路径m/44'/0'/0'/0/0生成 试试这个:
Mnemonic mnemo = new Mnemonic("dry brown drive parade drastic shine embrace hard report loan fold iron",Wordlist.English);
ExtKey hdroot = mnemo.DeriveExtKey();
var firstprivkey = hdroot.Derive(new KeyPath("m/44'/0'/0'/0/0"));
var firstpubKey = firstprivkey.Neuter().PubKey;
return firstpubKey.GetAddress(Network.Main).ToString();
1DMD由路径m/44'/0'/0'/0/0生成 试试这个:
Mnemonic mnemo = new Mnemonic("dry brown drive parade drastic shine embrace hard report loan fold iron",Wordlist.English);
ExtKey hdroot = mnemo.DeriveExtKey();
var firstprivkey = hdroot.Derive(new KeyPath("m/44'/0'/0'/0/0"));
var firstpubKey = firstprivkey.Neuter().PubKey;
return firstpubKey.GetAddress(Network.Main).ToString();