首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ODYSSEY区块链小课堂—钱包地址

购买过XX币的人都知道,自己的钱包里面有一堆看起来像一堆乱码一样的字母和数字,它代表着XX币的地址,那么这串地址怎么产生,有何意义?

我们知道,XX币地址是一个由数字和字母组成的字符串,可以与任何想转给你XX币的人分享。

下面是一个XX币地址的例子:

1J7mdg5rbQyUHENYdx39WVWK7fsLpEoXZy

首先,这个看上去像一堆乱码一样的东西,说白了就像你的银行卡卡号一样。不过,XX币地址是一串由26位到34位字母和数字组成的,不像普通的银行卡号那样只是一堆纯数字组成。

在交易中,XX币地址通常以收款方出现。如果把XX币交易比作一张银行卡转账交易,XX币地址就是收款人的银行卡号,也就是我们要输入收款人一栏的内容。

那么,XX币地址到底是怎么得到的?

XX币地址可由公钥经过单向的加密哈希算法得到。哈希算法是一种单向函数,接收任意长度的输入产生指纹摘要。

由公钥生成XX币地址时使用的算法是Secure Hash Algorithm(SHA)和the RACE Integrity PrimitivesEvaluation Message Digest (RIPEMD),特别是SHA256和RIPEMD160。

其中,RIPEMD (RACE原始完整性校验讯息摘要)是一种加密哈希函数。RIPEMD160则表示160位元的RIPEMD-160哈希值是以40位的十六进制所表示。

下面表明了43字节ASCII码的输入与其对应的RIPEMD-160哈希值:

RIPEMD-160( "The quickbrown fox jumps over the lazy dog" )=

37f332f68db77bd9d7edd4969571ad671cf9dd3b

现在,让我们使用公钥来生成XX币地址。

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

A = RIPEMD160(SHA256(K))

其中,K是公钥,A就是我们生成的XX币地址

不过,通常用户看到的地址不是上面直接生成的地址A,而是经过“Base58Check”编码的地址,这种编码使用了58个字符(一种Base58数字系统)和校验码,提高了可读性、避免歧义并有效防止了在地址转录和输入中产生的错误。

Base58Check编码也被用于XX币的其它地方,例如XX币地址、私钥、加密的密钥和脚本哈希中,用来提高可读性和录入的正确性。

下次的科普中我们会详细解释Base58Check的编码机制,以及它产生的结果。

ODYSSEY是基于共享经济的区块链项目

Telegram - https://t.me/OdysseyOfficial

Twitter - https://twitter.com/OdysseyOCN

Github - https://github.com/OdysseyProtocol

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180503G1SDWE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券