BIP32有bug?

今天看到微信公众号的一片文章,介绍HD钱包的,其中有一段让我大跌眼镜

BIP32中一个已知的漏洞是前文提到的同时分发父公钥和子私钥情况下,父私钥将处于危险之中。在2013年,Vitalik在Bitcoinmagazine的博客中已经指出这一风险,并使用代码进行论证。他分别对Electrum钱包和BIP32钱包进行测试,结果显示,通过已知父公钥和子私钥,不仅可以获得同级对其他子私钥,还可以破解得出父私钥。

因为我之前自己写代码实现过BIP32,所以我对其中的算法细节还算是很清楚的。猛地看到说这里面居然有个这么严重的bug,心里还是咯噔一下。为了彻底研究这个问题,我找来vitalik的原文仔细研究一番,原文链接如下:

https://bitcoinmagazine.com/articles/deterministic-wallets-advantages-flaw-1385450276

里面有个核心的公式

offset = dbl_sha256('0:0:'+mpubkey[2:])
priv0 = add_privkeys(mprivkey,offset)

也就是说,子私钥和父私钥只相差这么一个offset,并且这个offset是可以通过固定的算法计算出来的。

更让我觉得不可思议的是,这个offset是通过什么样的方式找出来的?这其中有什么数学公式吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值