3.2.3从种子中创造HD钱包(BIP32标准)
HD钱包从单个根种子(root seed)中创建,为128到256位的随机数,任何兼容HD钱包的根种子也可重新创造整个HD钱包,所以拥有HD钱包的根种子就等于拥有了所有密钥,方便存储、导入及导出。
具体主密钥以及HD钱包的主链码生成过程如图3.6所示,根种子通过不可逆HMAC-SHA512算法推算出512位的哈希串,左256位是主私钥Master Private Key (m),右256位是主链码Master Chain Code;链码chain code作为推导下级密钥的熵。
以上过程再结合BIP43,BIP44,对HD钱包还能实现诸如多币种、多账户、多用途等功能。
3.2.4 keystore和密码基本功能
回归到用户体验,助记词的方式仍然很复杂的,现有的密码操作方式才是用户最为熟悉的方式。因此钱包还提供了keystore让用户导出密钥文件进行保存,Keystore会存储在使用的设备里,这样每次登录只用输入相应密码即可。Keystore是私钥经过加密过后的一个文件,需要用户设置的密码才能打开文件。即使keystore文件被盗,只要用户设置的密码够长够随机,短时间内私钥也不会泄露,有充足的时间转移地址里的数字资产到其他地址。