分层确定性钱包

2021-01-07 09:48:22  [ 区块链 ]      留言:0      阅读:7

来源:https://www.imooc.com/article/43968


分层确定性钱包

weixin_33834075 2018-01-10 15:25:00 145 收藏

放个我写的以太坊bip44实现: https://github.com/wuminzhe/ethereum_bip44.rb

 

bip32约定,主密钥(master private key)是从一个种子值生成的,步骤如下:

  • 从(P)RNG生成所选长度(128到512位;建议256位)的种子字节序列S。

  • 计算I = HMAC-SHA512(Key =“Bitcoin seed”,Data = S)

  • 将I分为两个32字节序列,IL和IR。

  • 使用parse256(IL)作为主密钥,IR作为主链码.

BIP44中定义的标准key派生结构:

Master key / Purpose Code(44) / Coin Code / Account Index / Change Address(Boolean) / Child Index

master private key

先生成一个512位伪随机数,然后对这个伪随机数使用HMAC-SHA512哈希算法,得到一个512位的值,左半边的256位就是master private key,右半边的256位作为chain code用于key的派生。

派生过程

为了派生出一个child private key,master private key 和 chain code 和 index 一起被哈希成一个新的512位的值,然后这个值的左边是child private key,右边是child chain code. 

Hardened 派生

上面的过程其实就是hardened派生,就是private key参与的派生叫做hardened派生。

Non-Hardened 派生

另外一种派生就是public key参与的派生,这里描述下过程:

从private key可以得到public key,然后public key 和 chain code 和 index 一起被哈希成一个新的512位的值,然后这个值的左边是child public key,右边是child chain code.

这种派生的好处是安全,不需要private key就能生成需要的n多地址。

路径上的小引号'

这就是Hardened 派生的标志

来源:https://www.imooc.com/article/43968


留言:


    更换校验码     

无觅相关文章插件,快速提升流量
分享到:
友荐云推荐 Process: 0.0409s ( Load:0.0003s Init:0.0008s Exec:0.0268s Template:0.0131s ) | DB :14 queries 1 writes | UseMem:3,019 kb