主页 > 下载imtoken钱包官网苹果版 > BCH双花的唯一受害者是攻击者?比特币现金硬分叉的三个问题图解

BCH双花的唯一受害者是攻击者?比特币现金硬分叉的三个问题图解

2019 年 5 月 15 日,比特币现金硬分叉似乎遇到了三个相互关联的主要问题。“攻击交易”利用了导致矿工生成空块的漏洞。围绕空块的不确定性可能引起了一些矿工的担忧,他们可能试图在原始的非硬分叉区块链上进行挖矿,从而引发共识区块链分裂。

2019 年 5 月 15 日比特币现金bch什么情况,比特币现金硬分叉似乎遇到了三个相互关联的主要问题。“攻击交易”利用了导致矿工生成空块的漏洞。围绕空块的不确定性可能引起了一些矿工的担忧,他们可能试图在原始的非硬分叉区块链上进行挖矿,从而引发共识区块链分裂。

开发人员和矿工似乎已经制定了一项计划,以收回意外发送到隔离见证 (SegWit) 地址的资金,而上述漏洞可能破坏了该计划。这一失败可能导致了两个区块链的有意识和协调的重组。根据我们的计算,大约 3,392 比特币现金 (BCH) 可能已在精心策划的交易逆转中成功双花。不过,这次双花的唯一受害者,可能就是当初偷钱的“小偷”。

原标题:《BitMEX 硬分叉——三个相互关联的事件》作者:BitMEX 研究团队

2019 年 5 月 15 日比特币现金网络分裂的图示

(注:分割图说明)

三个比特币现金问题

比特币现金 2019 年 5 月的硬分叉升级受到三个主要问题的困扰,其中两个可能是由导致空块的错误间接引起的。下图显示了这三个事件之间的潜在关系。

比特币现金bch什么情况

比特现金在硬分叉升级过程中面临的三个问题之间的关系

空块问题

Bitcoin ABC 是比特币现金的一个重要实现,但它有一个 bug,即进入内存池的交易的有效性条件可能没有共识有效性条件那么繁琐。这与比特币(可能还有比特币现金)的预期工作方式相反,共识有效性规则应该比内存池有效性更宽松。这实际上是一个非常重要的功能,因为它可以防止恶意消费者创建满足通过网络中继的条件并进入商家的内存池的交易,但不满足进入有效区块所需的条件。这将使 0 确认双花攻击相对容易被阻止,而无需担心初始付款进入区块链。在这种情况下,

攻击者似乎在比特币现金ABC中发现了这个漏洞,然后在硬分叉后利用它,造成混乱和混乱。这种攻击可以随时进行。攻击者只需要广播满足内存池有效性条件但未通过共识检查的交易。当矿工试图为这些交易生成区块时,他们会失败。作为故障保险比特币现金bch什么情况,至少在大多数情况下,矿工似乎生产的是空块而不是死谷。

比特币现金 - 每个区块的交易数量 - 橙色线是硬分叉

不对称链分裂

比特币现金bch什么情况

在空块不确定性的峰值,我们的预硬分叉比特币 ABC 0.18.2 节点收到了一个新块,582,680。当时,许多人担心空块,一些矿工可能已经恢复到硬分叉前的客户端,认为更长的区块链有问题,可能会恢复到硬分叉前。不过这只是我们的猜测,空块错误可能与链分裂无关,可能只是由矿工升级太慢引起的。

比特币现金共识链分裂

对于硬分叉的结构,链分裂确实给我们带来了一个问题。我们测试了我们的硬分叉后客户端 ABC 0.19.0 是否会认为拆分的非硬分叉一侧是有效的。为了使拆分“干净”,拆分的每一侧都应考虑另一侧无效。

为了测试较短的预硬分叉区块链的有效性,从 Bitcoin ABC 0.19.0 个节点的角度来看,由于分叉块无效,我们不得不进行第一次硬分叉。然后我们观察节点是跟随链分裂还是停留在硬分叉点。令我们惊讶的是,如下面的屏幕截图所示,该节点遵循分割的另一侧。因此,分裂是不完整的,这种不对称可能会为攻击者提供更多的机会。

我们的 Bitcoin ABC 0.19.0 节点的命令行截图

协调的两块重组

比特币现金bch什么情况

硬分叉后的几个区块,在分叉的硬分叉侧,有一个长度为2的链重组。当时我们认为是正常的区块传播问题引起的,并没有多想。例如,在此之前的几周,比特币 SV 进行了该长度的 6 块重组,根据我们的分析,当比特币 SV 重组时,孤链中的所有交易最终都进入了主获胜链(Coinbase 交易除外)。然而,在这次比特币现金重组中,我们发现情况并非如此。

孤立区块 582,698 包含 137 笔交易(包括 Coinbase),其中只有 111 笔进入获胜链。因此,对于 25 笔交易,似乎发生了 2 个区块的成功双花。如下表所示,这25笔交易的总产值超过3300 BCH。

孤块交易列表(582,698)未进入主链,来源:BitMEX Research

如上表所示,这 25 笔双花交易的总产值为 3,391.7 BCH,从经济角度来看,这是一个很大的数字。因此,可以得出结论,重组是一个精心策划的事件,而不是偶然事件。如果这是一个意外事件,则拆分每一方的交易可能不会不匹配。然而,假设协调和有意重组是我们的猜测。

我们为双重支出提供以下两个输出示例:

比特币现金bch什么情况

双花 UTXO(未使用的交易输出)的一个示例 - “0014”

上表说明了重组期间 5 个 BCH 输出的情况。这 5 个 BCH 首先被发送到区块 582,698 中的地址 qzyj4lzdjjq0unuka59776tv4e6up23uhyk4tr2anm。该链是孤立的,并且相同的输出最终被发送到不同的地址,qq4whmrz4xm6ey6sgsj4umvptrpfkmd2rvk36dw97y,7 个块后。

第二个双花 UTXO 示例 - “0020”

上述输出情况与 25 笔双花交易中几乎所有资金都有共同特征。大多数输出​​似乎在 582,705 区块附近的主链上被双花,大约在孤立区块之后 7 个区块。

赎回交易输入的 SigScript 以“0020”或“0014”开头,在上面的示例中突出显示。这些可能与隔离见证有关。根据隔离见证,“0014”被推送到 P2WPKH(支付见证公钥哈希),“0020”被推送到 P2WSH(支付见证脚本哈希)。因此,这些输入的赎回可能与比特币升级后的隔离见证有关,其中只有一部分被比特币现金采用。

事实上,根据我们的分析,孤立区块 582,698 中的 25 笔交易中的每一个输入都使用以“0014”或“0020”开头的签名进行赎回。因此,除了赎回这些隔离见证(Segregated Witness)输出的“攻击者”或“小偷”之外,可能没有人丢失与此链重组相关的资金,这些输出可能一开始就被意外发送到这些输出.

作为比特币现金 2019 年 5 月硬分叉的一部分,有一项更改允许恢复意外发送到 SegWit 地址的比特币。所以这可能发生在这个事件中。

比特币现金bch什么情况

允许隔离见证恢复

在上次升级期间,由于 CLEANSTACK 规则,意外发送到 Segwit P2SH 地址的比特币变得无法使用。这次升级将免除这些比特币并将它们恢复到以前可以使用的状态。这意味着一旦 P2SH 赎回脚本预映射被披露(例如,通过从相应的 BTC 地址花费比特币),任何矿工都可以获取硬币,来源。

这种 2 块重组可能与空块漏洞无关。但是,拆分似乎仅在错误解决后一个块发生,因此可能是相关的。也许“诚实”的矿工正在尝试在拆分后直接对这些产出的支出进行核对,或者也许他们想将它们归还给原来的所有者,而空块 bug 搞砸了他们的时间,让攻击者受益并被冲走资金.

另一方面,攻击非常复杂,因此攻击者可能非常复杂并且需要大量计划。因此,即使没有空块漏洞,这种攻击也可能是有效的。

综上所述

我们从围绕比特币现金硬分叉升级的事件中吸取了很多教训。硬分叉似乎为恶意行为者提供了攻击和制造不确定性的机会,因此仔细规划和协调硬分叉非常重要。另一方面,这个空块错误可能是其他两个事件的根本原因,这可能随时发生,无论是否尝试硬分叉,尝试防止此类错误是优先事项。

这些事件的另一个重要教训是透明度的必要性。活动期间,很难知道开发者的计划、漏洞的性质或矿工支持的链。在公共渠道就这些问题进行公开交流可能更有帮助。特别是,许多人不知道开发人员和矿工计划协调和收回发送到 SegWit 地址的资金。如果该计划事先在社区中进行辩论和讨论,以及在经过明显深思熟虑和协调的重组期间进行辩论和讨论,这可能会有所帮助。当然,假设有时间透露后者。如果参与者在事后披露有关这些事件的详细信息,也可能会有所帮助。

我们认为,最令人担忧的是经过深思熟虑和协调一致的重组。一方面,资金被盗,因此将资金返还给其“合法所有者”的行为是合理的,即使这会造成一些短期破坏。然而,许多人或一些人认为,现金,例如交易完成,是这些区块链系统的唯一独特特征。如果交易可以被撤销,在这种情况下是具有经济意义的交易,这将否定该系统的整个先决条件。这种行为可能会消除适当获得资金、开创先例或改变预期的动力,并且更有可能产生进一步的逆转。

对于比特币社区中所有不喜欢比特币现金的人来说,这可能是一个嘲笑比特币的机会。然而,虽然比特币现金比比特币低得多的哈希率使得这种逆转更容易,但我们认为,比特币现金成功的经济上重要的精心策划的交易逆转对比特币信息不利。在某些方面,这些事件有助于开创一个危险的先例。这表明这些事件可能发生在比特币身上。或者,这可以说明比特币现金在成为少数链时所面临的风险。