减半后,1万美元即可双花攻击BCH、BitcoinSV?这存在两大误解

原文标题:《减半后,双花 BCH、BSV 成本不足 1 万美元?这存在两大误解》
原文来源:巴比特资讯 作者:洒脱喜
随着 BCH 和 BitcoinSV 相继完成产量减半,且相关网络的算力都出现了暴跌,关于 51% 攻击的话题又被拿出来讨论,还有人会引用 crypto51 或 NiceHash 的数据来展示攻击这些网络所需的成本。

减半后,1万美元即可双花攻击BCH、BitcoinSV?这存在两大误解
如上图所示,crypto51 显示的数据是,攻击 BCH 网络的 1 小时成本仅为 8983 美元,而攻击 BTC 网络的 1 小时成本也就 54 万美元,那真的如此吗?
实际上,这存在着 2 大问题:
1. 数据来源 NiceHash 可供租赁的算力是非常有限的,例如 sha 256 算法的可供租赁算力只有 298 PH/s,约占当前 BCH 网络算力的 16%;
2. 数据来源 NiceHash 的算力价格并非是固定的,假设有人短期内租用算力去发动 51% 攻击,则算力的租赁成本也会水涨船高(历史上出现过这种情况);
因此,实际情况是,想要对 BCH、BSV 网络发动 51% 攻击,真实的成本要远远高于上面所显示的数值,更不用妄想把目标换成 BTC,基本上,对于 NiceHash 市场无法覆盖攻击所需算力(自私挖矿 1/3 或略低于 1/3,双花 1/2)的大型 PoW 币种而言,想要简单通过算力租赁平台的途径来进行攻击,基本就是死路一条。
那双花攻击 BCH 网络真正的成本,到底是多少呢?这要分三种情况,并且取决于你是新矿工,还是老矿工,如果是没有矿机的主,那你就需要租赁完 NiceHash 上的所有可用算力(成本相对可忽略),同时要购置大量的矿机,以 S19 PRO 为例,这个成本可能就超过 1 亿元人民币,或者,你可以说服一些矿工和你共谋,让其提供算力进行攻击,则这个成本要远小于自己购置矿机的成本(但仍然大于上面提到的 8983 美元值)。
而如果你是老矿工,同时自己掌握了大量算力,并且矿机成本早已收回,则攻击的成本实际就是运行矿机所需的电费,尽管理论上存在着这种可能性,但实际情况下,拥有足够资源的矿工(例如比特大陆),并不会做有损于已的事情。
当然,你可能会说,不管,我就是要攻击,哪怕是不计一切代价。

减半后,1万美元即可双花攻击BCH、BitcoinSV?这存在两大误解

(图片来自:tuchong.com)
好吧,当然还是有可能去攻击的,但这并不一定意味着没有办法去解决。
实际上,即使真的发生了 51% 攻击,也是有可能挽回的。
根据哈佛大学和 MIT 的研究者发现,在 2020 年 2 月份,Bitcoin Gold 区块链上就出现过反 51% 攻击的案例,在攻击者完成攻击后,防御者继续在原链上挖矿,并与攻击者展开竞争,并最终迫使攻击者放弃双花。
减半后,1万美元即可双花攻击BCH、BitcoinSV?这存在两大误解
而假设这种机制被有效利用,则可以大大提高双花所需的成本,那攻击者就可能被吓退。
好了,本文的目的并不是为了说明 BCH、BSV 有多安全,而是澄清一些容易被误解的概念。
补充阅读
注:原论文作者 Daniel J. Moroz∗(哈佛大学),Daniel J. Aronof(MIT)、Neha Narula(MIT Media Lab)以及 David C. Parkes(哈佛大学)
减半后,1万美元即可双花攻击BCH、BitcoinSV?这存在两大误解
(图片来自 tuchong.com)
以下是译文:
比特币和其它工作量证明(PoW)加密货币的经济安全性,取决于重写区块链的成本。如果 51% 攻击在经济上是可行的,则攻击者可以向受害者发送一笔交易,发起攻击,然后双花同一笔币。中本聪(Satoshi Nakamoto)认为这种情况是不会发生的,因为大多数矿工会发现,诚实地遵守协议要比攻击区块链更有利可图。
而最近的研究表明,攻击加密货币的成本差异是非常大的,这取决于诸如算力的流动性,对币价的影响以及重写区块链所需时间等因素。在某些情况下,攻击甚至可能是免费的。截至 2020 年 3 月,对于像比特币这样的区块链,矿工们已经在挖矿设备上进行了大量的先期投资,并且他们不愿意把大比例算力拿出去出租,因此今天要对比特币发起攻击,其成本可能是非常高的。然而,其它一些币种的情况则大为不同,市场上有足够可租用的算力,可供发起经济而高效的 51% 攻击,并且在现实当中,我们已经观察到攻击者对这些币种发起的双花攻击。使用 NiceHash 这样的算力市场,买卖双方可以轻松地进行对接。
现在,人们通常认为,低算力的币种(所属 PoW 算法类别中算力较低的币种),会因为算力租赁市场的存在而容易遭受廉价的 51% 攻击,并且它们是不安全的。
在最近发表的题为《针对双花攻击的反击》这一论文中,我们讨论了一种策略,以防止处于弱势的 PoW 币种遭受 51% 攻击:受害者可以发起反击。我们证明了受害者有能力在原始链上租用算力并进行挖矿,在发生攻击时赶超攻击者链,在平衡状态下这可以阻止攻击的发生。研究结果在以下假设下成立:(1)受害者遭受了中等程度的声誉损失,而攻击者则没有(例如,如果受到攻击,交易所可能会遭受负面声誉影响,而匿名攻击者则没有),以及(2)攻击的净成本随着时间的推移而增加(例如算力的上升等)。虽然在我们撰写这篇论文时,并没有证据能够确定现实世界中存在针对双花攻击的反攻情况,但我们最近确实观察到了这种可能。
减半后,1万美元即可双花攻击BCH、BitcoinSV?这存在两大误解
(上图显示了反攻游戏的三个阶段,绿色表示当前最重的公共链(即规范链),白色表示较小的分支链。最上面的阶段显示了一次 51% 攻击的开始,其中攻击者 A 向防御者 D 发送了一笔交易,但这笔交易是在一条替代链上,它的目的是使原始交易无效。第二个阶段显示了双花交易的揭示,其中攻击者链成为了最重链(规范链)。第三个阶段显示了防御者 D 反击的结果,在此过程中,D 是在原链上进行的挖矿,并超过攻击者 A 的区块链。)
2019 年 6 月份,我们实现并运行了一个重组跟踪程序,该跟踪程序监控了 23 个目前最受欢迎的工作量证明(PoW)区块链。对于每一个币种,跟踪器都会检测并保存所有链顶端(chaintip)上的数据。截至目前,它已在 Vertcoin、Litecoin Cash、Bitcoin Gold、Verge 以及 Hanacoin 这些币种上观察到了 40 次至少六个区块深度的重组攻击。
关于 Bitcoin Gold 的重组攻击和反击
Bitcoin Gold(BTG)是于 2017 年 10 月 24 日从比特币分叉出来的,截至 2020 年 3 月 10 日,它的市值为 1.68 亿美元。Bitcoin Gold 并没有使用比特币的 SHA256 算法,而是采用了 ZHash 抗 ASIC 算法,这意味着矿工可以使用 GPU 进行挖矿。与 BTC 不同,BTG 每个区块都会进行难度调整。
然而,BTG 遭受了多次双花攻击,其中最大规模的一次 51% 攻击发生在 2018 年 5 月份,当时有 388,000 BTG(当时约为 1800 万美元)被偷。而在 2020 年 1 月和 2 月份,BTG 再次受到了双花攻击。通过重组跟踪器,我们可以在 2020 年 1 月 23 日-2020 年 2 月 5 日之间观察到 8 次 BTG 重组。其中有 4 次是有双花的,涉及到 12,858 BTG(约合 15 万美元)。
在 2 月份,我们注意到,BTG 链上似乎上演了一场了反击游戏。一开始,这只是一次典型的重组攻击,其中一笔交易在一次双花中被逆转,但随后又出现了双花被逆转的情况,这使得原始交易再次有效。2 月 8 日,攻击者和反击者在 2.5 小时内来回进行了 4 次大战。最终,原来的区块链被修复,所以这笔双花并没有成功。2 月 9 日和 2 月 11 日,我们观察到了称之为「one-shot」的反击:攻击者制造了一次重组,而防御者只进行了一次反击,就恢复了原来的区块链。
在 2 月 8 日发生的反击游戏中,双方争夺的是两笔交易 757 和 d5f(译者注:tx 的缩写),攻击者将它们替换为交易 50d 和 f38。AbC 和 AYP(注:地址的缩写)这两个地址总共被偷了 4390 BTG(约合 44000 美元),这些币被发送到了 GVe 和 GYz。最终的重组深度为 23,这将为矿工带来大约 290 BTG(3000 美元)的区块奖励,约双花总收入的 7%(关于更多详细,请参阅此处)。注意,在每一对交易中,第二笔交易花费了第一笔交易的输出,即如果第一笔交易由于双花而无效,则第二笔交易也将无效。因此,我们可以把它们视为一个单元。两个单元有相同的输入,但有不同的输出,我们将其解释为被盗的地址。
接下来,我们将说明 2 月 8 日发生的反击游戏的挖矿动态。你可以在这里看到来自两条链的带时间戳的区块列表。我们称这些地址为「防御者」,当原始链不是工作量最大的区块链时,「防御者」将在原始链上获得挖矿奖励。而那些一直跟随工作量最多链(即从未在少数分支链上挖矿)的矿工,则被认为是「旁观者」。

我们的节点在在 UTC 时间 06:56 开始观察到了 4 次重组。第一次重组将原区块链的最后 9 个区块替换为 9 个新区块。在新的区块链中,每个区块中都有两个攻击者地址:GKGUq2p 和 Gh46Jw1,并且在分叉区块(block 619935)之后的第一个新区块中有双花交易。然后,在 UTC 时间 07:35,我们的节点观察到了另一次重组,其在原始链上又挖了另外 4 个区块(难度更大)。而防御者则是 GbWi6y7 和 GSsjeTZ,双方反复进行了交战,之后,攻击者以放弃告终,并在 UTC 时间 08:58 挖了最后一个区块。根据区块中的时间戳以及节点观察到的重组世界,我们对时间轴的最佳猜测如下:
4:04,攻击者开始从 619934 高度的区块挖矿,并在高度 619935 挖取了一个区块,并进行了双花;
6:55,攻击者挖了 9 个区块,其所在链超过了现有链;
6:56,我们的节点观察到并重新定位到攻击者的区块链。「旁观者」矿工切换至攻击者的区块链,并将其延长了 2 个区块;
7:20 防御者开始挖矿,并延长原始链上未被攻击的区块(区块高度 619943);
7:33 防御者在挖到 4 个新区块后超过攻击者的区块链;
7:35 我们的节点观察到并重新定位到防御链。「旁观者」矿工切换到防守链;
7:53 攻击者再次开始挖矿,扩展自己的攻击链,该链有两个附加的「旁观者」区块;
8:22 防御者在 12 个区块之后停止挖矿;
8:58 攻击者在超过防御者 11 个区块之后,也停止了挖矿;
9:00 我们的节点观察到并切换至攻击者更深的重组链;
9:14 防御者再次开始挖矿;
9:27 防御者在原始链超过攻击者链后,继续挖矿;
9:28 我们的节点重新定位到防御者的重链上;
10:20 防御者减少投入算力;
12:15 防御者停止挖矿;
算力从何而来?
我们没有确凿的证据能够证明观察到的任何 BTG 重组,其算力是否来自于 Nicehash。这种不确定性,是由于在没有主动攻击的情况下,BTG 上的出现的价格和可用算力的大幅波动造成的。
这与我们最近在 Vertcoin(VTC)双花攻击中观察到的 Lyra2REv3(从 Nicehash 市场租用了算力)形成了对比,在这次攻击中,我们清楚地看到算力的价格在攻击期间出现了飙升,而攻击后又回到了基线。
算力可用性和价格的峰值频率,使得我们很难将看到的峰值归因于攻击。然而,市场上有足够的 ZHash 算力可被用于执行 BTG 攻击,并且存在与检测到的重组事件一致的算力峰值。
减半后,1万美元即可双花攻击BCH、BitcoinSV?这存在两大误解
检测到的重组期间 Nicehash ZHash 市场总结,红线表示重组事件的时间
攻击理论
实际上,攻击可通过在 Bitcoin Core 节点上调用一个命令来完成,因此攻击者可能不需要编写任何新代码。
例如,攻击者可能执行了以下操作:
使用 Bitcoin Core 节点进行一笔支付,并等到它被区块纳入;
在包含支付交易的原始链中区块调用 invalidateblock(在高度 619935);
断开与对等式网络的连接,然后清除 mempool 以删除现有的支付交易;
在其钱包上进行 rescan(重新扫描)工作,使原始支付交易中使用的输出可再次使用,并生成一笔新的交易,将相同的输出花费到新的目的地输出,这将和原始交易发生冲突;
正常挖矿,直到其所在链比原始链有更多的工作量,然后重新连接到对等网络,以通知其他节点,让它们参与这个替代链;
而防御者只需在包含双花交易的攻击者区块上调用 invalidateblock,这将导致其节点继续在原始链上挖矿,而不是重新定位到攻击者链。
有可能在最后两个案例中,攻击者在看到受害者正在反击时立即停止了攻击。也许攻击者知道,如果受害者能够进行反击,就不值得去和他们对战。在几乎所有的区块对战中,防御者的地址都是 GSsjeTZ。在 2 月 1 日之前,这个地址从未使用过,而在反击战发生后,其也没有被用于挖矿。
然而,这可能不是一个故意的复仇游戏。在这里我们讨论下其他的可能性。
可能性 1 :测试
一种解释是,所谓的反击实际并不是反击,而是由一个试图测试反击软件的实体模拟的。大家可以想象,一家交易所、商家或者有核心开发者已经编写了一个基础设施,以便在发生深度重组时自动反击,他们希望测试自己的软件是否能够正常工作。这可以解释为什么在 2 月 6 日发生的反击没有任何双花。
可能性 2 :矿工之战
矿工们可能一直在互相进行反击,这不是因为其中一人或两人有兴趣追回双花的资金,而是为了偷窃,然后追回区块奖励。再一次,2 月 6 日的反击没有双花的事实,也支持了这一理论。
可能性 3 :网络分裂
这可能是 Bitcoin Gold 中存在的一个短暂、重复发生的网络分裂。有可能在同一时间,某个客户端钱包广播了一笔交易,该交易将花费的输出加倍到分裂链的另一端。我们不知道是否有 Bitcoin Gold 钱包软件能做到这一点。区块时间戳与此是不一致的,这表明矿工是积极在挖矿的,然后停止了几次。而时间戳也存在可能是伪造的。攻击者和防御者的地址,在攻击前后,都没有再被使用过。
可能性 4: 软件漏洞
有可能是因为参与挖矿的软件存在某种漏洞,导致他们无法在最长链上挖矿,或者他们意外地调用了 invalidateblock。
可能性 5: 偶然的机会
另一种可能,则是两个大型矿工恰好在同一时间发现了区块,这种分裂的概率是很低的。这似乎不太可信,因为时间戳没有反映这一点,并且最长的重组是 23 个区块;
结论
算力市场的日益发展,可能会破坏工作量证明(PoW)加密货币的安全性。然而,尽管流动算力市场的存在表明一条弱链是容易受到攻击的,但受害者反击的可能,在平衡状态下有可能阻止攻击。如果这种力量的平衡,足以保护区块链,那么这就提出了一个问题,即需要多少工作量才能防止攻击?
在这项研究工作中,我们只考虑了一个理性的攻击者,而如果存在非理性的攻击者,其可能不在乎在 51% 攻击中损失的金钱,这使得他们要比潜在的反击者更具有优势。对于这样的破坏者来说,51% 攻击的成本可能仍然是重要的威慑力量,正如今天比特币所拥有的那样。
致谢:我们要感谢《针对双花攻击的反击》论文的共同作者 Dan Aronoff 和 David Parkes。也感谢 Tadge Dryja、Madars Virza 和 Gert Jaap Glasbergen 对这项工作的有益反馈。
作者:James Lovejoy, Dan Moroz, Neha Narula
来源链接:weixin.qq.com

区块律动 BlockBeats 提醒,根据银保监会等五部门于 2018 年 8 月发布《关于防范以「虚拟货币」「区块链」名义进行非法集资的风险提示》的文件,请广大公众理性看待区块链,不要盲目相信天花乱坠的承诺,树立正确的货币观念和投资理念,切实提高风险意识;对发现的违法犯罪线索,可积极向有关部门举报反映。    

双花攻击 BCH BSV 科普