交易所开发 区块链多链数字钱包开发

区块链钱包实现的技术原理用一句话表示就是:钱包助记词生成了种子,种子发芽结果,果实就是私钥,私钥推导出了公钥,公钥数据的节选部分成了钱包地址。同时钱包提供了Key Store,他也是私钥加密后的文件为了配合正常的密码使用,便捷用户的钱包使用。

我们首先要清楚几个概念:

1.私钥、公钥和地址产生的方法。

2.如何进行远程调用等概念。

3.钱包助记词、 Key Store和密码的概念。

一、私钥、公钥和地址产生的方法

公钥:它是密码学上的一种概念。通过一种算法得到,该算法是得出一对秘钥:公钥和私钥。公钥是属于非对称加密,是秘钥对中的公开部分。

私钥:它是密码学上的一种概念。通过一种算法得到,该算法是得出一对秘钥:公钥和私钥,私钥是秘钥对中的非公开部分,私钥的持有人是数字货币的持有者。

钱包地址:它类似于每一张银行卡的卡号,一个人可以在银行通过身份证办理多张银行卡,同理他也可以拥有多个钱包地址。钱包地址是这对密钥中公钥转换而来,所以一个钱包地址只能对应一个私钥。

二、 远程过程调用(Remote Procedure Call,简称:RPC)

它是一个计算机通信协议。SAP系统RPC调用的原理其实很简单,有一些类似于三层构架的C/S系统,第三方的客户程序通过接口调用SAP内部的标准或自定义函数,获得函数返回的数据进行处理后显示或打印。RPC 它的主要功能目标是运用区块链分布式时更加容易、语言更加简洁,这样的节省时间和成本也便于后期的二次开发。所以钱包都是通过某个区块链RPC接口调用来和区块链网络进行交互。

三、钱包设计相关的助记词(mnemonic),Key Store和密码的概念

钱包助记词的诞生是私钥太难记,但是又要保证钱包的安全性。一般情况下,助记词由一些单词组成,只要你记住这些单词,按照顺序在钱包中输入,也能打开钱包。

通过9个步骤即可生成钱包助记词和种子,其中步骤1~6生成助记词,步骤7~9把前六步生成的助记词转化为BIP32 种子。

1.主私钥和主链码:

首先是从根种子生成主密钥 (master key) 和主链码 (master chain code)

主密钥是在一对用户之间的长期共享的秘密密钥,它往往作为生成会话密钥或密钥加密密钥的种子,实现这些密钥的分发和安全保护。而主密钥的分发则一般使用离线安全物理通道完成。

根种子通过HMAC-SHA512函数计算一次, 右上256位”m”就是主私钥,右下256位就是主链码,主私钥通过椭圆曲线算法推到出主公钥,主公钥和主私钥组成主秘钥对。主链码作为推导下级密钥的熵。

2.同时钱包还提供了Key Store和密码基本功能

用户比较好的体验仍然会是正常的密码方式,所以钱包还提供了Key Store让用户导出保存,这个Key Store也是私钥经过加密过后的一个文件,需要你自己设置的密码才能打开文件。这样的好处是就算存储器上的Key Store文件被盗,还是需要你设置的额外密码才能打开,需要时间更长,更安全。Key Store会存储在使用的设备上,这样每次登陆只用输入相应密码即可。

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务