宁推网-元宇宙资讯

比特币漏洞 对区块链技术的测试

在区块链和加密货币领域一直都听说过黑客攻击。然而,黑客攻击主要是由于中心化实体的问题——通常是交易所或矿池。比特币和区块链的历史从早期就充满了这样的麻烦问题,从Mt. Gox和slush pool被黑 一直到最近的 LUNA 惨败(将在以后的文章中介绍)。

其中一个问题涉及中心化比特币交易所 Mt. Gox。当其管理员账户被黑时,订单簿被篡改,大量 BTC 被盗。Mt. Gox 黑客事件导致超过 4.5 亿美元的损失。

Slush pool是一个比特币矿池,在比特币早期运行。2011 年,一名黑客设法进入了某人在矿池中的账户并窃取了 25,000 个比特币,价值约 500,000 美元。

虽然这些黑客对个人用户造成严重损害,但它们不会对整个区块链构成威胁——相反,它们会加强它们,因为黑客有助于揭示中心化解决方案的弱点。

去中心化的解决方案同样存在问题;例如,用户可能会在丢失私钥时丢失其加密货币,或者由于缺乏对区块链工作的了解而蒙受损失。这些问题——无论它们发生在中心化还是去中心化解决方案上——都不是区块链技术所固有的。

另一方面,区块链的代码错误和被忽视的弱点可能会完全危及它们的存在。但是,如果特定区块链的潜力、优点和提供的价值相当可观,那么强大的支持社区将修复错误,改进系统并将区块链的进展推向新的高度。这正是比特币正在发生的事情(我们将用它作为一般区块链的例子)。

从诞生到今天,比特币已经实施了 50 多个错误修复和修改。其中大部分是为了提高其安全性并巩固其结构,这些主要是在比特币的测试副本上进行调查和修复。在实际的主要比特币区块链上,很少有漏洞被利用——既不是故意的也不是偶然的。所有错误修复都详细记录,并指出修复部署百分比。

虽然完整列表以及问题和修复的数量并不是特别有趣的详细解释,但有两个问题值得关注,因为它们强调了 a)区块链“代码”中固有的风险,但 b) 也证明了如果一个特定项目背后有一个强大的社区,那么一个稍微不完美的解决方案仍然足够实用和安全。

第一个值得一提的漏洞是在比特币白皮书发布不到 2 年后,即 2010 年 8 月 15 日发现的。这不是比特币代码中发现的第一个漏洞,因为在此之前,有 3 个漏洞已经被检测到了。然而,前 3 个是不同的,因为前 2 个仅在测试网络上被发现并修复,而第 3 个是在主网络上发现的,但在造成任何伤害之前就已修复。然而,第四个错误可能已经摧毁了比特币。

计算机程序,如比特币代码,对于它们可以存储的价值具有一定的规模。例如,假设一个程序不能存储任何大于 9999 的值。那么,当输入整数 10000 时,这将导致溢出错误,因为代码无法满足这个请求。在 2010 年 8 月 15 日之前,比特币代码会将所有交易的输出添加到一个区块中。如果总和违反了任何区块链规则,代码将产生违规消息并取消该区块的资格,然后等待另一个矿工产生另一个有效区块。但是,比特币代码无法处理溢出错误。在块号 74638 中,包含 2 个输出,每个输出的数量为 92233720368.54275808 BTC。当这两个输出相加时,结果超过了 1840 亿个 BTC,导致溢出。虽然代码确实显示了错误;然而,当时该区块并没有被取消资格,这反过来又导致了比特币供应的大幅膨胀。社区并没有失去对比特币的信任,而是迅速进行了修复,在不到 9 小时的时间内,创建了比特币区块链的分叉,并且大多数节点都采用了新的固定代码,这有效地删除了存在通货膨胀错误的区块从历史。查看此错误及其后续修复表明了一个强大的社区的重要性,该社区可以改进和帮助发展区块链。这有效地从历史中删除了具有通货膨胀错误的块。查看此错误及其后续修复表明了一个强大的社区的重要性,该社区可以改进和帮助发展区块链。这有效地从历史中删除了具有通货膨胀错误的块。查看此错误及其后续修复表明了一个强大的社区的重要性,该社区可以改进和帮助发展区块链。

在此之后,在很长一段时间内又发现并修复了几个漏洞,但没有一个发现的漏洞可以被认为对比特币的生存构成威胁。这种情况正好在 8 年后的 2018 年发生了变化,当时检测到了另一个通货膨胀错误。这个通货膨胀漏洞与之前的漏洞不同:这个新漏洞允许黑客复制交易输出,因此他们能够非常缓慢地膨胀供应。虽然这个漏洞乍一看并不严重,而且损害很容易控制和逆转,但主要问题是这个漏洞允许双花,这与比特币被发明解决的问题完全相同。

这个bug是怎么来的?当比特币开发人员试图优化节点的检查和验证能力时,他们取消了对双花的严格检查。所以从理论上讲,比特币代码是健壮的,但一个未经计算的决定使它变得脆弱。该错误已修复,然后供应减少到应有的水平。这个案例表明,过于重视代码的简单性也可能导致代码的漏洞增加,因此,在通过更新实现“更简洁”或“更简单”版本的代码之前,所有更改都需要进行广泛的测试。这在以太坊 2.0的上下文中也是值得注意的,它的目标是拥有一个以简单为特征的代码以效率稍低为代价。因此,上述漏洞的故事可以作为指导原则,从而不牺牲区块链的完整性来实现其目标。

事实上,这两个例子,以及其他 50 多个已知的比特币漏洞,可以作为一个说明性案例研究,说明应该如何对区块链技术进行有用和必要的改进。此外,这些案例还强调了测试网络(或实验区块链)的有用性以及拥有一个专门和支持社区的价值。

1、宁推网原创文章未经授权转载必究,如需转载请联系授权;
2、转载时须在文章头部明确注明出处、保留作者和原文链接,如:转自宁推网字样;
3、宁推网报道中所涉及的所有内容均由用户提供,仅供参考!
4、声明:该文观点仅代表作者本人,宁推网系信息发布平台,宁推网仅提供信息存储空间服务。