以色列研究人员发现了对以太坊的第一次共识级别攻击
bitget新闻:在一篇新的论文中(我们(Aviv Yaish, Gilad Stern & Aviv Zohar)提出并分析了对工作量证明型加密货币,如以太坊的一种新的攻击媒介。然后,我们查看了最近的以太坊区块,给出了对主要加密货币进行共识级攻击的第一个证据!
以 meme 形式简要描述我们的攻击。
以太坊的挖矿难度
在以太坊中,当前区块的挖矿难度是即时变化的,没有人挖到新的有效区块的时间越长,难度就越低;这样做是为了确保区块间的时间不会有太高的预期。什么会出错?
在以太坊中,挖矿难度即时变化。
(时间)淘汰竞争
区块之间的时间,也就是挖矿难度,是根据区块时间戳决定的。这方面的问题是,矿工在设置时间戳时有一定程度的自由,甚至可以设置虚假的时间戳。例如,矿工可以现在就开始开采一个区块,但将区块的时间戳设置为实际是过去的5秒,或未来的10秒。只要这个时间戳在一定的合理范围内,根据以太坊的共识法则,该区块仍将被视为有效。
这些相同的共识法则说,在相同高度的区块之间出现并列的情况下,应该挑选总开采难度较高的区块作为当前开采的区块的父块,而另一个区块应该是它的叔叔。
因此,希望替换区块链上最后一个区块的矿工,可以通过开采一个自己的新区块来实现,该区块的时间戳足够低,以增加区块的开采难度。这可能是有用的,例如,在最后一个区块有高额支付交易的情况下,或者为了重复花费区块中的交易。另一种可能性是,攻击者先发制人,用这种虚假的时间戳来挖掘区块,以确保他们在与其他区块打成平手的情况下获胜,这些区块可能是同时被挖掘的,或者是在最近被挖掘但还没有到达攻击者手中的。
请注意,这与大多数现有文献形成鲜明对比,后者试图通过要求矿工秘密地创建一个更重的链,扣留它,然后发布它来取代区块。
狡猾的攻击者可以通过挖掘具有较低时间戳的红色块(bA)来取代主链块(b1)。
没有风险就没有收益?不是的!
在我们的论文中,我们正式描述了上述的攻击,并对其进行了严格的分析。我们表明,通过以特定的方式执行攻击,该攻击不包含任何具有非零概率的收入低于诚实采矿的行为,这意味着我们的攻击支配了诚实采矿策略。
寻找丢失的时间:在野外做大叔
通过分析公开的链上数据,我们终于可以说,对于长期以来的问题,矿工是否会攻击主要加密货币的共识层,答案是肯定的!
虽然大多数矿池产生的区块看起来相对不显眼,但F2Pool公然无视规则,为其区块使用虚假的时间戳。具体来说,每当一个区块的时间戳与它的父区块的时间戳之差被9整除时(正是挖矿难度下降的时间),F2Pool就会在前一秒多挂一会儿,从而增加挖矿难度和利润。因此,在过去两年中,F2Pool甚至没有一个区块的时间戳能被9整除。
F2Pool 从不挖掘时间戳可以被 9 整除的区块,而是错误地将其时间戳设置为提前一秒,从而增加了挖矿难度和收益
在查看其他矿池开采的区块时,可以观察到几乎所有其他矿池的叔块都具有过度表示,其时间戳差异可被 9 整除,这意味着 F2Pool 专门尝试替换这些区块。
Ethermine、Hiveon 和 0x5a…4c 在 9 秒时拥有的叔叔比我们预期的要多,因为 F2Pool 是叔叔制造商!
总结
我们觉得在合并的风口浪尖上发表这篇论文是非常合适的,例如以太坊迁移到Proof-of-Stake的过程。当前版本的以太坊共识依赖于工作量证明(Proof-of-Work),以快速采用变化而闻名,并不总是仔细检查它们以及它们可能对矿工的激励产生的影响。因此,旨在缓解一个漏洞的变化,为新的漏洞打开了大门。我们的论文表明,应该严格分析共识机制和对它们的改变,特别是关于采矿激励。
这一点已经负责任地披露给了以太坊基金会。