BIP39校验和规则详解:熵的位数为128,校验和为什么是取4位不是8位
校验和取前4位还是8位,并非随意决定,而是由熵的长度决定的,严格遵循BIP-39标准的计算公式:
校验和位数 = 熵的位数 ÷ 32
具体规则:
| 熵的位数(bits) | 校验和位数(bits) | 助记词数量 | 计算逻辑(熵位数 ÷ 32) |
|---|---|---|---|
| 128 | 4 | 12 | 128 ÷ 32 = 4 |
| 160 | 5 | 15 | 160 ÷ 32 = 5 |
| 192 | 6 | 18 | 192 ÷ 32 = 6 |
| 224 | 7 | 21 | 224 ÷ 32 = 7 |
| 256 | 8 | 24 | 256 ÷ 32 = 8 |
为什么这样设计?
核心目的是让 “熵 + 校验和”的总位数刚好是11的倍数,确保能平均分割为11位的分组(每个分组对应一个助记词,因为11位二进制可表示0~2047的索引,对应BIP-39词表的2048个单词)。
以128位熵为例:
- 熵(128位) + 校验和(4位) = 132位
- 132 ÷ 11 = 12 → 刚好得到12个11位分组 → 对应12个助记词
如果128位熵取8位校验和:
- 总位数 = 128 + 8 = 136位
- 136 ÷ 11 ≈ 12.36 → 无法整除,无法平均分割为11位分组,导致助记词数量不整数(不符合标准)。
总结:
校验和的位数由熵的长度决定,本质是为了满足“总位数是11的倍数”这一硬性要求,确保助记词数量为整数(12/15/18/21/24)。128位熵对应4位校验和,256位熵对应8位校验和,都是为了适配助记词的生成规则,同时兼顾安全性(熵越长,校验和也越长,错误检测能力更强)。
本文来自博客园,作者:ffffox,转载请注明原文链接:https://www.cnblogs.com/ffffox/p/19005082

浙公网安备 33010602011771号