热门文章
More +电 话:13386501543
邮箱:1203125@qq.com
地址:浙江省杭州市江干区下沙街道万亚金沙湖1号3幢
理解区块链钱包实现技术原理,先要理解:
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编码,最后得到地址。
最新新闻
More +