HD Wallets:Hierahical Deterministic Wallets,中文名称分层确定性钱包是目前广泛使用的虚拟货币钱包标准。现在我来和大家聊聊HD。 Wallets的工作机制和开发原理。
BIPS
BIPs 全名Bitcoin Improvement Proposals,是提出 Bitcoin 新功能或改进措施的文件。详见: https://github.com/bitcoin/bips
BIP32, BIP39, BIP44 目前广泛使用的共同定义 HD Wallets,包括其理念、设计动机、实现方式、案例等。定义Hierarchicall Deterministic Wallets。主私钥是通过种子生成的,然后衍生出大量的子私钥和地址。
BIP39:Mnemonic code for generating deterministic keys
将 seed 用方便记忆和写作的单词表示。一般由方便记忆和写作的单词表示。 12 一个单词组成,称为 mnemonic code,中文被称为助记词。
符合BIP39标准的助记词可以是 3、6、9、12、15、18、21、24个单词。它们对应的强度是:2048(3次方) 、2048(6次方) ... 2048(24次方) ,一般采用12个字,强度为:2048(12次方)
BIP32
HD 从一个Wallets开始 seed 生成一个树结构储存多个 keypairs(私钥和公钥),根据树形结构特定节点上的keypair生成特定的钱包(如BTC钱夹、ETH钱夹)。
分层是指一个seed可以生成一个具有层次关系的树结构来存储多个keypairs,子节点是由父节点根据一定的算法衍生出来的。 比如一个大企业可以为一级部门生成不同的私钥,一级部门可以为自己的二级部门生成不同的私钥。因为二级部门的私钥是由一级部门的私钥衍生出来的,每个一级部门都有权控制自己的二级部门的私钥,也就是说,他们可以在里面花钱。也可以只给财务人员一定级别的公钥,让他看到这个部门的收支记录,但是不能在里面花钱,这样更方便财务管理。
BIP44:Multi-Account Hierarchy for Deterministic Wallets
基于 BIP32 该系统赋予树结构中各层的特殊意义。让同一个系统在树结构中具有特殊的意义。 seed 能够支持多货币、多账户等。
各层定义如下:
其中的 purporse' 固定是 44’,代表使用 BIP44。而 coin_type' 用来表示不同的货币,比如Bitcoin就是 Ethereum为60。
比如:
m代表BTC钱夹path,/44'/0/0/0
mETH钱夹path代表ETH钱夹path
生成HD Wallets钱包的过程简单来说就可以完成以下四个步骤:
HD Wallets钱夹有哪些优点?
1)备份方便;
2)在不同的应用之间使用;
3)可同时管理多个钱夹;
4)可同时管理多种货币;
5)支持分层权限管理;
6)可实现私钥离线存储,更安全。