区块链科普系列短文——地址
2018-11-12 本文已影响21人
比特汪
比特币地址(也包括其他加密货币)是一个由数字和字母组成的字符串,可以与任何想转给你比特币的人分享,就像银行卡的卡号一样,收款人可以是个人,也可以是公司或机构等组织。
下面是一个比特币地址的例子:
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进制形式的地址。
下图描述了公钥生成比特币地址的过程。
