比特币加密系统崩溃
被一个卓越的技术替代并不是唯一可能摧毁比特币的因素。也许比特币的密码学基础的灾难性故障也能引发系统的崩溃,至少是人们的信心。因为我主要兴趣在密码学,一直对椭圆曲线加密法(elliptic curve cryptography ,ECC)很感兴趣。我觉得这会是个有趣的猜测。同样有趣的是比特币维基上并未就此话题进行讨论,只是提供了简短的一句话提供辩护:
SHA-256和ECDSA当前被认为非常健壮,但他们可能在将来被攻破。
比特币采用椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm ,ECDSA)来构建“钱包”。在比特币中,每个“钱包”都有一个ECDSA 密钥对,私钥用于转移资金,公钥用于提供一个收取地址。钱包之间转移资金时将使用ECDSA签署。这会发布给矿工,最终插入比特币的区块链中。
ECDSA已受到像Dan Bernstein这样的加密学家的严厉批评,被认为脆弱且容易出错,ECDSA的糟糕实现会在实践中泄漏比特币私钥。正因如此,比特币客户端作者应该实施确定性签名方案如RFC 6979中描述的方案。而且除非这样做,否则钱包密钥仍面临无意间泄漏的危险。
不幸的是,有一个“可爱”但不好察觉的后门攻击可能,存在于实现RFC 6979时所要做的secp256k1 实现工作(这也是Matt Green在上述推文中所引用的)。
在用于从K值派生R值的乘法中存在随机比特反转,因为扭曲secp256k1是一个平滑区域,解决离散对数问题(DLP)相对容易,乘法中单个比特反转可以得到一个R值,并在251 尝试中恢复出K值。
即使在使用RFC6979确定性签名,尝试防范重用或者偏离随机数(又称“R值”),泄漏密钥的后门所需的仅仅是在乘法函数中的单个比特反转( a single bit flip)。
secp256k1的实现容易受到旁道攻击,同一硬件上运行的恶意软件可能通过观察缓存命中/未命中来恢复出比特币私钥。“Just A Little Bit”和“Just A Little Bit More”攻击使用刷新缓存+重载的旁道攻击方式从OpenSSL使用的ECDSA实现中恢复密钥。
在比特币的Github中的secp256k1 C类库在理论上不会受到这些攻击影响,但是他们现在避开攻击的方法依赖于手工验证C编译器生成的汇编文件,这是一种脆弱的方法。
比特币如何能够永久性避免这类攻击?
EdDSA是由包括Dan Bernstein 和 Tanja Lange在内的团队开发的下一代数字签名算法。它采用了新型的椭圆曲线——扭曲爱德华兹曲线(twisted Edwards curve),也就是Ed25519。这是一种用于签名的日益流行的Curve25519的对应曲线。刚被互联网研究专业工作组(IRTF)的加密论坛讨论小组(CFRG)选择用在TLS中的下一代椭圆曲线。Ed25519已被OpenSSH和GPG支持。
这些是否足矣让加密货币崩溃?没有,至少现在还没有。但是比特币所使用的数字签名算法和椭圆曲线并不足以激发信心。在我看来给难以察觉的后门留下太多余地,使之可能插入到流行的客户端中。
结论
比特币证明了加密货币的可能性。然而比特币提供的解决方案“简单粗暴”,并不能优雅的容忍网络分区。这种方法也使得比特币保持简单,易于推想它是什么,也使得比特币成为大概唯一没有正式进行正确性证明的分布式共识算法,却被广泛使用。
但是比特币达成共识很缓慢,极其低效,在发生长时间网络分区时会丢失数据。这些分区会有多种形式,例如网络掉线或者软件版本不兼容等。
比特币作为一个加密货币来说,是一个有趣的尝试,但是现在很多围绕比特币的兴奋(或贬低,炒作)似乎是围绕并延伸加密货币领域到了去中心化数据库和共识系统。有人说可以转移几乎任何你可以想到的事物:数字身份,DNS,即时通讯,甚至整个政府,进入到区块中。一个初创公司看到大量莫名其妙的投资想要将矿机植入到每一个设备甚至是烤面包机中,认为比特币是“与CPU,带宽,硬盘和内存等同的基础系统资源。”
我认为比特币不是用来实践各种各样想法的理想技术。我理解并强烈同情转移到分布式系统以及计划最终在此领域开展工作的渴望。但是由于比特币的效率问题和较差的网络分区容忍,我认为并不适合成为人们所希望的方式——一个通用的全球去中心化数据库。
下一代去中心化共识协议看起来更适合这个任务。而引用 Fred Brooks的话说,问题
“不在于创建一个试验系统并放弃掉。你一定会那么做。…因此要为放弃做好打算,无论如何你一定会。”
原文连接:
http://tonyarcieri.com/the-death-of-bitcoin作者:TONY ARCIERI
译者:老翅
BTC地址:1KBJMJh4V9tgkvY8P2Bx53ic3gFErKPMbc
编辑:Miner
稿源:
http://www.8btc.com/the-death-of-bitcoin