Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cryptography NBitcoin与记忆标准_Cryptography_Bitcoin_Blockchain_Nbitcoin - Fatal编程技术网

Cryptography 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

我是比特币开发的新手,所以请原谅我

我在.Net控制台应用程序中使用NBitcoin,使用助记符生成主密钥,然后派生分层密钥。以下是我正在使用的代码:

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();