助记词生成原理
助记词 其实 就是 将 128bits 的 seed 补位成 132bits 的数值,然后 平均 拆分成 12个 数值,最后到 助记词列表中 根据下标 获取对应的 12个 单词 组成。
-
bip39的助记词列表:https://github.com/bitcoinjs/bip39/blob/master/wordlists/english.json
-
生成过程:
1.随机生成 128 bits 的 seed (需是32的倍数)
2.将 seed 进行hash256运算,获取hash值 开头的 4个 bits,与 seed 组成一个组新数值
3.以11bits为单位,拆分 上组新数值,每 11bits 个数值 转成一个10进制数
4.用这个十进制数 作为 助记词单词数组 的下标,获取 对应的 一个单词作为 助记词
5.一共12组11bits数,所以 生成 12个 单词 -
图解(来源百度):