PRS白皮书科普系列短文——地址



  • 比特币地址(也包括其他加密货币)是一个由数字和字母组成的字符串,可以与任何想转给你比特币的人分享,就像银行卡的卡号一样,收款人可以是个人,也可以是公司或机构等组织。

    下面是一个比特币地址的例子:
    1q7vbn5rbWEUdENYdx39SDFG7fsLpEoXZy

    那么这个字符串是怎么的来的呢?这就要说到公钥了(关于公钥和私钥见prs白皮书科普系列短文-公钥和私钥https://bbs.onedev.club/topic/225/)。

    比特币地址是由公钥经过单向的加密哈希算法得到的。由公钥生成比特币地址时使用的算法是SHA256和RIPEMD160。

    具体过程:

    以公钥 K 为输入,计算其SHA256哈希值,并以此结果计算RIPEMD160 哈希值,得到一个长度为160位(20字节)的数字:

    A = RIPEMD160(SHA256(K))
    公式中,K是公钥,A是生成的比特币地址。

    为了提高了可读性、避免歧义并防止在地址转录和输入过程中产生 错误,比特币系统使用Base58Check(一种基于文本的二进制编码格式)技术,将生成的长度为160位(20字节)的这串数字转换为我们常见的16进制形式的地址。

    下图描述了公钥生成比特币地址的过程。

    0_1541559025451_1785959-6fc43eee55666ff2.png