比特币惊现重大漏洞后,代码审查工作将更加严苛

640?wx_fmt=gif


640?wx_fmt=jpeg

作者 | Alyssa Hertig

本文转载自巴比特


自从上周发现并修复了比特币最严重的漏洞之一以来,社区的情绪用“震惊”这个词来形容是最恰当不过了。


这一潜藏了两年的漏洞可能被利用来产出比硬编码2100万枚更多的比特币,随着这些比特币浮出水面,社区对此大加讨论,而开发人员也正绞尽脑汁:有没有什么办法防止类似严重的漏洞再次被添加到代码中去?


漏洞发现后几天,社区尚未提出任何正式的解决方案。但它引发了大量有关比特币的讨论:它如何工作?当加密货币货币中最流行的软件客户端(software implementation)比特币核心钱包(bitcoin Core)再次出现类似的漏洞时,如何才能识别出来并获得解决?


重要的问题还包括:如果一个恶意的参与者首先发现了这个漏洞,结果会怎样?如果现在代码中还有其他隐藏的漏洞怎么办?


在这一点上,化名“Theymos”的reddit社区比特币子版版主敦促社区不要忘记这个漏洞。他在一篇传读很广的帖子中称这是“一次不可否认的重大故障”,并补充道:


“如果比特币核心团队的所有策略和做法都保持不变,那么最终类似的故障将不可避免地再次发生,而我们下次可能也不会那么幸运地看到这一次类似的结果。”


即便如此,有一种观点认为,在开放的全球参与的网络的推动下,比特币核心团队现在拥有了比该技术历史上任何时候都更强大的代码审查过程。


现在,对开源代码库做贡献的开发人员比以往任何时候都要多。而且它被测试了很多次;据估计,代码测试约占代码贡献的20%。



01

“错”在整个社区

 

尽管如此,开发人员仍然认为,要确保该数字货币顺利运行,还有更多的工作需要去做。


Theymos认为,一种方法是建立“更复杂”的测试,专门测试并定位严重但很难发现的漏洞,比如上周的测试。并补充道:


“社区应该希望所有大型比特币公司派出技术测试专家进入比特币核心团队,目前很多公司没有为核心开发做出过任何贡献。”


比特币核心贡献者James Hilliard也强调了这一点,他认为开发人员可以提高测试的“数量”和“质量”。不过,说起来容易做起来难。比特币核心贡献者Greg Maxwell对Theymos的思路表示赞同,认为测试固然重要,但是测试的质量和细节才是关键。Maxwell说道:


“将更多的精力用于测试对我们来说是一个长期的挑战,一方面是因为测试的艺术性和科学性不亚于系统工程的任何其他方面。测试涉及的技能和能力并非每个人都具备。”


但这种专业人才很难找到。Hilliard告诉CoinDesk:


“比特币的发展在很大程度上受到了代码审查的限制,而且没有多少人能够胜任这一工作。”


然而,许多人认为责任不应该只落在开发人员身上。人们普遍认为,作为一个没有领导者的去中心化项目,保持比特币的无差错是大家共同的责任。化名为Shinobimonkey的比特币爱好者告诉CoinDesk:


“我的主要问题是,很多人对特定的开发人员提出批评指责,但整个项目是开放的,它不是‘会员制’,用户有责任审核代码,就像开发者积极贡献代码一样。”


比特币核心维护者Wladimir van der Laan也表达了同样的观点,他在推特上写道:


“出现有漏洞的代码是不对的。是的,是‘我们’搞砸了,但这个‘我们’概念很宽泛。应该是整个社区因为没有彻底审查共识变化而将它搞砸了。”


区块链代码工程师John Newberry同意该观点。尽管他没有编写漏洞百出的代码,但他辩称,作为比特币世界的一名开发者,出现这样的错误他也有责任,因为他没有对代码进行仔细审查。


他甚至表示,他此前看到该有问题的代码时只是觉得很可笑。但他认为其他人可能已经检查过了。他说道:


“我没有亲自去验证,而是相信那些比我更聪明、更有智慧的人已经验证过了。我想当然地认为是其他人已经做了这一工作。”



02

允许存在多个比特币核心代码客户端


尽管如此,一些人仍然认为有存在漏洞的风险。Blockstream首席运营官Samson Mow在推特上说:


“比特币以前也出现过漏洞,而且还会再次出现漏洞。它只是一个软件。这没什么大惊小怪的。”


除了这些思路外,还有另一个流行的想法。目前比特币社区的主要比特币软件比特币核心在95%的比特币节点上运行。(至少这是根据一项统计数据得出的——有趣的是,没有办法看到每个比特币节点,因为有些节点想要更多的隐私,不会向网络的其他部分大事宣扬它们的存在。)


因此,一个想法是要允许更多的比特币代码客户端存在。这样的话,如果一个代码客户端有灾难性的错误导致网络崩溃时,其他代码客户端仍然可以运行,从而保持比特币作为一个整体一直运行。


从某种程度上讲,这已经存在了。目前存在一些不太为人所知的代码客户端,如Bitcoin Knots和Btcd。它正在加密货币领域的其他地方成为常态。例如,以太坊有两个主要的客户端,Geth和Parity,每一个都可以供任何运行该软件的人使用。


尽管如此,许多比特币开发人员担心,添加多个客户端可能会带来比上周的漏洞更严重的问题。比特币核心贡献者Andrew Chow在一场概述利弊的对话中表示:


“许多人没有意识到的是,让人们运行不同的客户端使得攻击者更容易对网络进行分裂。”


因此,开发人员就下一步该做什么尚未达成一致。也许Theymos的话对此做了最好地表述:


“我不知道怎样才能防止这种情况再次发生,但如果社区因为这次错误没有造成什么损害而对它置之不理,我知道接下来会发生什么情况。”



原文链接:

https://www.coindesk.com/in-wake-of-major-failure-bitcoin-code-review-comes-under-scrutiny/


最新热文:


640?wx_fmt=jpeg


大力戳↑↑↑  加入区块链大本营读者⑦号群

(群满加微信 qk15732632926 入群)

(内容转载请联系微信:qk15732632926)

(商务合作请联系微信:fengyan-1101)


640?wx_fmt=jpeg

猜你喜欢

转载自blog.csdn.net/Blockchain_lemon/article/details/82879432