我对比特币的开发非常陌生,所以请原谅我.
我正在使用NBitcoin在.Net控制台应用程序中使用助记符生成主键,然后导出层次键。下面是我使用的代码:
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"));因此,下面是我得到的Mnemonic,以及使用"m/0/0"路径从主键派生的公共地址:
Mnemonic:干棕车游行激烈闪耀拥抱硬报告贷款折铁 路径: m/0/0/: 1 GcchMaHAN1XRQsoi8gPg8TShqzN4sNGVU
我测试了使用助记符重新创建我的密钥,并且总是能够在我的控制台应用程序中得到与预期相同的密钥。
出于好奇,我想看看是否可以将这个助记符导入到现有的钱包软件中,并获得相同的密钥。由于Exodus钱包使用了一个标准的12个单词的记忆,我启动它,并产生了我的钱包使用相同的助记符。然而,没有一个键匹配!我导出了我的公钥,并确保它是来自主服务器的"m/0/0“的相同路径。正如你所看到的,这是不匹配的:
使用相同的助记符:从Exodus导出公钥
Mnemonic:干棕车游行激烈闪耀拥抱硬报告贷款折铁 地址:1 266gxMCJiTcWk5MZFbfxxx4Ss3URN 路径: m/0/0
我还在Jaxx上测试了助记符,在Android上测试了Coinomi钱包,它得到了与Exodus相同的密钥。
所以我完全糊涂了。我唯一能想到的是,这些钱包使用的标准熵是我的实现中缺少的吗?
我的问题是,如何使用NBitcoin来创建像Exodus、Coinomi和Jaxx这样的钱包一样的助记符?
发布于 2017-10-10 00:05:20
1 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();https://stackoverflow.com/questions/46550818
复制相似问题