【HD-新钱包】BIP39生成助记词

BIP39标准定义了钱包助记词和种子生成规则。

通过九个步骤即可生成钱包助记词和种子:

> 步骤 1~6 生成助记词

> 步骤 7~9 把前六步生成的助记词转化为 BIP32 种子

【BIP39-生成助记词】

1.生成一个长度为 128~256 位 (bits) 的随机序列(熵);

2.取熵哈希后的前 n 位作为校验和 (n= 熵长度/32),就可以创造一个随机序列的校验和;

3.将校验和添加在随机序列(熵)的末尾;

4.将序列化分为包含11位的不同部分;

5.将每个包含11位不分的值与一个已经预先定义2048个单词的字典作对应;

6.生成的有顺序的单词组就是助记词。

(步骤看下图:)


【HD-新钱包】BIP39生成助记词_第1张图片

在上面的例子中,我们选取了长度为128位的熵,来生成了有12个单词的助记码。在实际的应用中,熵的长度越长,校验码的长度和助记词的长度也会相应的增长。下图展示了熵数据的大小和助记词的长度之间的关系:

步骤一.随机序列的长度为【128,160,192,224,256】。(熵一定是32的倍数,so熵是16进制数的序列)

步骤二.校验和的长度为【4,5,6,7,8】。(熵/32=校验和)

步骤三+步骤四:随机序列一定是11的倍数,平均划分为不同的11位倍数。

步骤五:与2048个单词的预定义字典作对应。

步骤六:生成助记词的数量:(熵+校验和)/11=助记词的数量。

【HD-新钱包】BIP39生成助记词_第2张图片
长度表

BIP39标准就是为了解决助记词的需求,通过随机生成12~24个容易记住的单词,单词序列通过PBKDF2与HMAC-SHA512函数创建出随机种子作为BIP32的种子。

参考内容:

1、本文部分内容摘自《精通比特币》第一版中译本,特此说明并致谢。

你可能感兴趣的:(【HD-新钱包】BIP39生成助记词)