写在前面:对于以太坊来说,EIP-1559无疑将是一个非常重要的改进提议,然而也有人对潜在针对EIP-1559的51%攻击表示担心,那我们需要为此担忧吗?
作者Micah Zoltu认为,针对EIP-1559的51%攻击其实威胁并不是很大,相比现有的51%攻击方式,对EIP-1559发起51%攻击的实际要求更高,并且潜在的收益更少,而不参与攻击,反而能获得更多的收益。
“太长不看”版回答:
是的,你应该对51%攻击感到担心,但不是因为EIP-1559。今天存在的51%挖矿攻击是自我强化的,这意味着一旦有人开始攻击,加入攻击者的行列就是有利可图的。
但针对EIP-1559的 51%攻击并非如此,实际是脱离攻击者的联盟,总是要比加入他们更有利可图。
EIP-1559概要
如果你知道EIP-1559是什么,请跳过本节。
EIP-1559是以太坊处理gas定价方式的一个提议变更,以使每个区块都有固定的区块范围gas费用(基础费用-base fee),这个费用可根据区块空间需求自动向上/向下调整。如果区块已满,则基础费用会增加,而如果区块未满,则基础费用就会减少。
为了防止矿工通过提高基础费用来伪造整个区块(纳入自己的垃圾交易)来增加未来收入,这个基础费用会被燃烧掉,而不是给予矿工。然后,为了激励矿工实际纳入交易(这给矿工带来了机会成本),而不是仅仅挖取空块以获得区块奖励,交易还会有单独给矿工的费用(称为矿工tip费)。
我们预计,基础费用(base fee)将占到正常情况下相关费用的大部分,而矿工的tip费用可能略高于机会成本,即大约1 gwei/gas 。这里有一个小例外,即预期参与区块gas价格竞拍的抢跑者和其他人,将以贿赂矿工的形式出现。
针对PoW的51%攻击
(本节与EIP-1559无关,但了解针对工作量证明(PoW)的51%攻击,以及它们在今天可能造成的损害,对于我们在评估是否需要担心针对EIP-1559的51%攻击时,是非常重要的。)
如果你是一位控制某种PoW币51%算力的矿工,那么你可以执行一次双花攻击,通过这种攻击,基本上可以让你通过挖取侧链来重写历史记录,然后在将来某个时候将其揭露。这是我们最常讨论的51%攻击,但这种攻击在现实中执行起来相当困难,因为你需要有足够的可用资本将链上资产转换为链外资产,你需要一个或多个愿意进行这种交易的供应商。考虑到攻击一些较大体量区块链的51%攻击成本,这种尝试被证明是不值得的,因为你根本无法覆盖掉成本。但是,对于较小的区块链,我们已经看到这种攻击被执行多次了,因为相对于攻击区块链的成本,你可获得的收入是值得的。
另一种很少被讨论的51%攻击是审查攻击(又名自私挖矿)。在这种攻击中,你拥有51%的挖矿算力,但是你拒绝在任何没有被你的挖矿联盟开采的区块上工作。由于你拥有超过51%的算力,这意味着你的链将是最长链,任何不属于你联盟的区块都将被忽略。最终的结果是,你将获得100%的区块奖励,而不是51%的区块奖励,这意味着你的收入会翻倍,但你的工作量却没有。
这种51%审查攻击,只要矿工能够联合起来形成一个联盟,并控制至少51%的挖矿算力,他们就可以实施这种攻击。这些攻击对用户没有直接的负面影响(除了一段时间的难度调整,而它最终会过去)。而这种挖矿联盟不需要非常信任对方,任何联盟成员都可以看到是否有另一个联盟成员叛变,并将其踢出联盟(或者,如果有足够多的成员出现叛变,则有可能联盟就会解散。)
51%算力联盟对PoW区块链执行审查攻击,就可以导致成员收入增加约2倍,值得注意的是,类似于上述审查攻击的自私挖矿策略,可以大约33%的算力实现盈利,但这确实有点复杂,超出了本文的范围,因为我们在这里所关心的只是针对EIP-1559的 51%攻击。
针对EIP-1559的 51%攻击
而针对EIP-1559的51%攻击,最常见的版本是这样的:
- 创建一个同意挖取空块的51%算力矿工联盟,将基础费用(base fee)降低到0;
- 一旦基础费用(base fee)降低到0,就会出现永久性的拥堵状态,这意味着矿工贿赂(tip费用)将成为决定交易是否纳入区块的决定因素,这将使得我们回到目前的状态,即贿赂矿工是唯一的纳入因素;
- 矿工从更高的tip费用中获利;
值得一提的是,最坏的情况下,我们最终会回到现在的状态,那么EIP-1559实际就相当于不存在。
100%攻击
为了更好地理解这种攻击,让我们看看如果有矿工联盟控制100%的算力,并且他们决定这样做,会导致什么情况发生。
首先,他们将需要开采一段时间的空块,以便将基础费用(base fee)从原来的水平降到接近于零的水平。在这段时间内,他们将获得区块奖励,但不会收取到任何交易费用。基础费用(base fee)每个区块只能更改大约12.5%,这意味着如果所有区块都为空块,则基础费用(base fee)可每5个区块减少一半,每17个区块减少90%。也就是说,将基础费用(base fee)降低到接近于零的水平,大约连续1个小时的空块就足以完成这种攻击。
一旦基础费用(base fee)足够低,挖矿联盟希望将其保持在这个水平,实现这一目的最简单的方法,是将算力分成两个部分,其中一半挖取空块,另一半则是挖双倍的满区块(这意味着这些区块的大小是当前gas上限允许的2倍)。在这种情况下,联盟挖到的空块仍然不收取任何交易费用,但挖到的双倍满区块则可以获得一堆交易费用,而不必担心基础费用(base fee)会侵蚀其交易费用利润!这就是有利可图的攻击。
99%攻击
假设矿工联盟控制了99%的算力,而不是100%的算力。攻击的效果基本相同,除了在攻击的初始阶段,当你用99%的算力挖取空块时,1%的脱离算力会赚取到费用,而且这些算力也会稍微减慢你降低基础费用(base fee)的速率,因此你需要更长的时间来达到接近0的基础费用目标。
一旦你达到了你的目标,你仍然需要50%的算力来挖取空块,而另外50%则用来挖取双倍满区块。由于有1%的算力不是挖矿联盟的一部分,他们几乎肯定会挖取双倍满区块,这意味着联盟算力只有49.5%将获得丰厚的手续费奖励。总体来说,这对你来说仍然是有利可图的。而对于非联盟的矿工成员来说,你的攻击是伟大的,因为这使得他们变得富有,但他们不可能加入你的队伍,因为加入联盟赚取的钱要比不加入要更少。
51%攻击
假设你的联盟只控制了51%的算力,如上所述,49%的敌对算力几乎会肯定挖取双倍满区块,这对挖矿联盟来说当然不是什么好事。首先,将基础费用(base fee)降低到0,会花取联盟非常长的时间,因为这需要每51个区块才能将基础费用降低12.5%,然后又有每49个区块会将基础费用提高12.5%,当然,你最终会达到目的地,但这意味着需要数天或数周的时间来进行攻击,而敌对矿工则可以享受到交易费用。
一旦基础费用(base fee)被充分压低,你将开始执行分割挖矿策略,并且像以前一样,50%的算力挖取空块,另外50%挖取双倍满区块。由于你只控制了51%的算力,这意味着挖矿联盟有98%的算力在挖空块(没有交易费用),而只有2%的算力在挖取双倍满区块。与此同时,所有没有加入联盟的矿工都在挖取双倍满区块,并从交易费用中赚得盆满钵满 ……
??%攻击
另外,存在一定程度的算力,其中联盟从可能盈利(>50%)变为可盈利(≤100%)。该阈值取决于用户愿意为gas平均支付的金额(例如1 gwei VS 100 gwei)。然而,攻击者联盟在攻击中赚取的钱,要比非联盟成员赚到的要少,因此,在联盟继续攻击的同时,叛逃总是更有利可图的(换句话说,假装参与联盟,但实际并没有参与是更有利可图的)。
那我需要担心吗?
针对PoW加密货币的51%攻击确实是一个严重的问题。如果挖矿联盟开始审查非联盟矿工,那么他们可以赚取到巨额利润(2倍)。而权益证明(PoS)共识机制的好处是,它通过创建一种协议外机制来解决这个特定问题,以严厉惩罚任何尝试进行此类攻击的人(值得为这个话题写一篇文章)。
如果EIP-1559确实被采用了,则51%的挖矿联盟可以为非联盟成员带来可观的利润,但他们自己会蒙受损失,因此从这个角度来看,发动攻击是不理智的。而如果挖矿联盟控制了99%的算力,则其可以为自己带来利润,但对非联盟矿工来说,利润会是更多的。
如果有人掌握了51%算力,那么其最好只进行审查攻击,那么他获得的利润会更高,更简单,完成后再对EIP-1559进行攻击。
因此,是的,你应该对51%攻击感到敬畏,但对于EIP-1559的51%攻击,你不需要感到担心,因为由此产生的好处远远低于执行审查攻击,即使在理论上也是如此。
本文来自,仅作分享,存在异议请联系平台删除。本文观点不代表刺猬财经 - 刺猬区块链资讯站立场。