【比特币大讲堂】比特币的地址是什么

如果我们把比特币钱包简单比作成银行卡账户的话,那么比特币钱包地址就可以看成是银行卡账号。不同的是,比特币地址是可以不存储在网络上的,更是可以独立于你的钱包而存在的。

神秘的比特币地址详解

当你看到像这样的一串字符的时候你是什么感想:

1M8DPUBQXsVUNnNiXw5oFdRciguXctWpUD

如果在你接触比特币之前,你一定会说这不就是一堆乱码吗?

没错这是在你认识比特币之前的时候,而在认识了比特币之后,你所谓的乱码就是你的比特币地址,这个地址就好像你的银行卡账户那样,可以方便快捷的查询和交易你的比特币。

那么为什么会用这样的一种格式来作为比特币的地址呢?我们还是慢慢的来的了解吧。

常用的比特币地址格式

1

BASE58格式

就是人们常说的比特币地址,由1开头的,例如:

1M8DPUBQXsVUNnNiXw5oFdRciguXctWpUD

2

HASH160格式

Tab content 由RIPEMD160算法对130位公钥的SHA256签名进行计算的结果,如:

fbfb58defc272942fc31d00c007b59aa4cb5087a

3

WIF压缩格式

即钱包输入格式,是将BASE58格式进行压缩后的结果130位公钥格式 这是最原始的由ECDSA算法计算出来的比特币公钥,如:

0469B0E479C9A358908DB9CF4628BDD643C3F8

1C4F0096AAD442DA6CA8BCC4FD86A8D47D7A865E178B6D062CC9B702908973952062A1D767DA9B2BD2095D5CCF6E

4

60位公钥格式

130位公钥进行压缩后的结果,如:

0269B0E479C9A358908DB9CF4628BDD643C3F81C4F0096AAD442DA6CA8BCC4FD86

这些字符如何产生的?

首先,让我们先简单的说说比特币地址是怎么算出来的。比特币是建立在数学加密学基础上的,中本聪大神用了椭圆加密算法(ECDSA)来产生比特币的私钥和公钥。由私钥是可以计算出公钥的,公钥的值经过一系列数字签名运算会得到比特币地址。

需要说明的是:因为由公钥可以算出比特币地址,所以我们经常把公钥和比特币地址的说法相混淆,但是他们都是指的一个概念。比特币地址只是另一种格式的公钥。

从比特币私钥得到我们所用的比特币地址需要十个步骤。

第一步

随机选取一个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坐标)关于公钥压缩、非压缩的问题另文说明。

0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B23522CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6

第三步

计算公钥的 SHA-256 哈希值

600FFE422B4E00731A59557A5CCA46CC183944191006324A447BDB2D98D4B408

第四步

取上一步结果,计算 RIPEMD-160 哈希值

010966776006953D5567439E5E39F86A0D273BEE

第五步

取上一步结果,前面加入地址版本号(比特币主网版本号“0x00”)

00010966776006953D5567439E5E39F86A0D273BEE

第六步

取上一步结果,计算 SHA-256 哈希值

445C7A8007A93D8733188288BB320A8FE2DEBD2AE1B47F0F50BC10BAE845C094

第七步

取上一步结果,再计算一下 SHA-256 哈希值(哈哈)

D61967F63C7DD183914A4AE452C9F6AD5D462CE3D277798075B107615C1A8A30

第八步

取上一步结果的前4个字节(8位十六进制)D61967F6

第九步

把这4个字节加在第五步的结果后面,作为校验(这就是比特币地址的16进制形态)。

00010966776006953D5567439E5E39F86A0D273BEED61967F6

第十步

用base58表示法变换一下地址(这就是最常见的比特币地址形态)。

1M8DPUBQXsVUNnNiXw5oFdRciguXctWpUD

比特币地址生成过程就是这样,那么会有人问道,既然都是随机生成的,那么比特币的地址会不会重复呢?关于这个问题,想必就更不用担心。因为比特币的私钥长度是256位的二进制串,那么随机生成的两个私钥正好重复的的概率是2^256≈10^77之一,这个数字大到你根本无法想象,比中彩票的概率还要小好多。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容