如何从1个公钥生成多个比特币地址?

时间:2018-03-26 09:54:34

标签: java hash bitcoin bitcoinj

我正面临有关比特币地址生成的问题。

public key

String xpub"xpub661MyMwAqRbcGJxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

我想从addresses生成多个xpub

我正在使用bitcoinJ库。

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

抛出例外:

  

未压缩编码的长度不正确

我读过很多文章,我发现Ripemd160(SHA256(string)); hashingencode Base58 from tensorflow.python.client import device_lib print(device_lib.list_local_devices()) ,但无法获得多个地址。

1 个答案:

答案 0 :(得分:3)

我不确定我的答案是否正确,因为我不知道BitcoinJ库是如何工作的,只是为了信息:

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

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

<强> 04 xpub661MyMwAqRbcGJxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

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

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/Address

祝你好运