3.2钱包设计框架
3.2.1生成助记词(BIP39标准)
助记词库有2048个词,用11位可全部定位词库中所有的词(2^11=2048),作为词的索引,故一个词用11位表示,助记词的个数可为(熵+校验和)/11,值为12,15,18,21,24。规定熵的位数必须是32的整数倍,所以熵的长度取值为128到256之间取32的整数倍值,分别为128,160,192,224,256;校验和的长度为熵的长度/32位,所以校验和长度可为4,5,6,7,8位。
生成助记词的具体步骤如图3.4所示:
1)生成长度为128〜256位(bits)的随机序列(熵),以128位为例;
2)取熵SHA256哈希后的前n位作为校验和(n= 熵长度/32),图为128/32=4;
3)随机序列(熵) + 校验和拼合为一个字符串,图为128+4=132;
4)把步骤3得到的结果每11位切割,图为 132/11 =12个字符串;
5)步骤4得到的每个字符串匹配预先定义的2048 个词库里的单词;
6)步骤5得到的结果就是助记词串,这是一个有顺序的单词组,也就是我们一直说的助记词。