比特币地址

来源:互联网 发布:java设计模式书籍知乎 编辑:程序博客网 时间:2024/05/16 10:56

转自:http://p2pbucks.com/?p=4162

比特币对于初学者来说最大的困难就是比特币地址那一串长长的字符串,各种格式的比特币地址更是让外行人看的迷迷糊糊。就算是比特币的老玩家也未必能准确的说出各种比特币地址格式之间的关系。

公钥和私钥
比特币钱包里面记录了比特币公钥(比特币地址)和私钥。
比特币地址是P2P网络上数据区块存放比特币的网络特征标识,就像Email地址和银行卡号一样。私钥是指你对相应比特币地址的上比特币的拥有权,就像Email密码和银行卡号密码一样。

如果你还是不明白,请点击相关教学链接:
1、比特币基础教学之:什么是比特币钱包
2、比特币基础教学之:如何备份比特币钱包
3、比特币基础教学之:怎样用脑钱包
4、比特币基础教学之:怎样使用纸钱包
5、比特币基础教学之:怎样使用纸钱包私匙

blockchain所给出的HASH160值
比特币地址的HASH160指的是什么?比特币地址的公钥说的是什么?


我们常用的比特币地址格式有四种:

BASE58格式-HASH160格式-WIF压缩格式-60位公钥格式
BASE58格式就是人们常说的比特币地址,由1开头的,例如:1PyMi4EYzGZKoxK7DozMMuoQ91EdrMMkBP


比特币地址的计算

首先,让我们先简单的说说比特币地址是怎么算出来的。比特币是建立在数学加密学基础上的,中本聪大神用了椭圆加密算法(ECDSA)来产生比特币的私钥和公钥。由私钥是可以计算出公钥的,公钥的值经过一系列数字签名运算会得到比特币地址。
需要说明的是:因为由公钥可以算出比特币地址,所以我们经常把公钥和比特币地址的说法相混淆,但是他们都是指的一个概念。比特币地址只是另一种格式的公钥。
从比特币私钥得到我们所用的比特币地址需要九个步骤。中间要用到SHA256加密、RIPEMD160加密和BASE58编码。我们最终用到的比特币私钥和比特币地址一般都是经过BASE58编码的结果。整个流程如下图所示。

我们经常说的比特币公钥就是指的图中第二步所产生的结果。而HASH160指的是第四步RIPEMD160签名所产生的结果,由于RIPEMD也是一种HASH算法所以就统称为HASH160了。而我们常用的比特币地址就是经过BASE58编码后的结果。


比特币客户端和钱包也接受各种比特币地址格式,常用的格式有BASE58格式、WIF压缩格式、130位和66位公钥(Public key)格式。进入比巴克的钱包工具点击钱包详情查询页面,如下图,红色框中130位的字符串就是比特币ECDSA算出的原始公钥,下面是公钥压缩成66位的格式,上面两个分别是我们常用的比特币BASE58地址格式和比特币地址WIF(wallet import format)压缩格式。


其实现在各种格式的地址基本上都是通用的,在学习了相关知识后,我们会对比特币体系有更加深入的理解。
Gobittest网站(国外可访问)提供了从比特币原始私钥到公钥再到HASH160和BASE58的计算程序,读者可以参考。

0 0