BTC的地址生成过程如下,完整的可以查一下比特币中文维基:
生成比特币地址的过程
(说明: 有些数字以"0x"一开始,这意味着这个数字使用16进制表示法。"0x"它本身没有任何意义,它是由C语言传下来的,同意传统的写作方法,如0xA十进制10。另外,一个字节 = 8位二进制 = 二位十六进制)。
第一步,随机选择32字节的数量和大小介于1 ~ 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 在4141之间,作为私钥。
18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725
第二步,采用椭圆曲线加密算法(ECDSA-secp256k1)计算私钥对应的非压缩公钥。(共65字节,1字节 0x04,32字节为x坐标,32字节为y坐标。
0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B
23522CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6
第三步,计算公钥 SHA-256 哈希值
600FFE422B4E00731A59557A5CCA46CC183944191006324A447BDB2D98D4B408
第四步,取上一步结果,计算 RIPEMD-160 哈希值
010966776006953D5567439E5E39F86A0D273BEE
第五步,取上一步结果,前面加入地址版本号(比特币主网版本号“0x00”)
00010966776006953D5567439E5E39F86A0D273BEE
第六步,取上一步结果,计算 SHA-256 哈希值
445C7A8007A93D8733188288BB320A8FE2DEBD2AE1B47F0F50BC10BAE845C094
第七步,取上一步结果,然后计算 SHA-256 哈哈)
D61967F63C7DD183914A4AE452C9F6AD5D462CE3D277798075B107615C1A8A30
第八步,取上一步结果的前四个字节(8位16进制)
D61967F6
第九步,将这四个字节添加到第五步的结果中作为验证(这是比特币地址的16进制形式)。
00010966776006953D5567439E5E39F86A0D273BEED61967F6
第十步,用base58表示法改变地址(这是比特币地址最常见的形式)。
16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM