专业开发15年,丰富的开发经验!贴心的私人订制服务,为您打造合适的平台。

无界区块链虚拟币钱包开发咨询电话

咨询电话:13386501543

联系方式

电 话:13386501543

邮箱:1203125@qq.com

地址:浙江省杭州市江干区下沙街道万亚金沙湖1号3幢

当前位置:无界区块链开发 > 区块链商业模式 > 3个理解区块链钱包实现技术原理

3个理解区块链钱包实现技术原理

文章出处:14 阅读量:14 发表时间:20-03-24 15:09
区块链100问

理解区块链钱包实现技术原理,先要理解:

 

1.私钥、公钥和地址产生的方法,这是区块链的相关知识;

 

2.接着理解如何使用API进行远程调用等基础概念,这是传统IT行业相关知识;

 

3.最后就是区块链钱包设计相关的助记词, keystore和密码的概念,它和区块链公钥、私钥和地址产生的方式思路一样,但是整个过程属于区块链钱包设计过程,不能与区块链技术的相关知识混淆。

 

区块链钱包原理


一、 私钥、公钥和地址产生的方式(以BTC为例):

 

1.BTC私钥其实是使用SHA-256生成的32字节(256位)的随机数,有效私钥的范围则取决于BTC使用的secp256k1 椭圆曲线数字签名标准。

 

2.在私钥的前面加上版本号,后面添加压缩标志和附加校验码,(所谓附加校验码,就是对私钥经过2次SHA-256运算,取两次哈希结果的前四字节),然后再对其进行Base58编码,就可以得到我们常见的WIF(Wallet import Format)格式的私钥。

 

3.私钥经过椭圆曲线乘法运算,可以得到公钥。公钥是椭圆曲线上的点,并具有x和y坐标。公钥有两种形式:压缩的与非压缩的。早期BTC均使用非压缩公钥,现在大部分客户端默认使用压缩公钥。

 

从私钥推导出公钥、再从公钥推导出公钥哈希都是单向的,也就是采用不可逆算法。

 

椭圆曲线算法

 

4.公钥产生后,将公钥通过SHA256哈希算法处理得到32字节的哈希值;后对得到的哈希值通过RIPEMD-160算法来得到20字节的哈希值 ——Hash160

 

5.把版本号[2]+Hash160组成的21字节数组进行双次SHA256哈希运算,得到的哈希值的头4个字节作为校验和,放置21字节数组的末尾。

 

6.对组成25位数组进行Base58编码,最后得到地址。

cache
Processed in 0.012552 Second.