0

我面临一个关于生成比特币地址的问题。

我有public key

String xpub"xpub661MyMwAqRbcGJxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

我想addressesxpub.

我正在使用bitcoinJ图书馆。

ECKey key=ECKey.fromPublicOnly(Base58.decode(xpub));

它抛出以下异常:

未压缩编码的长度不正确

我读了很多文章,我发现Ripemd160(SHA256(string));.
之后hashing,我encodeBase58,但无法实现多个地址。

4

1 回答 1

3

我不确定我的答案是否正确,因为我不知道 BitcoinJ 库是如何工作的,但仅供参考:

比特币公钥与 RSA 公钥有点不同,您应该04在字符串的开头添加。

在您的情况下,键值应等于:

04 xpub661MyMwAqRbcGJxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

因此生成的公钥将具有以下内容:

1字节0x04 + 65字节:32字节对应X坐标,32字节对应Y坐标

查看:

https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses https://en.bitcoin.it/w/images/en/9/9b/PubKeyToAddr.png

要测试/验证您的地址,您可以使用此站点:

http://gobittest.appspot.com/地址

祝你好运

于 2018-03-26T10:36:44.083 回答