一周前,有人发现了Bitcoin Core客户端的拒绝服务漏洞,该漏洞波及的版本涵盖从0.14.0到0.16.2。几名Bitcoin Core开发者查看后,发现0.15.0及以上版本存在新的问题:可能引起比特币通货膨胀的共识漏洞。他们迅速悄悄打上补丁,在9月18日发布了升级的0.16.3版本。至此,问题解决了吗?
并没有。运行客户端的节点需要升级以避免漏洞被利用。而且这还不够。要知道,这不同于你手机上可以忽略的那些修复app美观度的更新。康奈尔大学教授Emin Gün Sirer告诉媒体,只需花费8万美元,恶意攻击者就可能利用漏洞让比特币网络崩溃。
确切的受影响节点数量很难得出,这是无人负责的去中心化网络的一个特点,虽然这可能比中心化网络要强。在中心化网络中,如果发生这种情况,对方说什么就是什么,你只能接受现实。
Bitcoin.org的匿名合伙人Cobra在9月23日发布推文称,超过80%的比特币网络仍然运行着存在漏洞的客户端。
顺着评论往下看(我打赌你会继续读下面的评论),有人猜测Cobra给出的数字不准确,这是事实,但情况并不严重。
作为澄清,根据Coin Dance,截至今日,49%的节点已受到保护,不会受到通货膨胀相关漏洞的影响。但是几个原因导致了这种情况,首先,Coin Dance的数字不包括网络上大量的未监听节点。其次,通货膨胀漏洞不是客户端存在的唯一问题。
此外,不是所有在Coin Dance上的“受保护节点”都应该升级:许多运行的软件是0.15.0预览版本(去年9月发布),以及0.14.0预览版本(2017年3月发布),有的使用Bitcoin Core网络之外的节点。(这和以太坊不同。以太坊有两个主要客户端Geth和Parity。比特币网络由Bitcoin Core主导,但是存在一些小型节点,包括Bitcoin Knots 和 btcsuite)。
虽然,如果仔细看给出的数字,你会发现,Coin Dance没把0.14.x版本节点归类为易受攻击,尽管Bitcoin Core特别强调0.14.x易受攻击。
相反,Bitcoin Core开发者Luke Dashjr保留了自己的观点(考虑到上个月正在使用的全部节点),他认为绝大部分节点易受攻击,包括Bitcoin Core客户端在0.16.6之前的所有版本,尽管不一定存在通货膨胀漏洞。他解释了统计数据存在差异的原因:“0.14.x版本不容易受到通货膨胀漏洞的影响,但是如果遇到这类攻击,网络会崩溃。而0.13版本容易遭到与通货膨胀漏洞无关的其他攻击。”
那么,用户为什么不升级呢?
Dashjr表示,客户端的逐步应用是正常情况:
当前客户端更新的趋势看起来大概类似于新版本发布时通常预计的情况。一般情况下,这样是正常合理的,但是由于存在已公开披露的严重漏洞,这种情况下,网络容易受到攻击。
事实上,也许并非所有相关人员都了解这些已经公开的情况。显然,不是每个人都会去阅读币圈报道、reddit子论坛或Twitter上的加密货币内容。证据就是,Cobra周日的推文迅速转变为一场讨论,内容关于在这种情况下使用公告邮件列表,有些人按理说订阅过邮件,却没收到通知。这种情况就是一个电话树(即一人打电话联系多人的方法),但不是试图告知某人烘焙销售情况这种小事,而是试图在涉及1110亿美元的市场中将重要信息告知多个相关人员……并且这些人的电话关机了。
不过,这些没升级的节点是什么情况?Sirer昨天发推表示,它们是“不产生经济效用的节点”。
比特币网络上有多少无用节点?当Dashjr被问到,有多少节点需要升级到0.16.3版本来避开漏洞,他推测说, 有85%进行经济活动的节点升级就够了。并且,他希望比特币网络不是像Sirer说的那样中心化。他表示,
通常来说,如果5%的节点(大约4000个节点)进行了85%的经济活动,比特币就真的情况危急了。