深入剖析BIP39补充协议

本文深入剖析了BIP39协议,解释了助记词的生成、验证过程以及如何从助记词生成私钥。助记词用于解决数字货币私钥的记忆问题,通常有12或24个词,通过SHA256和PBKDF2等算法确保安全性。开发中需要注意助记词验证失败的情况,尤其是12个词的助记词可能因字节处理不当导致问题。
摘要由CSDN通过智能技术生成

如果你接触过数字货币或者相关内容,你肯定接触或使用过助记词,那么我们这篇文章的目的就是要从技术角度搞明白这个助记词是如何产生的,以及助记词是如何变成私钥的。

在一般数字货币中是使用 256 位的随机整数作为私钥的,但是这个记忆起来比较困难,所以为了解决记忆和易用性的问题 BIP39 规范提出了一种通过助记词来推算种子的算法,来帮助我们的降低使用门槛。

助记词的几种形式

现在已经规范化的助记词词典有简体中文、繁体中文、英文、日文、法语、意大利语、韩语、西班牙语上述语言的助记词都可以生成,但大部分主流钱包做法还是只使用英文。

一般钱包的助记词个数是 12 或 24 个,但是这个标准也还可以生成 15、18、21 个数的助记词,甚至是低于 12 个词也可以。如果开发钱包时为了安全性考虑一般采用 24 个词,为了兼容其他主流钱包或易用性一般采用 12 个词。低于 12 个词的话碰撞几率太大、风险太高不建议使用。

助记词的生成

  1. 生成一个 128-256 Bit 的随机数,但是这个随机数的位数必须是 32 的倍数。

  2. 将随机数进行 SHA256 然后取前 X 位当做校验位。具体几位需要看产生随机数的位数。( X = 随机数位数 / 32 )。

  3. 将效验位添加到随机数后面。

  4. 将添加效验位的随机数按位分成每 11 位为一组,分成若干组。

  5. 那么每 11 位都可以得到值范围是 0~2047 的数,根据这些数去查助记词词典,就可以得到助记词了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值