比特币有技术缺陷吗?比特币会被破解吗?【Technews科技新报】近期有位独立信息安全研究员 Sergio Demian Lerner 发布了一篇文章指出破解比特币的可能性,引发不少争议。
该篇文章表示,有方法可以降低SPV 明的安全性,而且我后来发现,他并不是最早知道这个漏洞的人,几个早期营运比特币的核心团队可能早就了解这项讯息。在比特币的梅克尔树(Merkle Tree)设计中存在缺陷,能欺骗使用 SPV 钱包的受害者。
SPV 被称为简单支付验证,在最早中本聪的白皮书就有提到此事。其目标就是免除使用者运行整个区块链,毕竟现在区块链越来越长,将会对交易产生障碍,而 SPV 技术免除了使用者对全节点区块链的验证。在使用 SPV时,只要判断出一个交易在主链上的某个区块出现过,则可以证明该交易之前已被验证。而为了达成这样的判断则是透过梅克尔树去寻找。
关键在于,比特币的梅克尔树并不区分内部节点和叶节点,整棵树的深度由交易次数决定。然而该节点并未有特定格式,只要符合 64 位的长度就行,所以攻击者透过提交足够位的交易资讯,并令受害者的系统将其重译为一笔交易即可欺骗被害人的钱包,凭空完成任意数量的交易。
含有假交易区块的梅克尔树。(Source: Sergio Demian Lerner's Blog)
当然火币网pro交易被骗,要利用此漏洞并不容易,需要运行 69 至 73 位的暴力破解,且每项操作须面对 SHA-2 的密码杂凑函数演算,还有 SPV 钱包本身也有简单的机率保护机制。甚至作者所举出例子也无法被应用在 Coinbase 等平台上,其需要暴力破解高达 216 位,目前几乎是不可能的。
不仅如此,要执行这项针对 SPV 钱包的交易还是所费不赀,首先可能要订制 ASIC,尽管于目前矿工的设计类似,但要达到算力要求,估计也需要近 130 万美元,且根据节点密度不同,其设计费用可能还要追加近百万。还有为了防止其他矿工重组区块链等问题,都可能还需要额外成本,这使得必须要诈骗到数百万美元以上的规模才会有利可图。
虽然我提出的攻击方法肯定不会是最好,但要进行大规模比特必交易时,通常还是会进行整体的验证而不是用简单的 SPV,再加上若令 SPV 钱包进行特殊自检也有很大机会发现异常交易,所以目前此漏洞恐怕还是只存在于理论上。不过在特殊境况下,可以令这种攻击更为廉价,例如攻击者刚好持有适合的节点,所以还是必须去探讨漏洞的可能性。
目前我也提出了一些解决此问题的方案,希望能受到更广泛的讨论。当然也有人回应,要满足作者所揭示的条件需要太多的刚好,更有人表示,比起暴力破解对区块链的危害,少数人的操弄及疯狂的 ICO 才是真正的问题,不过的确此文也在这个圈子引起不少注意。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。