51%攻击有不同的类型,虽然它们能达到相同的攻击效果,但对网络参与者来说存在根本上的不同。从网络参与者的角度来看,存在一种51%攻击(内部算力攻击),它与网络总体算力无关,网络只能依靠缩短出块时间的来减少被攻击的风险。
工作量证明是为网络带来安全的基石,其主要原理是网络参与者通过大量消耗能源独立验证交易。根据网络的平均能源消耗量(哈希率),网络参与者决定他们将等待多少个区块以确信交易获得保护——例如,如果参与者决定等待K个区块并且这K个区块消耗的平均算力是X,那么他相信该交易将会在花费K * X的算力后保留在链上。在K次的交易确认之后,网络参与者确信恶意行为者产生K * X的算力以欺骗网络参与者的概率非常低并且得出结论,交易是不可篡改的。
我们可以想象一个算力球,确保我们不必相互信任。算力球可以有不同的颜色(网络使用不同的哈希函数),并且如果算力球具有相同的颜色,则算力球只能与另一个算力球竞争。算力球越大,网络越安全。这个想法非常棒,效果很好。
51%攻击的一个典型案例就是,恶意行为者购买了大量硬件设备并开始秘密挖矿。更简单的方法是通过NiceHash这样的服务商租用算力。在这两种情况下,我们都有一个大小为E的算力球,它可以保护网络,外部攻击者需要为K个区块(逆转交易所需的区块数量)生成一个大于E的新算力球。
作为网络的参与者,保护自己免受这些攻击的影响是相对容易的。只需要等待足够多的交易确认。值得注意的是,更容易受到此类攻击的网络是总体算力较小的网络,攻击者可以通过算力租赁服务获得超过总网络算力的51%。另一种情况是,如果另一个网络算力球有着相同的颜色(即相同的哈希函数),并且网络算力球更大(比如比特币和比特币现金)。为了防止来自另一个已知算力球的攻击,可以设置警报系统来检查这些算力球是否在变小——消失的算力可以用来攻击其他网络。
保护我们网络的算力球可以分成多个较小的算力球,它们会相互竞争。举个例子,如果我们有一个网络,其中65%的算力球仅来自4个不同的来源(例如矿池)。如果使用网络的内部算力来攻击它,那么从参与者的角度来看,我们有一个完全不同的情况。
上图中的算力攻击看起来与外部算力攻击是一样的,但不同之处在于交易确认的概率不再是算力球提供的安全性的函数,而仅仅是时间的函数。为了更清楚地说明这一点,让我们想象一个由大型算力球(它占地球上总算力的90%)保护的网络。在这种情况下进行外部攻击是不可能的。然而对于内部算力攻击,这种情况与算力球占总算力0.0001%的情况没有什么不同,这是因为这种攻击使用了一定比例的现有算力。在这种情况下,网络参与者只能依赖于从交易包含在区块中以来经过的时间(出块时间),算力球的大小不能抵御这种类型的攻击。这就是为什么这两种情况是不同类型的51%攻击。内部算力攻击在拥有较短出块时间的网络上可能更容易被发现,因为我们可以在更短的时间内看到最新的算力分布情况,以相应地对应各种情况(比如一些算力池突然停止了挖矿)。
上述两种攻击的混合也是可能的。攻击者使用不到51%的内部算力球(例如40%),这部分算力与之前不存在的新算力球(20%)合并。在这种情况下,网络本身算力球的大小能抵御外部算力,因此这种攻击情况没有纯粹的内部算力攻击那么糟。
我们不知道这些攻击是否可能在比特币网络上发生。比特币网络上可能存在一些限制,使内部攻击几乎不可能发生。由于矿池需要非常频繁地向矿工付款,可能会没有足够的资金支持,因此51%攻击的实施可能最终无法让他们获利。
当前比特币的算力分布如下:
比特币网络的大部分算力掌握在10多个矿池手中,这似乎不是最理想的,增加了内部算力攻击的风险。即使这10个算力源都由诚实的网络参与者控制,但他们的系统也存在被黑客入侵的可能,如果他们使用相同的客户端也存在漏洞被利用的风险。最后,本文仍然认为比特币是最安全的网络,可以用最少的信任来转移价值,但看起来确实有改进的余地。
从网络参与者的角度来看,存在一种51%攻击(内部算力攻击),其中参与者不能使用算力球的大小来保护自己。这是因为算力球的大小与内部算力攻击无关。对于此攻击,参与者只能依赖于从交易包含在区块中以来经过的时间(出块时间)。值得注意的是,能够快速出块的网络在这种情况下具有优势,因为它们可以在更短的时间内获得有关丢失池的更多信息。内部算力攻击应该得到一些关注,我们需要进行研究以确定是否有可能以更好的方式分配算力。
声明:此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网站所提供的信息,只供参考之用。