如果我们简单的把比特币钱包比作银行卡账户,那么比特币钱包地址就可以看作是银行卡账户。不同的是,比特币地址可以存储在互联网上,它可以独立于你的钱包而存在。
神秘比特币地址解释:
当你看到这样的一串字符时,你有什么感觉:
1m 8 dpubqxsvunnnixw 5 fdrcixctwpud
在接触比特币之前,你会说,不就是一堆乱码吗?
没错,这是在你知道比特币之前,知道比特币之后,你所谓的乱码就是你的比特币地址。这个地址就像你的银行卡账户一样,可以方便快捷的查询和交易你的比特币。
那么为什么要用这样的格式作为比特币的地址呢?让我们慢慢来了解。
常用的比特币地址格式
1.BASE58格式
就是人们常说的比特币地址,以1开头,比如:
1 M8 dpubqxsvunnnixw 5 fdrcixctwpud
2.哈希160格式
用RIPEMD160算法计算130位公钥的SHA256签名的结果,如:
fbfb 58 defc 272942 fc 31d 00 c 007 b 59 aa 4c b 5087 a
3.WIF压缩格式
也就是说,钱包输入格式是压缩BASE58格式的结果,是130位公钥格式。这是ECDSA算法计算出来的最原始的比特币公钥,比如:
0469 b 0e 479 c9a 358908 db 9 cf 4628 BDD 643 C3 f 8
1 C4 f 0096 ad 442 da 6 ca 8 BC C4 FD 86 A8 d47d 7 a 865 e 178 b 6d 062 cc 9 b 702908973952062 a 1d 767 da 9 B2 BD 2095 D5 CCF 6 e
4.60位公钥格式
30位公钥的压缩结果,例如:
0269 b 0e 479 c 9 a 358908 db 9 cf 4628 BDD 643 C3 f81 C4 f 0096 ad 442 da 6 ca 8 BC C4 FD 86
这些人物是怎么形成的?
先简单说一下比特币地址是怎么算出来的。比特币基于数学密码学。中本聪大神用椭圆加密算法(ECDSA)生成了比特币的私钥和公钥。可以从私钥计算出公钥,公钥的值会通过一系列的数字签名操作得到比特币地址。
注意:因为公钥可以计算比特币地址,所以我们经常会把公钥和比特币地址混淆,但它们指的是同一个概念。比特币地址只是另一种格式的公钥。
从比特币私钥中获取我们使用的比特币地址需要十个步骤。
第一步:
选择一个随机的32字节数,大小为1 ~0x ffffffffffffffffffff fffebaae DCE 6 af 48 a 0 bfd 2 5e 8 CD 036 4141作为私钥。
18e 14 a 7a 6b 6 a 307 f 426 a 94 f 8114701 e 7 c8e 774 e 7 f 9 a 47 e 2c 2035 db 29 a 206321725
第二步:
椭圆曲线加密算法(ECDSA-secp256k1)用于计算私钥对应的未压缩公钥。(共65个字节,1个字节0x04,x坐标32个字节,y坐标32个字节)公钥压缩和不压缩的问题分别说明。
0450863 ad 64 a 87 AE 8 a2 Fe 83 C1 a f1 a 8403 CB 53 f 53 e 486d 8511 dad 8 a 04887 e5b 23522 CD 470243453 a 299 fa 9e 7723716103 ABC 11 a 1 df 38855 ed 6 F2 ee 187 e 9 c 582 ba 6
第三步:
计算出的公钥的SHA-256哈希值
600 FFE 422 b4e 00731 a 59557 a5 CCA 46 cc 183944191006324 a 447 BDB 2d 98d 4b 408
第四步:
取上一步的结果,计算RIPEMD-160哈希值。
010966776006953d 5567439 e 5e 39 f 86 a0d 273 bee
第五步:
取上一步的结果,在前面加上地址版本号(比特币主网版本号“0x00”)。
00010966776006953d 5567439 e 5e 39 f 86 a0d 273 bee
第六步:
取上一步的结果,计算SHA-256哈希值。
445 c7a 8007 a93d 8733188288 bb 320 a 8 Fe 2 debd 2 AE 1 b 47 f 0 f 50 BC 10 BAE 845 c 094
第七步:
取上一步的结果,计算SHA-256哈希值(哈哈)
d 61967 f 63 c 7 DD 183914 a 4 AE 452 c 9 F6 ad 462 ce 3d 277798075 b 107615 C1 A8 a 30
第八步:
取上一步结果D61967F6的前4个字节(8位十六进制)
第九步:
将这4个字节加到步骤5的结果中作为校验(这是比特币地址的十六进制形式)。
00010966776006953d 5567439 e 5e 39 f 86 a0d 273 beed 61967 f 6
第十步:
使用base58记数法更改地址(这是最常见的比特币地址形式)。
1 M8 dpubqxsvunnnixw 5 fdrcixctwpud
这就是比特币地址生成的过程,所以有人会问,既然都是随机生成的,那么比特币的地址会不会重复?这个问题肯定不用担心。因为比特币的私钥长度是一个256位的二进制串,两个随机生成的私钥被完全复制的概率是2 ^ 25610 ^ 77中的一个,这个概率大到你无法想象,比彩票中奖的概率小很多。