找回密码
 立即注册
门户 深度观点 查看内容
  • QQ空间
  • 回复
  • 收藏

通货膨胀漏洞对超过一半的比特币全节点来说仍然是一个威胁

2019-5-20 11:40

 

比特币核心开发者Luke Dashjr发布的数据显示,比特币网络中超过一半的完整节点仍在运行客户端软件,容易受到2018年9月发现的通胀漏洞的影响。


这一发现对网络造成了一定的威胁,因为软件漏洞对比特币(BTC)的保真度是一个明显而现实的威胁。既然排名最高的加密货币正处于价格上涨之中,那么采取措施彻底根除通胀漏洞问题或许就很重要了。

 

大多数比特币全节点仍然容易受到通胀漏洞的影响


据Cointelegraph 5月8日报道,Dashjr的研究显示,比特币网络上超过50%的完整节点仍在运行易受通胀漏洞影响的比特币客户端软件版本。


然而,从那时起,这一数字已经从60%下降到54%。这意味着,在过去几天,一些完整的节点已经升级到最近的客户机软件更新。


早在2018年9月,开发商就首次发现了通货膨胀漏洞——理论上,这可能会让矿商在同一笔交易中花费多个未使用的交易产出(UTXOs),从而使比特币总供应量超过2100万比特币。


考虑到bug的性质,开发人员将其保密,悄悄地发布了客户机的新版本。Bitcoincore.org发布的2018年9月《常见漏洞和暴露(CVE)报告》摘录如下:


“为了鼓励快速升级,决定立即修补和披露不那么严重的拒绝服务漏洞,同时联系矿商、企业和其他受影响的系统,同时推迟出版完整版,给系统升级留出时间。9月20日,一个公共论坛上的帖子报道了整个事件的影响,尽管该帖子很快被撤回,但这一声明被进一步传播。”


Dashjr的分析得出的一个关键结论是,比特币网络上的完整节点总数。大多数比特币文献资料都认为,全节点比特币的数量接近1万个。


然而,Dashjr认为这个数字更接近10万,而造成这种差异的原因在于,许多源只解释了在网络上积极监听的节点。


这些完整的节点称为侦听节点,它们具有可以探测的开放端口连接。然而,并非所有的全节点都是侦听节点;有些,隐藏在防火墙后面或配置为不主动侦听新连接,不容易发现打开的端口连接。

 

通货膨胀问题的严重性


要了解通货膨胀问题的严重性,重要的是要知道可以利用这个问题的机制。这一过程将包括对双重支出攻击、通胀漏洞本身以及如果不加以控制可能出现的问题进行简要解释。


比特币的早期成功,在很大程度上归功于比特币的创造者中本聪(Satoshi Nakamoto),他出色地解决了阻碍先前虚拟货币系统成功部署和实施的双重支出问题。


通过创建一个带有验证事务的节点的不可变分类帐,在理论上几乎不可能在两个不同的事务中使用相同的UTXO。

 

 

然而,当恶意参与者试图使用一个事务多次花费UTXO而不是将UTXO花费在两个不同的事务中时,会发生什么情况呢?由于比特币的设计工作方式,这一举措将意味着凭空创造出新的比特币,从而推高总供应量——也就是通胀漏洞。


比特币软件的几次连续更新都试图提高区块链对第一类双重攻击的免疫力。不过,核心值是0.14。x版的比特币软件客户端,开发者开始注意到软件客户端存在分布式拒绝服务(DDoS)漏洞的可能性。


该bug允许恶意攻击者破坏运行0.14的节点。x软件版本,试图花费相同的UTXO两次。在这个bug的迭代中,目标应该是尽可能多地崩溃节点,而不必夸大比特币的总供应量。


为了解决这个问题,下一个发布的更新0.15.0包含了一些特性,这些特性无意中允许恶意攻击者在一个事务中花费相同的UTXO的两倍。这个新错误没有导致系统崩溃,而是导致旧的软件客户端认识到这种重复花费的事务是有效的。


一经发现,开发人员再次发布了一个新版本的软件,然后向更广泛的加密货币社区宣布。然而,在这个问题应该得到解决的几个月之后,网络上超过一半的完整节点仍然在运行容易受到这个bug攻击的客户机实现。


Cointelegraph与Dashjr谈到了通胀漏洞的含义,这位比特币开发商回应道:


“通胀漏洞实际上是一个网络范围的风险。它将允许51%的矿商攻击引发通货膨胀(这类攻击通常不会发生)。通胀链条只会被脆弱的节点和轻钱包接受。”


达什jr进一步阐述了这种虫子所带来的危险,他接着说:


“它使原本被认为是一个完整的节点,实际上在这方面只是一个轻钱包。如果超过一小部分人使用轻钱包,矿商就可以制定规则。”


所有节点都必须进行升级


每当开发人员发现这种性质的bug时,解决方案总是让节点升级到新版本的软件,希望新版本的特性能够消除这个问题。有时,这个过程可能会导致另一个问题的出现——正如在2018年所看到的,当解决DDoS错误时,导致了通货膨胀错误的出现。


当Cointelegraph问及该如何应对这种情况时,达什jr的回答简单而直接:


“每个人都升级到一个固定的完整节点。”


在此过程中,比特币网络是否面临可信的风险,原因是半数完整的节点都容易受到通胀漏洞的攻击?这个问题的答案可能在于谁才是网络的真正掌权者:矿商还是开发者?


2018年,比特币开发商吉米·宋(Jimmy Song)表示,试图利用通胀漏洞的流氓矿商几乎不可能成功。首先,宋表示,并非每个完整的节点都运行比特币核心,很多节点更愿意部署定制的比特币客户端迭代。


一些节点不运行核心客户机的事实已经减少了攻击,因为这些节点将拒绝包含膨胀UTXOs的块。如果有相当数量的矿商拒绝接受受污染的区块,那么很可能会发生连锁反应。


早在2010年,在74,638块中发现的“值溢出事件”期间,开发人员在不到5小时的时间内向客户机发布了一个新的更新,解决了这个问题。该区块包含一笔交易,为三个地址创造了约1,840亿比特币,其中两个地址接收了922亿比特币,负责解决该区块的矿商获得了0.01比特币。


这种差异只持续到接下来的53个块,到块高74,691时,网络上不再存在溢出值的所有痕迹。最初接受带有污染块的链拆分的节点很快开始恢复到不包含膨胀块的链拆分。


同样的道理也适用于通胀漏洞:一旦分裂发生,开发者和网络上的其他人就会开始注意到,正如宋在他的博客文章的摘录中解释的那样:

“由于这些违规行为,网络上的人很快就会追查到,可能已经通知了一些开发人员,核心开发人员会修复它。如果有一个分叉,那么社会共识就会开始讨论哪个才是正确的链条,而产生意外通胀的链条很可能已经输掉了。如果有一个障碍,很可能会有一个自愿的回滚来惩罚袭击者。”


对宋来说,考虑到此次袭击的经济效益,流氓矿商不太可能愿意采用这种策略。然而,这位比特币教育家表示,为反比特币情绪高涨的国家工作的黑客可能会利用这个漏洞破坏网络。

    原作者: Osato Avan-Nomayo中链传媒编译 来自: cointelegraph