APP下载

比特币默克尔树设计存在弱点,可让骇客假造有效支付凭证

消息来源:baojiabao.com 作者: 发布时间:2024-04-18

报价宝综合消息比特币默克尔树设计存在弱点,可让骇客假造有效支付凭证

开源智慧合约平台RSK Labs共同创办人,同时也是独立资安研究员Sergio Demian Lerner公开了比特币默克尔树(Merkle Tree)的设计缺陷,有心人士可以使用这个弱点,为任意金额的假支付,创建有效的SPV凭证给使用SPV钱包的受害者,让受害者以为该笔支付为有效交易。不过,要利用这个弱点并不容易,骇客至少须要对69位元进行暴力破解,且每次操作都为双安全杂凑算法2(Secure Hash Algorithm 2,SHA-2),而且还有SPV钱包可以简单实做的概率保护。

比特币默克尔树的设计不区分内部节点与叶节点,内部节点没有特定格式,只要长度为64字节就可以,整棵树的深度由交易次数决定。骇客可以向区块链提交64字节长度的交易,并且强迫受害者的系统将该笔交易重译为一个默克尔树的内部节点,骇客因此有办法提供SPV凭证,也就是说,只要在这个默克尔树的分支添加额外扩充双交易而来的叶节点,就能给产生任何交易支付凭证。

但在这之前,骇客必须要完成两个阶段的暴力破解工作,而需要破解的位元长度与骇客一开始投资的金额有关,平均落在69与73位元之间。假设骇客在单个UTXO A持有687个比特币,那在第一阶段总共需要暴力破解的位元数为72位元,而在第二阶段则需要暴力破解40位元。Sergio Demian Lerner提到,当第二阶段暴力破解重新完成,第一阶段计算的结果可以被多次的重复使用,而这样的攻击可以在不同区块不同时间进行,因此平均每次需要暴力破解的位元数为65位元。

暴力破解所需要的客制化特殊应用积体电路(Application-specific integrated circuit,ASIC)与一般的比特币矿工使用的非常相似。Sergio Demian Lerner表示,最厉害的挖矿机速度为14 TH/s,成本约为1,300美元,假设骇客可以购买10个单位花费130万美元,只要花4天的时间就能破解72位元。

骇客需要在几个私人区块挖矿以确保假交易进行,防止其他矿工重组区块链偷取交易费用或是交易输出。当骇客可以与51%的矿工合作,便能省下数百万美元租用杂凑运算机器的成本,而无论是诈骗一个或是多个用户达130万美元以上,那就会成为有利可图的生意。由于大部分的人在进行大笔交易时,都会使用完整节点接收进行仔细的检查,因次只有仰赖SPV凭证的独立系统,像是Elements区块链或是RSK Bridge才会受到这样的攻击。

这个设计漏洞有很多种的解决方法,最简单的解法就是让SPV钱包检查每一个内部SPV节点的64字节节点是否为有效交易。Sergio Demian Lerner提到,没有64字节比特交易会通过标准检查,因此这类的交易将会引发警示,即使这类的交易是一般情况,一个随机的64位元成为语法有效的交易概率也为2的负6次方,因此SPV客户端可以直接把这种双交易节点标记为攻击行为,拒绝接受SPV凭证。

2018-06-13 17:31:00

相关文章