HD钱包(分层确定性钱包)

HD 钱包全称为是分层确定性(Hierarchical Deterministic)钱包的缩写 HD Wallets。

我们知道数字钱包是用来保存我们的密钥和地址的,而数字货币是被记录在区块链网络中的每个区块上的。因此,如何安全方便的生成、保存和备份恢复密钥才是钱包的关键。为此,钱包已经进化了三次,从最初的非确定(随机)钱包到第二代的确定性(种子)钱包,直到现在的分层确定性钱包,钱包的更新迭代经过了三个阶段

一.分层确定性钱包:

根据协议可以分:

BIP32  一个seed管理全部私钥

BIP39  一个助记词管理一个seed管理全部私钥

BIP44  一个seed管理多个币种账号

BIP32

  • 1. 解决每个私钥都要备份特别麻烦

  • 2.保存一个随机数种子(通常16进制数表示),全部私钥可以推导出来。

BIP39

  • 1.出现的原因:BIP32 提案保存一个随机数种子,,不过用户使用起来(比如冷备份)也比较繁琐,这就出现了BIP39

  • 2.使用助记词的方式,生成种子的,这样用户只需要记住12(或24)个单词

  • 生成助记词

  • 助记词生成的过程是这样的:先生成一个128位随机数,再加上对随机数做的校验4位,得到132位的一个数,然后按每11位做切分,这样就有了12个二进制数,然后用每个数去查BIP39定义的单词表,这样就得到12个助记词

  • BIP39就是:通过定义助记词让种子的备份更友好

BIP44

  • BIP44:基于 BIP32 的系统, 一个seed可以支持多个币种,多账户

  • 总结

  • HD钱包(Hierarchical Deterministic Wallets)是在BIP32中提出的为了避免管理一堆私钥的麻烦提出的分层推导方案。

  • 而BIP44是给BIP32的分层增强了路径定义规范,同时增加了对多币种的支持。

  • BIP39则通过定义助记词让种子的备份更友好。

二.钱包概念:

  • 生成顺序

  1. 助记词 > 种子seed > 私钥 > 公钥 > 地址

  • 助记词

助记词一般由12或24个单词构成,这些单词都来源于一个固定词库(2048 个单词的单词表),是由私钥根据一定算法得来,所以私钥与助记词之间的 转换是互通的,助记词实际上就是私钥的另一种表现形式//

助记词种子例子:

       candy maple cake ***** pudding ***** honey rich *** crumble sweet treat

  • 种子(只存在确定性钱包

BIP32 协议中的种子是128位字符(通常16进制数表示)

/ / 随机数种子090ABCB3A6e1400e9345bC60c78a8BE7

  • 私钥

私钥本质上是一个包含64位的随机数:

私钥是随机生成的,这个随机数的可能由2的256次方种

  • 公钥

公钥由私钥通过椭圆曲线加密算法生成的,变换后是一个65个byte的数组,一般是通过16进制处理后显示

  • 地址

地址是通过公钥进行BASE58进行编码最后生成一串0x开头的42位字符串

  • KeyStore

KeyStore看上去就是JSON 格式的字符串, 一般以文件形式存储。Keystore的本质是加密后的私钥,Keystore必须配合你的钱包密码来使用才有效

三.确定性和非确定性钱包区别

  • 由于私钥不同的生成方法对应着不同的钱包结构,我们把钱包分为非确定性钱包和确定性钱包。

  • 好处:

种子能恢复所有的私钥,值得注意的是,确定性钱包随机产出的种子是通过一系列确定、不可逆的运算来派生出一系列的密钥对。为什么要强调确定和不可逆?因为确定可以保证从一个种子中可以生成出全部的子密钥对,而“不可逆”则是为了确保不能通过子密钥对反推出种子HD钱包的衍生过程同样遵循确定、不可逆的原则。

猜你喜欢

转载自blog.csdn.net/qq_33842966/article/details/118340772
今日推荐