合并后的以太坊重组

  • Paradigm
  • 发布于 2021-07-21 22:34
  • 阅读 33

本文介绍了以太坊分叉选择规则的重要性,阐述了其在工作量证明与权益证明中对链重组的影响,并探讨了可能对去中心化金融(DeFi)协议造成的攻击风险。文章深度分析了以太坊2.0合并后如何增强网络安全,以及采用不同区块生产模式(如Gasper和Tendermint)对重组攻击合理性的影响,最后提供了一些关键的应对策略。

大纲

近期讨论了矿工采用一种假设的修改版以太坊客户端的可能性,该客户端允许他们基本上接受贿赂以在链上进行短时间的重组(进行此类贿赂的主要用例是攻击DeFi协议)。

在这篇文章中,我们解释了在ETH2合并之后,这种攻击向量将更难执行。

什么是分叉选择规则,为什么它很重要?

一个分叉选择规则 是一个函数,由客户端评估,它以所见的区块和其他消息集作为输入,并输出“ 规范链”给客户端。分叉选择规则是必需的,因为可能会有多个有效链可供选择(例如,如果同时发布两个具有相同父节点的竞争块)。

重组是一个事件,其中一个曾经属于规范链的区块不再归属于规范链,因为一个竞争区块将其抹去。最终性是一个情况,分叉选择规则如此强烈地偏向某个区块,以至于在数学上不可能(或者至少经济上不切实际)对该区块进行重组。

在某些分叉选择规则中(例如Tendermint),重组是无法发生的;分叉选择规则简单地通过附加任何通过BFT共识最终确定的区块来扩展现有链。在其他分叉选择规则中,重组非常频繁。

以太坊的现状如何?

在像以太坊这样的工作量证明区块链中,我们通常看到“最长链规则”(更准确地说是“最高总难度链规则”)。这意味着当客户端被展示两个区块链时,它会选择具有最高总难度的那一个(即该链上所有区块难度的总和)。

假设为了例子,区块的难度可以为100或110,想象以下场景:

  1. 我们从难度100的区块1开始同步。
  2. 区块2a和3a分别到达,难度都是100,我们将它们插入到我们的链中,形成一个总难度为300的分叉。
  3. 区块3b到达,难度为110,它声明2a为父块,创建一个总难度为310的分叉。分叉选择规则会注意到“最重”的链现在是第二条分叉,并会切换到它。这是一个1区块重组,因为只有区块3a被改变。请注意,这些区块并没有完全被抛弃,因为可能会出现一个新区块,导致分叉选择再次切换回第一条分叉。
  4. 区块2b和3c到达,难度都是110,创建一个新的总难度为320的分叉!这意味着分叉选择规则现在将使用2b而不是2a,以及3c而不是3b,这些是最后规范链中的区块。这是一个2区块重组。

你可以看到情况是如何发展的。如果一个新块4a到达并声明3a为父块,分叉选择规则将再次切换回第一条分叉,如此循环下去。

链重组的影响

短时间的重组由于延迟而时常发生。矿工A和矿工B可能同时找到一个有效块,但由于区块在p2p网络中的传播方式,网络的一部分将首先看到A的区块,另一部分则看到B的区块。如果两个区块具有相同的难度,将会出现平局,客户端要么随机选择,要么选择最先被看到的区块。通常情况下,当某第三个矿工C在A的区块或B的区块上构建一个区块时,平局最终得以打破,而另一个区块则被遗忘。偶尔,运气不佳可能导致出现2-5区块的重组。超过这个数量的重组几乎总是由于极端的网络失败、客户端错误或恶意攻击。

短时间的重组并不是致命的,但它们仍对网络具有一些重要的负面影响:

  • 节点成本:当发生重组时,由于必须切换到新的分叉,并可能重放交易或状态编辑,会产生一些内存和磁盘开销。
  • 用户体验下降:重组的可能性意味着用户需要更长的时间才能安全地将涉及他们的交易视为“已确认”。这其中一个重要的子案例是,像交易所这样的企业需要等待更长时间才能接受存款。
  • 交易上下文的不确定性:当用户发送交易时,他们对于该交易将在什么上下文中执行的确定性较低(例如,最近的N个区块是否会被回退?)。值得注意的是,这增加了DeFi交易因意外失败、结果差于预期或有害的MEV提取而变得脆弱的风险。
  • 对51%攻击的脆弱性增加:在一个最长链规则驱动的系统中,如果链从B1重组到B2,则B1的难度不再为保护链做出贡献。攻击者不再需要超越“所有诚实矿工”,而是需要超越“不被重组的诚实矿工的一部分”。如果重组频繁,这将使攻击者的任务变得显著简化。

最糟糕的情况

在最坏的情况下,频繁的重组可能会完全使区块链的结算保证失效并阻止其进展。通常,块生产者的“激励兼容”策略应该是延长最长链。但是,如果某个特定区块的后状态极具吸引力(即有非常高的费用或者只有通过在该区块之后直接构建区块才能提取的MEV)会怎样呢?这个问题在过去的没有区块奖励的比特币自私挖矿的背景下得到了探讨,并且今天正以以太坊生态系统中的DeFi相关MEV为背景进行探讨。

在这些情况下,试图“窃取”费用或MEV的动机很大,因为竞争而不是延长规范链的顶端。在下面的示例中,区块1的后状态极具吸引力,而区块2a已经被挖掘。然而,不是一个而是三个区块生产者选择在区块1上挖掘,而不是区块2a(为了获得在区块1之后暴露的任何MEV),这可能扩展到任意数量的参与方。

出于明显的原因,这种模式为恶意的51%攻击打开了大门。我们称参与这种重组挖矿策略的矿工为“短视理性”,因为这样做的决定在短期内可能是合理的。然而,他们对ETH有明确的(抵押者)或隐含的(矿工)多头头寸(因为费用和区块奖励以ETH计价),这意味着任何减少用户对以太坊信任的攻击都会损害他们自己的最佳利益,因而在长期中并不理性。

合并后的以太坊与证明权益

在中本聪的PoW中,区块在分叉选择中是“串行化”的。首先,挖掘出一个块,此时一个单独的竞争块可能会重组该块。如果该块生存下来并成为规范链的一部分,在(平均)13秒后,某个其他矿工在其上构建一个第二个区块。此时,需要一条包含两个竞争块的链来进行重组。随着更多区块在其上构建,重组链的难度将继续增加,但速度缓慢。

以太坊信标链实施了一种名为Gasper的PoS协议,同时具有名为LMD-GHOST的分叉选择规则。与中本聪的PoW相反,在区块生产期间有两个角色:

  • 提议者:一个验证者负责提议一个块。
  • 见证者:一组验证者对他们认为是规范链头的区块进行投票。见证者的投票称为见证,它们为一个区块提供“权重”。控制见证者意味着控制分叉选择规则。

每12秒会有一个“时隙”,它表示提议一个区块的机会。对于每个时隙,一个洗牌算法返回一个由约1/32的验证者组成的委员会,其中1个验证者是提议者,其他人是见证者。见证者随后以并行方式对他们认为是规范链一部分的区块进行投票。由于委员会是随机生成的,攻击者无法集中他们的验证者于一个特定的时隙。

目前,信标链有196k个验证者,这意味着每个时隙的委员会规模为6125。因此,就算是单区块重组也是非常困难的,因为一个仅控制少数验证者的攻击者没有办法击败数千个诚实见证者的多数。

为了获取一些直观的例子,假设我们有2个时隙和24个验证者,其中9个是恶意的。验证者被分成两个委员会,由于随机洗牌,敌对者不太可能控制他们被分配给的任何组的超过50%。

更正式地说,拥有p%股份的恶意行为者控制一个N验证者规模委员会超过50%的概率遵循二项分布(其中k = N/2):

计算各种股份值的概率,我们得到了以下表格:

我们现在理解到,直接进行重组要求攻击者控制接近50%的所有验证者。

如果攻击者拥有~25-49%的见证者,仍然可以进行更微妙的攻击(参见这篇论文这里以获取简要摘要)。然而,有已知的解决方案可以为这些攻击提供无意识的修复,提高安全性,接近不条件的50%。

最后,长重组是不可能的,因为所有超过两个时代的区块被视为“最终确认”,即不可能在它们之前回退。如果攻击者造成两个相互冲突的区块被最终确认(例如,通过控制67%的股份),系统需要回归依赖社会干预来恢复。

重组策略采纳的博弈理论

现在我们已经看到了不同分叉选择规则下重组的运作方式,值得通过一个简单的博弈论示例来分析何时矿工或验证者运行执行重组以获利的软件是有意义的。

我们可以以收益矩阵非正式地描述每种情境,其中“缺损”意味着“下载并使用实现重组的软件”。这些收益是“短视”的,不考虑长期后果。

中本聪工作量证明

在工作量证明的最长链中,短距离重组可以通过概率,即使是少量验证者集也能够进行。永远会有偶尔出现的后状态极具吸引力的区块,以至于即使1-10%的成功率也是值得尝试与这些区块的现有子块进行竞争。

矿工可以是一个中型池,寄希望于他们可以连续找到接下来的2-3个区块,或者他们可以将部分收入发送到一个“任何人都可以主张”的合约,以贿赂其他运行相同软件的矿工来在他们的链上构建,并帮助其超越现有的规范链。

因此,一些矿工可能会被引诱运行重组客户端。

Gasper

在Gasper中,1-64个时隙的重组是可能的,但要求攻击者控制整个验证者集的大部分(因为他们无法将股份集中到一个特定的时隙,因此他们需要足够大,以在他们希望攻击的时隙范围内被随机选择到足够的股份)。除非其他大量验证者也同时采纳重组挖矿软件,否则重组挖矿软件的采纳是无用的。

因此,如果51%的验证者即使持有微弱的利他主义或懒惰,运行重组挖矿软件就不会是一个稳定的均衡。

Tendermint

在Tendermint中,故事更为简单:重组是不可能的,任何对单时隙最终权的违反都将使1/3以上的验证者遭到削减。类似于Gasper的情况,这也意味着运行重组挖矿软件的任何人都不是一个稳定的均衡。

正如我们上面所看到的,虽然“重组geth”的采用在所有情况下都是可能的,但基于某种平行见证的分叉选择规则具有比中本聪分叉选择中的均衡更加稳定的诚实均衡。

总结

在以太坊的背景下,最有效的预防措施是进一步加快合并的工作,尤其是迅速实现可信用的能力进行“紧急合并”,将链转为PoS。急于进行合并将具有高风险,可能会破坏基础设施,但如果许多矿工开始重组攻击链,那么可信的承诺仍然进行将使对这种行为的激励不再一致。

靠近合并的时间是最大风险的时候,因为矿工们仍然掌控系统,但他们的时间范围在缩短。然而,有两个因素可以减轻这种风险:

  1. 以太坊的矿工通常同时也是(i)其他区块链的矿工,和/或(ii)以太坊社区的其他成员,因此一些良好行为的激励依然存在。
  2. 随着合并的临近,进行紧急合并的难度、成本和风险也会降低。合并预定日期几个月之前,紧急合并会高度干扰。在合并预定日前两周,这将是已经下载的客户端的一个参数设置。

合并后,重组验证将不再成为问题,因为单个见证者或小组见证者无法自行重组一个区块。成功进行重组攻击需要解决得到大量验证者同时上线的协调难题。然而,仍然存在一些小风险。如果希望进一步提高安全性,以太坊可以进一步调整分叉选择规则,提升重组攻击的要求至50%的理论最大值,或找到直接转向单时隙最终权共识的方法。

致谢:感谢Dan Robinson、Anish Agnihotri、Kevin Pang、Dave White和MEVIntern对草稿的评论。

  • 原文链接: paradigm.xyz/2021/07/eth...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Paradigm
Paradigm
Paradigm 是一家研究驱动型技术投资公司 https://www.paradigm.xyz/