揭秘空块攻击:打包空块是矿工恶意攻击?

 2023-10-04 21:00:55发布 2023-10-04 21:01:15更新

挖矿的矿工拒绝打包网络中的交易,在成功挖出的区块中,除了挖矿奖励的coinbase交易外,没有其他交易,这就产生了一个”空块”。个别情况下偶尔出现一次空块,是没有问题,但短期内频繁空块就属于空块攻击了,其效果是使待确认交易内存池变大,交易平均确认时间变长。

什么是空块攻击

空块攻击是一种将大多数挖矿算力仅用于挖掘空区块并拒绝非空区块的攻击方法。本质上,这些矿工会执行一个软分叉,所有非空块都将被拒绝。鉴于他们在网络上拥有大部分哈希算力,因此这种想法就来了,即使其他矿工想要开采非空块,他们最终也会获得更长的链。

如果只挖空块,网络上的所有活动都会停止,因此,按照这种想法,比特币将被杀死。批评者们的想法是,他们会以一种或另一种方式控制算力并在网络上执行这种攻击。

对于可能发生的攻击场景而言,这不是一个糟糕的简单近似,但问题是比特币批评者相信不会有任何阻力存在。以下是比特币网络可以执行的一些对策。

空块攻击的情况

空块攻击有两种情况:直接和间接。直接的办法是获取51%的挖矿设备并执行攻击。间接的办法是迫使矿池只开采空块。让我们先来看更现实的第二种情况。

基于矿池的算力多数派不可能成功

大多数算力都集中在矿池中,每个矿池运营商与其他矿池运营商竞争采矿设备所有者的业务。如果某国能够以某种方式控制矿池并执行这次攻击,大多数采矿设备所有者都会干脆离开。

因为矿池挖空块会比矿池挖普通块产生的收益要少。目前,区块补贴为6.25 BTC,手续费收入约为0.75 BTC。使用Slushpool等矿池可以让他们的收入增加11%。否则他们将不得不放弃利润微薄的业务中11%的收入,这是不可能的。

因此,矿池必须向采矿设备所有者提供至少11%的补贴。但是,如果他们得到补贴,设备所有者就会知道他们是空块攻击的参与方,在这种情况下,他们的忠诚度溢价将会大大提高。矿池必须给他们带来远远超过他们正在失去的11%的收入的收益。

矿池也没有简单的方法来用空块的BTC补偿这些矿工,这些空块不允许转移BTC。该矿池通过执行空块攻击,本质上是希望淘汰这些采矿设备所有者创建的业务。

给予这些采矿设备所有者的溢价不仅要涵盖在空块池中采矿的机会成本,还要涵盖他们在整个业务上所投入的价值。

换句话说,这不会便宜。他们将不得不花费至少涵盖所有这些业务价值的金额,而且可能还远不止这些。

直接获取采矿设备非常困难

另一种方案是直接获取采矿设备。而这不是一个便宜的方案。政府可以通过两种方式获得采矿设备,要么没收,要么自己生产。

自己生产采矿设备

采矿设备的一个主要特点是它们是便携式的,而且众所周知,这种设备一直在大量移动以追逐最便宜的电力来源。他们必须要求注册和移动采矿设备,并且需要庞大的官僚机构来跟踪。

此外,还有一个问题是在不引起怀疑的情况下从其所有者手中夺取这些宝贵的财产。这是非常困难的,因为采矿设备非常有价值,尤其是在空块与正常块的大战中。

正如我们将看到的,在少数人中开采正常区块的设备将获得大量费用。因此,在这样的战争中,每个采矿设备所有者都希望将他们的设备出售到国外并尽快将其走私出去。

因此,该行动不能只是缓慢而稳定地夺取一个又一个采矿设施。他们必须以巨大的力量被一下子全部夺取。

任何对即将发生的事情有所了解的人都会尽快将他们的设备运出该国。即使是类似于前兆的事情,例如必须向政府注册采矿设备,也可能会导致除最无利可图的采矿设备外的所有采矿设备的大规模外流。因此,这项行动需要大量人力、大量保密和大量协调。

从市场上购买设备

一个庞大的政府买家将为采矿设备市场增加巨大的需求。随着价格上涨,利润率也随之上涨,从而吸引了更多制造商进入市场。

因此,这样的政府将不得不超越供应随需求增长的自然市场动态,不仅要在某个特定时刻收集世界范围内的大多数采矿设备,而且还要永远向前。

如果在任何时候他们在任何相当长的时间内停止拥有大部分哈希算力,他们的空块攻击就会失败。

自己制造设备

自己制造同样困难,因为他们必须在制造此类设备所需部件的整个供应链上竞争。他们将增加这些部件的利润,使其更有利可图并创造更多供应,最终创造更多与他们竞争的采矿设备制造商。

换句话说,他们必须超越设备制造的自由市场流程,这不仅需要大量资金,还需要政府通常不具备的大量技术和业务能力。

如果一个国家拥有多数哈希算力会发生什么

假设一个国家以某种方式设法获得了51%的挖矿算力,无论是通过自己制造、购买还是在市场上抢占。

这种情况下,他们将启动空块攻击以停止整个网络。网络的其余部分可能会因为只有空块被开采而感到不安,并且会看到正常的块被消灭。

网络的其余部分理所当然地将空块视为对网络的攻击,将其识别为攻击并且不接受此类块。

这在任何全节点实现上都非常容易。有一个名为“invalidateblock”的RPC命令,它本质上是说“不接受这个块或任何构建在它之上的块”。

国家级攻击者如此努力创建的整个分支可以被任何节点使用该单个命令标记无效。这必须由每个单独的节点来完成,但鉴于在空块链上实际上没有任何交易正在处理,节点运营商将被激励来运行它。

对于让他们的块被空块覆盖的少数算力,他们显然希望运行“invalidateblock”,否则他们将无法赚钱。从博弈论的角度来看,网络的很大一部分在经济上受到激励以进入新的少数派共识。

换句话说,由于经济激励,一个去中心化的子集将形成,以与明显中心化的多数算力派相抗衡。

空块链和正常链的战争

此时,比特币将分叉:一个空区块链和一个正常区块链。正常的会有交易,但哈希算力较低,因此运行速度会更慢。空的将没有交易,但具有更多的哈希算力,因此运行速度更快。

它们将是独立的链,每个在经济上有意义的节点都将追随正常的区块链,因为它是唯一实际处理交易的节点。

不仅如此,由于哈希算力降低导致交易积压,费用将上涨,从而使该链上的挖矿利润显著增加。结果,经济激励将导致更多的算力加入少数派一边。

与此同时,多数派一方必须通过新设备制造、旧设备使用和来自少数派一方的叛逃来保持多数,才能继续攻击。

如果在任何时候,正常区块链的工作量证明比空区块链多,那么空区块链就会被消灭,攻击基本上就会被挫败。

但是,即使普通区块链的哈希算力较低,它也会愉快地“咔咔”出块,而空区块链将继续无用地添加块。

没有人可以在空链上买卖,因为无法向任何交易所发送或接收比特币,这样的链不会影响其他人对真正比特币的看法,很少有人会关注它。

推荐阅读