比特币算法风险

比特币使用的算法遭到破解,虽然说起来好像天方夜谭但是不是没有可能发生,比如历史上曾经流行过的对称加密算法DES因为密钥过短早就介绍不使用,而转为用3DES、AES以及Blowfish等替代;曾经流行的流加密算法RC4因为强度不够也遭到各种有效的攻击;而流行的散列算法MD5在2004年被山东大学数学系教授王小云发现了快速碰撞的方法把产生碰撞的步数从之前的2的80次方先后降低到2的69次方和2的63次方(这个降低的级别在计算机的角度是惊人的)。

我们可以看看一些著名的加密算法提出的时间以及到被不介绍使用甚至废弃(遭到非常有效的攻击)的时间:

  MD5(1992-2004),12年;

  SHA-1(1995-2013),18年;

  DES(1976-1999),23年;

现在的产品中MD5和SHA-1还在大量使用,微软官方博客就宣布在2016年之前废弃SHA-1和RC4了。

比特币设计比较领先,2009年产生时已经使用了当时已经确立标准的最新的[SHA-256](http://en.wikipedia.org/wiki/SHA-2)以及RIPEMD-160散列算法,同时还选择了非常先进的采用secp256k1曲线的椭圆曲线公钥算法。这些密码学的基础措施在目前(2013年)看来依然十分安全,但是随着密码学家进一步的研究配合更加高性能的机器的暴力破解,这些算法会变得越来越脆弱,此时无论是迁移到新算法还是加强现有算法都会变得非常困难。

大运算力的暴力破解

有人计算过,一个比特币私钥的长度是256 bits,要穷举所有的可能来破解该私钥需要:

  pow(2,128) / (15 * pow(2,40)) / 3600 / 24 / 365.25 / 1e9 / 1e9 = 0.6537992112229596

也就是650000000000000000年。看上去好像比特币绝对安全了,但是如果考虑摩尔定律,每18个月计算机的性能提高一倍,两个十八个月就变成了原先的四倍,这样的增长实际上是非常惊人的。计算下来的结果就是只要59年后,计算机就能够在有意义的时间(比如1.13年内)破解一个私钥,也就是破解了某人的钱包,这是非常危险的。

你可能会说59年也足够长了,且慢,你还没考虑到专门针对破解用的硬件。显卡和专用集成电路制造的矿机能用来挖矿,为什么不能用来破解?