一种提高比特币私钥碰撞机率的思路

栏目: 编程工具 · 发布时间: 5年前

内容简介:之前的文章里面我们提到了一个名为这个项目本身详尽目前在一台最顶级的AWS GPU计算节点上面的碰撞效率是这样的:

之前的文章里面我们提到了一个名为 LBC 的项目;它采用了遍历所有比特币私钥,bloomfilter所有未花费的币的地址来碰撞比特币私钥。

这个项目本身详尽 计算了这种碰撞成功的几率 ,目前碰撞空间大概在 2 136 级别。

目前在一台最顶级的AWS GPU计算节点上面的碰撞效率是这样的:

AWS p2.8xlarge   32 vCores Xeon v4, 8x K80 GPUs (50% each)   ~80-88M/s

每秒钟大概碰撞8000w次;目前LBC这个项目最顶峰的时候,算力到了1G的级别,这样计算下来:

2^136 / 2^30 = 2 ^106

2 106 级别的碰撞效率还是遥遥无期啊;

如果通读我们之前的文章就知道,比特币地址的生成,主要花费在ECDSA、SHA256, RIPEMD 这三个算法的操作之上,但其实用GPU计算,这三个步骤花费的时间是很少的,在整个碰撞过程中,其实大部分时间是耗费在bloomfilter上面的;

而bloomfilter的原理,采用的是多级HASHMAP,常理来看,这已经是判断一个元素是否存在某集合的极限效率了;

但是有一点我们不要忘记,比特币的地址采用base58编码,他的地址空间是有规律的,简单来说,就是所有比特币地址的前缀分布,是有规律可循的,他应该在base58的编码范围内成正态分布;而bloomfilter的HASHMAP是没有这种条件优化的,所以说bloomfilter的算法我们可以再改进一下,提升效率。

我分析了截至2018-12以前的所有比特币地址,简便起见,提取了所有的P2PKH地址(共 377059211个地址),取其前4个字符地址前缀;执行:

sort 4prefix.addr|uniq -c|sort -nr

得到了所有地址前缀的分布列表,差不多是个正态分布。

列举一下最常用的地址前缀TOP10:

  23600 1bit
  23086 1btc
  21895 13vs
  21329 1gbx
  21267 1gbt
  21267 1gba
  21210 1gbb
  21206 1gbf
  21196 1gbu
  21189 1gbr

最常见的是1bit和1btc这两个前缀,各比第三名多出了10000个左右,这多出来20000个地址应该是Geek们自己生成的虚荣地址。

所有的比特币P2PKH地址,4字母前缀共有42877种组合。

好了,这就是我们可以优化的地方,把bloomfilter的第一级HASHMAP,采用这些前缀组合先来一把过滤,再去执行常规的Bloomfilter,碰撞效率会再提高一个数量级。

我在自己机器上实验了一下,在GTX750Ti 2G显卡上面,最终效率可以达到 10M/s。

瓶颈现在又变成了genaddress环节,我估计在一块RX480卡上面,可以达到和AWS顶配GPU一样的效率;

不过,效率提升十倍,也不过是 2 100 的碰撞范围,还是遥遥无期啊。

更深入的分析

早期在bitcointalk.org论坛上,Laszlo Hanyecz曾经有过一个想法,就是随着硬件性能的发展,最终碰撞比特币私钥的收益会不会超过挖矿的收益?

中本聪当时的回答是,要达到这个碰撞算力很远很远。

我们来仔细分析一下:

比特币的地址生成是很容易硬件ASIC化的,如果用这种前缀过滤法,也不需要多少内存,所以可以近似认为:如果硬件化,比特币私钥碰撞的效率和挖矿效率是差不多的。

目前比特币全网算力在40EH左右,就是2 62 ,这已经是相当于400w台蚂蚁S9的机器同时24X365 运行了;消耗的电力估计已经超过了上海市的居民用电,比特币矿机的能源消耗,完全可以说是抵得上一个小型国家的能源消耗了。

如果私钥碰撞达到2 62 级别,那么毛估估,碰撞几率就能减小到 ½ 60 级别了;

但是这个概率还是太低了。

而且另外一个无法预测的情况就是,将来人们的安全意识加强,一般一个地址只要用过就会丢弃掉,所以最终bloomfilter的条目变化会非常频繁,还要考虑一个数量级的损耗。

目前测算,随着手续费用的提高,即使多次减半,将来挖矿的收益估计很长期稳定1-10btc/block级别,在如果将来以1年时间碰撞一个私钥的概率期望测算的话,一年大概是2 30 秒,这样碰撞效率至少要提高到 2 90 级别,才能达到 破解私钥得利 > 挖矿得利 的效果;

算力提高到2 90 ,不管用什么技术,即使是量子计算,也很难想象能到这个量级啊;

而且,即使到了这一天,把RIPEMD替换成一种碰撞空间更大的算法就OK了。

这样看来,bitcoin的安全性还是无懈可击。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入应用C++11

深入应用C++11

祁宇 / 机械工业出版社 / 2015-5 / 79

在StackOverflow的最近一次世界性调查中,C++11在所有的编程语言中排名第二, C++11受到程序员的追捧是毫不意外的,因为它就像C++之父Bjarne Stroustrup说的:它看起来就像一门新的语言。C++11新增加了相当多的现代编程语言的特性,相比C++98/03,它在生产力、安全性、性能和易用性上都有了大幅提高。比如auto和decltype让我们从书写冗长的类型和繁琐的类型......一起来看看 《深入应用C++11》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具