我试图编写一个从已知的xpubkey生成公共比特币地址的算法。我可以在
的blockchain.info找到用于测试的密钥我尝试使用类似的方法在路径0,0,0上生成地址,如下所示:
var pubkey = new ExtPubKey(Encoding.ASCII.GetBytes("6CUGRUonZSQ4TWtTMmzXdrXDtypWKiKrhko4egpiMZbpiaQL2jkwSB1icqYh2cfDfVxdx4df189oLKnC5fSwqPfgyP3hooxujYzAu3fDVmz"));
Console.Writeline(pubkey.Derive(0).Derive(0).Derive(0).PubKey.GetAddress(Network.Main));
但是我没有完全理解某些内容,因为我得到了一个无效的点编码103'在尝试实例化ExtPubKey时。
答案 0 :(得分:3)
通过https://bitcointalk.org/index.php?topic=1242247.0
var pubkey = ExtPubKey.Parse("xpub6CUGRUonZSQ4TWtTMmzXdrXDtypWKiKrhko4egpiMZbpiaQL2jkwSB1icqYh2cfDfVxdx4df189oLKnC5fSwqPfgyP3hooxujYzAu3fDVmz");
var newAddress = pubkey.Derive(0).Derive(0).PubKey.GetAddress(Network.Main);
Console.WriteLine(newAddress);
经过测试,生成预期的第一个地址。
答案 1 :(得分:1)
您获得的编码无效,因为您正在尝试编码
“6CUGRUonZSQ4TWtTMmzXdrXDtypWKiKrhko4egpiMZbpiaQL2jkwSB1icqYh2cfDfVxdx4df189oLKnC5fSwqPfgyP3hooxujYzAu3fDVmz”
而不是
“ xpub 6CUGRUonZSQ4TWtTMmzXdrXDtypWKiKrhko4egpiMZbpiaQL2jkwSB1icqYh2cfDfVxdx4df189oLKnC5fSwqPfgyP3hooxujYzAu3fDVmz”
您从一开始就缺少 xpub 。