C# NBitcoin和从xpub密钥生成地址

C# NBitcoin和从xpub密钥生成地址,c#,bitcoin,C#,Bitcoin,我正在尝试编写一个算法,从已知的xpubkey生成公共比特币地址。我用于测试的密钥可以在blockchain.info上找到 我正在尝试这样的方法来生成路径0,0,0上的地址,如下所示: var pubkey = new ExtPubKey(Encoding.ASCII.GetBytes("6CUGRUonZSQ4TWtTMmzXdrXDtypWKiKrhko4egpiMZbpiaQL2jkwSB1icqYh2cfDfVxdx4df189oLKnC5fSwqPfgyP3hoox

我正在尝试编写一个算法,从已知的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));
但是我没有完全理解一些东西,因为我在尝试实例化ExtPubKey时得到了一个“无效点编码103”。

Via


已测试,生成预期的第一个地址。

您得到的编码无效,因为您正在尝试编码

“6CUGROUONZSQ4TWTTMMZXDRXDTYPTWKIKRHKO4EGPIMZBPIAQL2JKWSB1ICQYH2CFXDX4DF189OLKNC5FSWQPFGYP3HOOXUJYZAU3FDVMZ”

而不是

xpub6CUGROUONZSQ4TWTTMMZXDRXDRXDTYPTWKIKRHKO4EGPIMZBPIAQL2JKWSB1ICQYH2CFXDX4DF189OLKNC5FSWQPFGYP3HOOXUJYZAU3FDVMZ”

您从一开始就缺少xpub

var pubkey = ExtPubKey.Parse("xpub6CUGRUonZSQ4TWtTMmzXdrXDtypWKiKrhko4egpiMZbpiaQL2jkwSB1icqYh2cfDfVxdx4df189oLKnC5fSwqPfgyP3hooxujYzAu3fDVmz");
var newAddress = pubkey.Derive(0).Derive(0).PubKey.GetAddress(Network.Main);
Console.WriteLine(newAddress);