主页 > imtoken官网下载教程 > 比特币代码审查在“重大”失败后受到审查

比特币代码审查在“重大”失败后受到审查

imtoken官网下载教程 2023-01-17 10:17:31

在“重大”失败之后,比特币代码审查受到了严格审查

在上周发现并修补比特币最严重的漏洞之一后,“震惊”也许是最能描述这种情绪的词。

随着社区在两年内推出代码中隐藏的弱点,可以利用该弱点打印更多硬编码到生产的 2100 万比特币,开发人员想知道:有没有办法防止将如此严重的错误添加到代码中?

发现几天后,尚未提出正式建议。但这并不是说该事件没有引发关于比特币如何工作的讨论,并且比特币最受欢迎的软件实施 - 比特币核心 - 中的类似漏洞可以在未来被识别和解决。

这也是一个重要的问题——如果恶意行为者首先发现了漏洞怎么办?如果代码中还有其他隐藏的错误怎么办?

比特币代码谁写的

此时,匿名比特币 reddit 版主“他们”敦促社区不要忘记这个错误。

在一篇广为流传的帖子中,他认为这是“不可否认的重大失败”,并补充道:

“如果所有比特币核心的政策和做法都保持不变,同样的失败将不可避免地再次发生,我们可能不会因为当时的情况而幸运。”

话虽如此比特币代码谁写的,有一种观点认为,比特币的核心是由一个开放的全球参与者网络驱动的,其代码审查过程现在比技术史上的任何时候都要强大。

现在,由于开源代码库的贡献,越来越多的开发人员正在实施它。它有很多测试;据估计,测试占代码库的近 20%。

社区的“故障”

比特币代码谁写的

但是,开发人员认为需要做更多的工作来确保数字货币的顺利运行。

他们认为,一种方法是构建“更复杂”的测试,以针对严重但难以发现的错误,例如上周的错误。他继续说:“也许社区应该期望所有大型比特币公司都为核心分配熟练的测试专家。” 他加了:

“目前,许多公司对核心开发没有任何贡献。”

Bitcoin Core 贡献者 James Hilliard 也强调了这一点,建议开发人员可以增加测试的“数量”和“质量”。然而,这说起来容易做起来难。比特币核心贡献者 Greg Maxwell 在他们的研究中同意测试很重要,但测试的质量和细节很重要。

“将更多精力投入测试对我们来说是一项长期挑战,部分原因是测试的艺术和科学与系统工程的其他方面一样困难。测试涉及特定的技能和能力,而不是每个人两者,”麦克斯韦说。

这种专业知识很难找到。

比特币代码谁写的

“比特币的发展很大程度上受到了代码审查的影响,而且能够做到这一点的人并不多,”希利亚德说。

但是,许多人认为责任不应完全落在开发人员身上。一个普遍的看法是,作为一个没有领导者的去中心化项目,让比特币没有错误是一项共同的责任。

“我遇到的主要问题是人们指责特定开发人员推卸责任。整个项目是开放的,没有‘成员’,用户有同样的责任审核代码,因为开发人员积极贡献,”匿名比特币爱好者 Shinobimonkey 说

比特币的核心维护者 w Dimir van Deraen 分享了这样的观点,他在推特上写道:“错误的代码被合并了,这是错误的。是的,我们搞砸了,但是搞砸的“我们”很广泛。整个社区搞砸了,因为他们没有不要彻底审查共识的变化。”

Chaincode 工程师 John Newberry 同意了。虽然他没有写出有漏洞的代码,但他认为,作为比特币领域的开发人员,他也因为没有仔细观察而在漏洞中发挥了作用。

他甚至说这个问题的代码对他来说很有趣。但是,他认为其他人已经检查过了。

比特币代码谁写的

“我不验证自己,但相信比我更聪明更聪明的人会被我覆盖。我认为其他人已经完成了这项工作是理所当然的,”他说。

多个比特币核心

不过,有些人认为总是存在漏洞风险。

“比特币以前有过漏洞,以后还会有漏洞。这只是软件。它没有什么神奇之处,”Blockstream 的首席运营官 Samson 说。

沿着这条线,还有另一个流行的想法。

在今天的比特币上,有一个主要的比特币软件 Bitcoin Core,它由 95% 的比特币节点运行。(至少这是根据一项统计数据——有趣的是,没有办法看到每个比特币节点,因为一些节点需要更多的隐私并且不会向网络的其他部分宣传它们的存在。)

比特币代码谁写的

因此,一个想法是对比特币代码进行更多实现。这样,如果一个实现存在导致网络崩溃的灾难性错误,其他实现仍然可以让比特币正常运行。

在某种程度上,这已经存在。还有一些鲜为人知的代码实现比特币代码谁写的,例如比特币结和 Btcd。在这个加密货币世界中,这已成为常态。例如,以太坊有两个主要的实现,geth 和 parity,每个运行软件的人都可以使用。

尽管如此,许多比特币开发人员担心添加多个实施可能会产生比上周更严重的问题。

“很多人没有意识到,让人们运行不同的实现可以让攻击者更容易分割网络,”比特币核心贡献者 Andrew Chow 在一次概述利弊的对话中说。

因此,开发人员不一定就需要做什么达成一致。

他们可能说得最好,他说:

“我不知道如何才能防止这种情况再次发生,但我知道,如果这次结果是无害的,社区就会犯错,因为它最终基本上是无害的。”