blockchain.info的“随机”问题分析

昕阳小编 105 0

尚力财经小编2022blockchain.info的“随机”问题分析-第1张图片-昕阳网2014年12月8日,blockchain.info又爆了。由于小泰一直忙于开发新版本,她没有仔细看。想了想,应该还是个随机数问题,她也就没再理会了。昨晚有用户在泰比官方群询问事件原因,也有币圈人士希望小泰能说说。没有办法,小泰只好抽空做作业,想办法弄清楚到底发生了什么。

关于这个事件,国外还是比较专业的,外国人的讨论还是集中在“不安全随机数导致R值重复,进而导致私钥泄露”这一类。国内有些讨论不在“点”上。比如有人认为blockchain.info误删了用户的私钥,也有人认为是交易对手导致的问题。其实这些说法都是错误的。就连外国人也只是把一年多前讨论过的关于“R值重复”的话翻出来说了一遍。

据说是blockchain.info的这个改动导致了这个问题:https://github . com/区块链/my-wallet/commit/AE 203 BF 010446 E0 ba 4d 40 e 5744 FCC 6a 86055只要看看这个commit的改动,虽然有问题(blockchain.info一直有随机数的问题),但应该不会爆发(两个半小时内随机数都有问题),这也是为什么即使是Gmaxwell和

那是因为,blockchain.info的错误代码并没有出现在版本历史中,而是他们给了它“强行推倒”。也就是说,你无法知道在那两个半小时里,blockchain.info网站上运行的程序到底是什么样子的。

更有可能的是,他们在更新随机数算法的时候,漏掉了rng.js的第29行“RNG _ pptr=0;”,也就是说,这个变量没有初始化。会发生什么?我们写了一个简短的js程序,测试了一下(https://github . com/bither/analyze/blob/master/analyze-区块链-info-20141208/rng _ test.js),发现结果会是随机数的熵池中只会有一个字节元素,然后会被拉伸成Int32,这显然远远小于比特币的256位随机数的要求。当从熵池中取出的数据长度小于256位时,blockchain.info将使用一种算法将种子拉伸到256位。拉伸算法本身并不重要。最重要的是,它使得随机数的结果只有256种可能,即:0-255。也就是说,在这两个半小时里,所有使用blockchain.info钱包的用户,无论是生成私钥还是签署交易,都使用了一个范围只有256的随机数。

看到这里,看过小泰随机系列文章的人大概都会明白,这些用户的私钥已经全部暴露,任何人都可以轻松遍历这256个号码,获取这些私钥。这就是blockchaini.info

出现这个随机问题的根本原因感谢白帽johoe,他保护了大部分比特币,避免了blockchain.info和相关用户的进尚力财经小编2022一步损失。向白帽子致敬!

补充一下,blockchain.info的随机数问题一直存在,这次事件已经不能算是随机数问题了(256个定数能叫随机数吗?)。而且还要给blockchain.info的随机数“改进”打上双引号看完代码你就知道他们提到了数学。Random()这一次以外,也就是说实际上是更差,而不是更好。

blockchain.info对这个问题给出了模糊的解释,这也导致了各种混乱的报道。而且他们最后还删除了github版本库上的记录(只能通过commit hash找到)。他们没有说清楚问题的原因(可能他们自己也不清楚影响的程度),这种态度是对用户的不负责任。

作者:比特钱包官方微博:@比特钱包http://weibo.com/bither官网:http://bither.net捐赠地址:1 BST womax 3 ayx 9 NC 8 gdghzzzamgm 669 BC 3

标签: do

抱歉,评论功能暂时关闭!

微信号已复制,请打开微信添加咨询详情!