比特币基础教学之:比特币地址格式简介

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

还不知道什么是公钥的同学请点这里
blockchain所给出的HASH160值
比特币地址的HASH160指的是什么?比特币地址的公钥说的是什么?

我们常用的比特币地址格式有五种:
BASE58格式HASH160格式WIF压缩格式60位公钥格式
就是人们常说的比特币地址,由1开头的,例如:1PyMi4EYzGZKoxK7DozMMuoQ91EdrMMkBP
Tab content 由RIPEMD160算法对130位公钥的SHA256签名进行计算的结果,如:fbfb58defc272942fc31d00c007b59aa4cb5087a
即钱包输入格式,是将BASE58格式进行压缩后的结果130位公钥格式 这是最原始的由ECDSA算法计算出来的比特币公钥,如:0469B0E479C9A358908DB9CF4628BDD643C3F8
1C4F0096AAD442DA6CA8BCC4FD86A8D47D7A865E178B6D062CC9B70290
8973952062A1D767DA9B2BD2095D5CCF6E
130位公钥进行压缩后的结果,如:0269B0E479C9A358908DB9CF4628BDD643
C3F81C4F0096AAD442DA6CA8BCC4FD86

今天编者就带大家顺一顺比特币地址各种格式之间的关系。
比特币地址的计算
首先,让我们先简单的说说比特币地址是怎么算出来的。比特币是建立在数学加密学基础上的,中本聪大神用了椭圆加密算法(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的计算程序,读者可以参考。
下面是比巴克提供的比特币格式转化程序
Base2HashHash2Base Hash2PubkeyNewkey
比特币地址BASE58格式转为HASH160格式:

比特币地址HASH160格式转为BASE58格式:

比特币地址原始ECDSA公钥转化为HASH160格式:

点击生成比特币地址和私钥:

输出结果:

作者:P2PBUCKS ,转载请注明出处并保持文章完整。