Bitcoin 地址原理公钥地址到比特币地址

Posted thefist11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bitcoin 地址原理公钥地址到比特币地址相关的知识,希望对你有一定的参考价值。

1. 得到公钥

生成了私钥之后,我们使用椭圆曲线加密算法(ECDSA-secp256k1)计算私钥所对应的非压缩公钥,生成的公钥共65字节, 其中一个字节是0x04,其中32个字节是X坐标,另外32个字节是Y坐标:
公钥P.X:06CCAE7536386DA2C5ADD428B099C7658814CA837F94FADE365D0EC6B1519385

公钥P.Y:FF83EC5F2C0C8F016A32134589F7B9E97ACBFEFD2EF12A91FA622B38A1449EEB

上述公钥地址拼合,得到标准地址(130*4bit=65字节)
0406CCAE7536386DA2C5ADD428B099C7658814CA837F94FADE365D0EC6B1519385FF83EC5F2C0C8F016A32134589F7B9E97ACBFEFD2EF12A91FA622B38A1449EEB

2. 公钥的SHA-256哈希值

对齐进行SHA-256哈希计算,得到结果(64*4bit=32字节):2572e5f4a8e77ddf5bb35b9e61c61f66455a4a24bcfd6cb190a8e8ff48fc097d

3. 计算 RIPEMD-160哈希值(40*4bit=40个16进制数 = 20字节)

取上一步结果,进行RIPEMD-160计算,得到结果:0b14f003d63ab31aef5fedde2b504699547dd1f6

4. 加入地址版本号(比特币主网版本号“0x00”)(21个字节)

取上一步结果,在前面加上16进制的00,即:00 0b14f003d63ab31aef5fedde2b504699547dd1f6

5. 计算 SHA-256 哈希值 取上一步结果,进行SHA-256计算,可得:(64*4bit=32字节)

ddc2270f93cc84cc6869dd373f3c340bbf5cb9a8f5559297cc9e5d947aab2536 然后,对以上结果再次计算 SHA-256 哈希值,得到:
869ac57b83ccf75ca9da8895823562fffb611e3c297d9c2d4612aeeb32850078

6. 取上一步结果的前4个字节
869ac57b

7. 把这4个字节加在第五步的结果后面 作为校验位(50*4bit= 25字节)

将这4个字节加载第五步的结果后面,这就是比特币地址的16进制形态了:

000b14f003d63ab31aef5fedde2b504699547dd1f6869ac57b

8. 用Base58编码变换一下地址(17字节)

对上一步的结果进行Base58编码,得到
1QCXRuoxWo5Bya9NxHaVBArBQYhatHJrU7

以上是关于Bitcoin 地址原理公钥地址到比特币地址的主要内容,如果未能解决你的问题,请参考以下文章

写给小白的比特币入门

比特币地址前缀列表

比特币『私钥』『公钥』『钱包地址』间的关系

比特币概念

密钥和地址

从 ECDSA 公钥生成比特币地址