首页 > DAO > 比特币惊现重大漏洞后,代码审查工作将更加严苛
链闻速递  

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

摘要:自从上周发现并修复了比特币最严重的漏洞之一以来,社区的情绪用「震惊」这个词来形容是最恰当不过了。这一潜藏了两年的漏洞可能被利用来产出比硬编码 2100 万枚更多

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

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

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

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

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

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

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

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

「错」在整个社区

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

链闻 ChainNews:提供每日不可或缺的区块链新闻。


原文作者:Alyssa Hertig
文章来源:巴比特
中文编译:Libert
版权声明:文章为作者独立观点,不代表 链闻 ChainNews 立场。

免责声明
世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。