主页 > imtoken中文版app > 比特币最严重的漏洞是如何被发现的?

比特币最严重的漏洞是如何被发现的?

imtoken中文版app 2023-01-17 09:34:20

说明

比特币现金的主要客户之一比特币无限公司透露,该公司的一位匿名开发人员如何发现比特币在过去八年中最严重的漏洞。

作为他发现该漏洞的证据,Awemany 为哈希加了时间戳(如图),并进一步与 PGP 密钥签署了一项协议,以负责任地披露 Bitcoin Core 和其他项目。我们将在下面详细引用相关部分:“我正在努力在将于 11 月推出比特币(现金)的 Bitcoin Unlimited 客户端上实施新的 CHECKDATASIG/-VERIFY 操作码。我一直在努力实施这些工具. 潜在的巧妙用例和完成这项工作的动机。

大约中午(9 月 17 日,星期三一),我注意到 ABC 的签名工作方式与 Bitcoin Unlimited (BU) 的数字存在很大差异。早些时候比特币潜在风险,我已经与 BU 团队达成一致,我将从 ABC 移植大部分 CDS/-V 文件,但我感到不知所措。我的想法是:好的,这可行,但需要更多分析,还需要更多访问者评论。而且需要更长的时间。叹息。同时,我在 ABC 代码库中偶然发现了这条评论:

//检查重复输入 - 注意这个检查很慢,所以我们在快速检查中跳过它。

我的第一反应是,嗯,这是怎么回事?还在谈论那个评论?然后我在ABC中查找了CheckRegularTransaction的用法,它是在Core中重命名的CheckTransaction的变体(但我当时并不知道。我通过代码试图理解逻辑。

比特币潜在风险

我注意到块验证跳过了这个测试,因为它被假定发生在内存池条目中。我的下一个想法是有点下沉的感觉和'啊哈,我真的希望 ABC 的人们已经考虑了内存池和块传输之间的区别,这些是进入系统的独特方式。这里可能有问题! “然后我想出了一种测试方法。我修补了一个 ABC 节点,即使请求并连接到一个不匹配和修补的节点比特币潜在风险,也不会在 -regtest 模式下中继事务,并创建了一个带有重复条目的事务(被跳过上面的测试)。

哇!断言(),中止......

我打开了给 deadalnix(BitcoinABC 维护者)的电子邮件并开始思考:“实际上,这些东西是从哪里来的,他们是什么时候将其引入代码中的,我们可能很幸运,但这还没有发布? ’

然后我注意到这些东西来自核心。我已经写了一份披露报告,重新检查了核心是否也存在漏洞。

比特币潜在风险

再次,哇!断言(),中止......

作为一个负责任的公民,我随后向 Wladimir(比特币核心维护者)、sickpig(比特币无限开发者)和其他一些人写了一封加密的公共电子邮件,其中包含 ABC 和核心补丁说明。信息。 "

基于以上,只看代码就可以发现这个bug,看来BU开发者从2018年9月17日下午12点到下午14点47分给其他开发者发邮件。

因此,一系列事件似乎表明,取消双花支票是一件大事,而且几乎是立竿见影的。

比特币潜在风险

即使是非程序员,您也可能有一些想法,这就提出了一个问题:5 位比特币核心开发人员在批准此错误时到底在想什么?

这是因为这个错误并不微妙或复杂,但它是如此简单,以至于根据上面的描述,删除双花检查是一个很明显的问题。

这引发了一个问题,即这个错误如何准确地打印比特币,这些比特币本来可以由矿工凭空打印,但最终变成了代码。

据我们所知,这也引发了 Blockstream 可能存在的利益冲突问题,即地雷问题。犯了这个明显错误的开发者当时正在为 Blockstream 工作,批准它的两位开发者也是。

比特币潜在风险

关于比特币核心的代码是否经过充分审查,需要提出更多问题。这是因为如果非比特币核心开发者一眼就能看到漏洞,还能进去,那么很明显审核过程失败了,非常糟糕。

幸好现在有一些竞争,Bitcoin Core 的 Cory Fields 之前在 ABC 上发现了一个错误,这是一个严重的问题,但比这严重得多,因为它没有考虑“有效”的双重支付。

在争论最激烈的时候,一些比特币公司表现得不那么友好,行事非常不负责任,导致了比特币无限使用的漏洞。

Awemany 没有回应他的支持,而是做出了非常负责任的披露,这导致了比特币生态系统的大部分快速升级。

比特币潜在风险

矿工和企业现在可能已经升级,但在撰写本文时,数千个节点仍然容易受到通胀风险的影响。

在这种情况下,会向节点发送警报,要求它们快速升级。这样的警报系统已被删除,尽管它只是在节点屏幕的角落里说你应该升级,就像你发现了一个错误,可以在一些链接中阅读更多内容。

警报本身不会以任何方式干扰代码节点的运行,如果引发错误警报,它可能会被其他开发人员覆盖。所有警报都会通知给节点操作员,然后他们可以做出自己的决定。

节点运营商现在必须检查加密媒体或加密推特,如果他们正在休假进行新闻发布会,他们可能会认为他们的错误节点没有任何问题。

由于 Awemany 的披露,对于已升级的用户来说,这是一个更安全的节点。为此,在撰写本文时,他收到了价值 200 美元的 0.03BTC 捐款。比特币现金付款人非常慷慨,向他捐赠了价值近 36BCH 的价值 17,000 美元的捐款。

但是,这些开发人员不应依赖其他人的善意,因为鉴于风险的严重性,应该有漏洞赏金。然而,比特币核心和比特币现金客户端似乎都没有这样的漏洞赏金,这可能意味着开发人员没有太多的动力去暴露这些漏洞,所以也许这就是为什么比特币在两年内保持在实时代码中的原因。