元宇宙非小号金色财经交流群社区官网

万字详解以太坊合并后可能面临的PoS攻击及防御措施

Time:2022-08-19 Click:219


原文作者: jmcook.eth

原文编译:隔夜的粥

译者注:对于即将到来的以太坊合并,作者 jmcook.eth 根据大量研究文献总结出了相关的共识攻击方式,并提到了一些解决方案。总体而言,在转向 PoS 共识机制之后,攻击者控制的质押 ETH 比例越多,其攻击的成功机会就越大,而以太坊内置的「胡萝卜加大棒」激励层可以防止大多数的恶意行为,尤其是对于低质押的攻击者,然而对于 34%、51% 或 66% 攻击,可能需要社区协调才能够解决,因此防范质押权益集中化对以太坊网络的安全而言将是至关重要的。

感谢 Tim Beiko 和 Caspar Schwarz-Schilling 对早期草稿的有益评论!

以太坊是一个出了名的对抗性环境,它甚至被比作一个「黑暗森林」(三体中可怕的博弈论概念)。这种声誉主要来自应用层(不安全的智能合约)或社交层(用户被操纵放弃私钥或无意中签署交易)的弱点,以及从交易存储池中提取价值(MEV)的机器人的存在。然而,作为小偷或破坏者的老练黑客,也在不断寻找机会攻击以太坊的客户端软件。客户端软件可以将计算机变成以太坊节点,它是定义连接到其他节点、交换信息以及就以太坊区块链状态达成一致的所有规则的代码。而对协议层的攻击,就是对以太坊本身的攻击。

很快,以太坊客户端就会进行一次重大升级(称为「合并」),这会关闭保护以太坊的工作量证明(PoW)算法,取而代之的是一种权益证明(PoS)共识机制。造成这种情况的原因有很多,这在其他文章当中已经有详细解释。这将是一场哲学变革,同时也是一场技术变革。

合并到权益证明(PoS)共识机制带来了可持续性以及可扩展性方面的好处,但另一方面,客户端软件的复杂性将会增加,协议的潜在攻击面也会增加。目前,保护 PoW 以太坊区块链只需要运行单个软件,而在「合并」之后,需要运行的软件增加到了 3 个(执行客户端、共识客户端以及验证器)。

本文概述了以太坊共识层上已知的攻击向量,并概述了一些防御这些攻击的方法。读者可能需要掌握一些信标链的基础知识才能从本文中获得最大价值。此外,对信标链的激励层和分叉选择算法 LMD-GHOST 有一个基本的了解,也会对你有所帮助。

这些都是很大的话题。但我在下面的序言中包含了一些非常易懂的入门知识。

序言

激励层

信标链是一个权益证明(PoS)区块链,它使用以太坊的原生加密货币 ETH 进行保护,希望参与验证区块以及识别区块链头部(head)的节点运营商将 ETH 存入以太坊的智能合约中。然后,他们获得 ETH 的报酬以运行验证器软件,检查通过对等网络接收到的新区块的有效性,并应用分叉选择算法来识别区块链头部。节点运营商现在是「验证者」,而验证者有两个主要角色:1)检查新区块并「证明」它们是否有效,2)从总验证器池中随机选择时提出新区块。如果验证者在被询问时未能完成这两项任务中的任何一项,他们就会错过 ETH 支付。还有一些非常难以意外执行,并且表示有恶意意图的操作,例如在同一个 slot 提出多个区块,或在同一个 slot 证明多个区块,这些是「可罚没」的行为,可导致验证器在从网络中移除之前燃烧一定数量的 ETH(最多为 0.5 ETH),这需要 36 天。被罚没的验证器的 ETH 在退出期内会缓慢流失,但在第 18 天,当有更多的验证器同时被罚没时,它们会受到更大的「相关性惩罚」。因此,信标链的激励结构是奖励诚实行为者,并惩罚不良行为者。

分叉选择

分叉选择算法由每个验证器运行,其作用是识别区块链的头部。在完全诚实的验证器及零网络延迟的理想条件下,分叉选择算法实际上是不必要的,因为此时区块链的顶端只有一个区块。然而,在现实当中,一些客户端会比其他客户端更晚接收区块,从而创建了区块链头部的多个版本,并且可能存在一定比例的行为不端的验证器,这些验证器可能在同一个 slot 提议或投票多个区块。这意味着必须要有某种算法来从多个选项中挑选出真正的区块链头部。

稍微提一下,信标链也会以固定的间隔使区块链固定不变,这被称为「最终性」(finality)。该过程通过将每个 epoch 中的第一个 slot 视为「检查点」来工作。如果一个检查点从持有存款合约中至少 2/3 总质押 ETH 的验证器那里收集证明(投票),那么它被称为「justified」的。一旦该检查点在其之上有另一个检查点,它就成为「最终」检查点。然后,分叉选择算法只考虑区块链中不合理部分的区块。证明并最终确定区块链的算法称为「Casper FFG」,而分叉选择算法本身被称为 LMD-GHOST(代表「最新消息驱动的最贪婪、最重的观测子树」),这是一种用行话表达的方式,即正确的区块链是累积了最多证明(GHOST)的区块链,并且如果从同一验证器接收到多条消息,则只有最后一条消息才算(LMD)。每个验证器使用此规则评估每个区块,并将最重的区块添加到其规范链中。

每个 epoch 时期,验证器需要签署一份证明,该证明包含两条关键信息:「LMD 投票」和 「FFG 投票」。LMD 投票是验证器认为区块链头部的区块的根,FFG 投票包含目标检查点和源检查点的区块哈希以及 epoch,其中源检查点是链已经知道的最近正当检查点,而目标检查点是下一个要证明的检查点。

因此,信标链的共识算法是 LMD-GHOST 和 Casper FFG 的组合,有时我们也将其称为 Gasper。简单了解了这个背景知识后,我们可以继续研究这个系统可能受到的一些攻击方式。

第 0 层攻击

首先,没有积极参与以太坊(通过运行客户端软件)的个人,可选择针对社交层(第 0 层)来攻击以太坊网络。尽管这些攻击从未真正直接影响任何以太坊软件的执行,但它们会给以太坊带来风险。第 0 层是构建以太坊的基础,因此它代表了一个潜在的攻击面,其后果会波及堆栈的其余部分。以下是我想到的一些例子:

  • 跨多个平台发起并持续数月或数年的重大错误信息宣传活动,可能会削弱社区对以太坊路线图、开发团队的信任。这可能会减少愿意参与网络安全的个人数量,降低去中心化和加密经济安全性。

  • 针对开发者社区的定向攻击或恐吓,这可能导致开发人员自愿退出,并减缓以太坊的发展,同时更广泛地打击士气。

  • 过度热情的监管也可以被视为一种第 0 层攻击,因为它可能会迅速抑制参与和采用。

  • 知识渊博但恶意的参与者渗透到开发者社区,其目的是通过减少讨论、延迟关键决策、创建垃圾帖或转移注意力提案等来减缓进度。

  • 故意煽动以太坊社区的不满情绪,目的是制造足够的动荡以造成永久性分裂。

  • 向以太坊生态系统中的关键参与者行贿以影响决策。

在很多情况下,发动 L0 攻击所需的资金或技术知识很少,这使得对社交层的攻击尤其危险。真正需要的只是时间和恶意的意图,而不是稀缺的资源。思考第 0 层攻击如何成为一次加密经济攻击的倍增器也很有趣。例如,如果审查或最终性逆转是由恶意的多数质押者实现的,那么破坏社交层可能会使带外(out-of-band)社区协调响应更加困难。

防御第 0 层攻击可能并不简单,但可以建立一些基本原则。一是保持以太坊公共信息的整体高信噪比,以太坊由社区的诚实成员通过博客、discord 服务器、带注释的规范、书籍、播客以及 YouTube 创建和传播。Ethereum.org 就是一个很好的例子,特别是他们正在迅速将其广泛的文档和解释文章翻译成多种语言。用高质量的信息和 meme 充斥一个空间,是防止错误信息的有效防御措施(信息缺口是脆弱的)。以太坊社区擅长于此,但长期的第 0 层安全需要持续致力于创建和传播高质量信息。

另一个针对社交层攻击的重要防御措施,是明确的使命声明和治理协议。以太坊将自己定位为智能合约 L1 中的去中心化和安全冠军,同时也高度重视可扩展性和可持续性。无论以太坊社区出现什么分歧,这些核心原则都会受到最低限度的影响。根据这些核心原则评估叙述,并通过 EIP(以太坊改进提案)过程中的连续几轮审查,可能有助于社区区分出好人和坏人,并限制恶意行为者影响以太坊未来方向的范围。

最后,以太坊社区保持开放并欢迎所有参与者,这一点至关重要。一个有看门人、精英主义和排他性的社区,尤其容易受到社交攻击,因为这很容易构建「我们和他们」的叙事。另一方面,一个开放和包容的社区是通过开放的讨论更有效地消除错误信息的社区。部落主义和有毒的最大主义(maximalism)伤害了社区,这会侵蚀第 0 层的安全。以太坊通常有一个非常开放的社区,它欢迎新的参与者,但随着社区规模的扩大,这可能会变得越来越难以维持。对网络安全有既得利益的以太坊社区成员,应将其在线行为和在现实世界中的行为视为对以太坊第 0 层安全的直接贡献,因为正如我们将在本文后面讨论的,强大的社交层是抵御协议攻击的最后一道防线。

攻击者的奖励

第 0 层攻击可能旨在破坏公众对以太坊的信任、使 ETH 贬值、降低以太坊的采用率,并使以太坊容易被其他竞争链超越,或者是削弱以太坊社区,使带外协调更加困难。然而,攻击以太坊网络本身所能获得的好处并不明显。

一个常见的误解是,成功的攻击允许攻击者生成新的 ETH,或从任意账户中提取 ETH。这两种说法都是不可信的,因为添加到区块链的所有交易都由网络上的所有执行客户端执行。它们必须满足有效性的基本条件(例如,交易由发送方的私钥签名,发送方有足够的余额等),否则它们会简单地还原。攻击者实际上可能会针对几种结果发起攻击:重组(reorgs)、双重最终性(double finality)或最终性延迟(finality delay)。

「重组」是对区块链头部区块的重新排列。在攻击中,这旨在确保包含或排除某些区块,即使它们不在诚实的网络中。这可能允许攻击者进行「双花」,例如,将他们的 ETH 发送到交易所并将其兑现成法定货币,然后重组以太坊区块链以删除这笔交易,这样他们最终能够拿回 ETH 并获得法币。或者,重组可能允许老练的攻击者通过抢先交易(front-running)或尾随式交易(back-running)从其他人的交易中提取价值(MEV),或者重组可能会持续阻止某人或某些组织的交易被包含在规范链中,从而有效地从以太坊网络中对其进行审查。

最极端的重组形式是「最终性反转」(finality reversion),它可删除或替换先前已经确定的区块。这种情况只有在至少 1/3 质押的 ETH 被销毁时才有可能发生,这种保证被称为「经济最终性」,稍后我们会详细介绍。

双重最终性(Double finality)攻击的可能性很低,但这种情况会很严重,发生时两个分叉能够同时确定区块,从而造成永久性的区块链分裂。这在理论上是可能的,只要攻击者能够掌握 34% 及以上总质押的 ETH,并愿意冒险失去它们。然后社区将被迫进行链外协调,并就遵循哪条链达成共识。稍后我们将详细探讨这些类型的社会协调防御。

最终性延迟(finality delay)攻击会阻止网络达到 Casper-FFG 确定链的必要条件。这将对以太坊的应用层造成极大的破坏,因为在以太坊之上运行的许多应用都依赖于快速最终性来运行。如果对区块链的最终确定性没有高度信心,就很难相信建立在它之上的金融应用。最终性延迟(finality delay)攻击的目的,可能只是为了破坏以太坊,而不是直接获利,除非攻击者部署了一些战略空头头寸。

懒惰和发送相互矛盾的消息(Laziness and Equivocation)

任何人都可以运行以太坊的客户端软件,即使没有运行验证器。人们这样做是因为它提供了区块链的本地副本,可用于非常快速地验证数据,并使交易能够私下提交给以太坊网络,而无需通过中心化的第三方(例如 Infura 或 Quicknode)。然而,不同时运行验证器的节点运营商,就无法参与区块生产或验证。这意味着他们根本不会影响到网络安全。非验证节点运营商攻击信标链的可能性可以忽略不计,除非他们也发起不相关的第 0 层攻击。

要向共识客户端添加一个验证器,用户需要在存款合约中质押 32 ETH。通过一个活跃的验证器,用户开始通过提议和证明新区块来积极参与以太坊的网络安全。在承担这些额外责任的同时,用户以 ETH 的形式获得回报,但这也给他们带来了报复行为的新机会。验证者现在有了发言权,他们可以用于影响区块链的未来内容,他们可以诚实地工作以增加他们的 ETH 储备,或者他们可以冒着风险,尝试操纵这个过程以实现自己的利益。发起攻击的一种方法是累积大比例的质押权益,然后用它来击败诚实的验证者。攻击者控制的质押权益比例越大,他们的投票权也就越大,尤其是在我们稍后将探讨的某些经济里程碑上。然而,大多数攻击者将无法积累足够的 ETH 来实现这种攻击方式,因此他们不得不使用微妙的技术来操纵诚实的大多数人以某种方式行事。

从根本上讲,所有针对信标链的小规模质押攻击(small-stake attacks)都是两种类型的验证器错误行为的细微变化:活动不足(未能证明 / 提议或延迟执行)或过度活动(在一个 slot 时间段中提议 / 证明次数过多)。在最普通的形式中,这些行为很容易由分叉选择算法和激励层处理,但有一些聪明的方法可以让这些算法对攻击者有利。目前已经发现了几种这样的技术,主要是仔细协调其消息的时间和传播,以控制整个验证器集的不同子集如何查看区块链的状态,从而控制它们的行为方式。下一节将描述低质押(low-stake)攻击者攻击网络的一些方式,以及如何抵御这些攻击。

小型质押者的攻击

短程重组(Short range re-orgs)

有几篇论文解释了针对信标链的攻击,这些攻击仅使用了一小部分质押的 ETH 来实现重组或最终性延迟攻击。这些攻击通常依赖于攻击者向其他验证器隐瞒一些信息,然后以某种微妙的方式或在某个适当的时候发布它。这些攻击通常旨在从规范链中替换一些诚实的区块。当攻击开始时,这些诚实的区块尚未被创建,这种攻击被称为事前重组(ex ante reorg),而不是事后重组(在这种重组中,攻击者回顾性地从规范链中删除已经验证的区块)。在 PoS 以太坊中,如果不控制 2/3 质押的 ETH(按当前价格计算约为 180 亿美元),事后重组实际上是不可能的。如果攻击者控制的质押权益百分比少于 66%,则攻击者完成事后重组的机会非常低(即使攻击者控制了 65% 的质押权益,他们的成功机会也小于 0.05%)。

万字详解以太坊合并后可能面临的PoS攻击及防御措施

图:由控制 2/3 质押权益的攻击者执行的事后重组攻击。他们忽略了在 slot N 1 中提出的诚实区块 B,而是投票支持区块 N 作为区块链的头部。然后他们投票给 slot N 2 中的区块 C,同时,因为分叉选择规则看到来自前一个而不是当前 slot 的证明,他们在 slot N 2 中投票给区块 B,而不诚实的验证者投票给区块 C。当 slot N 3 到达时,两个分叉都有 66% 的权重,然后由竞争区块哈希的字典顺序决定。如果这对攻击者有利,他们就成功地从区块链中删除了区块 B。

另一方面,可以很好地防止事后重组的相同机制,可以被老练的攻击者在非常特定和不太可能的网络条件下用来创建事前重组。例如,这篇论文展示了攻击验证者如何为特定 slot n 1 创建和证明区块 (B),但避免将其传播到网络上的其他节点。相反,他们会扣留该已证明的区块,直到下一个 slot n 2。诚实的验证者为 slot n 2 提出一个区块(C)。几乎同时,攻击者可以释放他们扣留的区块(B)及其保留的证明,并证明区块(B)是区块链的头部,他们对 slot n 2 的投票,有效地否认了诚实区块(C)的存在。当诚实区块(D)被释放时,分叉选择算法看到区块(D)建立在区块(B)之上,要比建立在区块(C)之上的区块(D)更重。因此,攻击者成功地使用 1 区块事前重组将 slot n 2 中的诚实区块(C)从规范链中移除。掌握 34% 质押权益的攻击者有很好的机会在这次攻击中获胜,因为他们的投票给了攻击者首选的分叉 68% 的权重,而诚实分叉的权重为 66%,如此处所述。这意味着他们不需要依靠操纵诚实的验证器来与他们一起投票。不过,理论上,这种攻击可以用更少的质押比例来尝试。Neuder 等人 描述了在 30% 质押比例下的事前重组攻击方式,但后来证明,在控制 2% 比例的质押权益下,这种事前重组攻击也是可行的。

万字详解以太坊合并后可能面临的PoS攻击及防御措施

上述单区块重组攻击的概念图(改编自来源)

一个成功的重组攻击者无法改变历史,但他们可以不诚实地改变未来。他们不需要控制大多数质押的 ETH 就可以做到这一点,尽管他们成功的机会会随着控制质押比例的增加而增加。这种重组攻击可允许他们实现双花或通过 front-running 大额交易来提取 MEV。这种攻击还可以扩展到多个区块,但成功的可能性会随着重组长度的增加而降低。

万字详解以太坊合并后可能面临的PoS攻击及防御措施

弹跳攻击和平衡攻击(Bouncing and Balancing)

更复杂的攻击可以将诚实的验证器集,拆分为对区块链头部有着不同看法的离散小组,这被称为平衡攻击(balancing attack)。在这种情况下,攻击者等待机会提出一个区块,当它到达时,他们会在同一个 slot 中提出两个区块。他们将一个区块发送给诚实验证器集的一半,将另一个区块发送给另一半。分叉选择算法将检测到这种模棱两可的情况,并且区块提议者会被罚没并从网络中弹出,但这两个区块仍然存在,并且将有大约一半的验证器集证明每个分叉。在花费单个验证器罚没成本的情况下,攻击者成功地将区块链一分为二。与此同时,其余的恶意验证器扣留了他们的证明。然后,通过在执行分叉选择算法时有选择地将有利于一个或另一个分叉的证明发布给足够的验证器,他们能够让网络看到任何一个具有最多累积证明的分叉。这可以无限期地继续下去,攻击验证者在两个分叉上保持验证器的平均分配。由于两个分叉都无法吸引 2/3 的绝对多数,所以信标链无法最终确定。攻击验证者控制的质押权益比例越大,在任何给定 epoch 时间段进行攻击的可能性就越大,因为他们越有可能选择验证器在每个 slot 中提议一个区块。即使只控制 1% 的质押权益,发动平衡攻击的机会平均每 100 个 epoch 时期就会出现一次,这并不需要等待太久。

万字详解以太坊合并后可能面临的PoS攻击及防御措施

一种名为弹跳攻击(bouncing attack)的类似攻击方式,也只需要控制一小部分质押权益。在这种情况下,攻击的验证器再次拒绝投票。这一次,他们没有发布投票来保持两个分叉之间的平均分配,而是在适当的时候使用他们的投票来证明在分叉 A 和分叉 B 之间交替的检查点的合理性。两个分叉之间的这种翻转,可停止最终确定性。

弹跳攻击和平衡攻击的防御措施

弹跳攻击和平衡攻击都依赖于攻击验证器将其证明延迟到某个适当的时刻,以便对网络产生巨大的影响。因此,只有在不太可能的网络同步条件下,并且攻击者通过紧密协调的共谋验证器对消息时间进行非常精细的控制情况下,这种攻击才是可行的。尽管如此,仍然有必要关闭这个攻击向量。为了防止迟到的消息影响共识,与及时收到的消息相比,迟收到的消息的权重可以减少。这被称为提议者权重提升(proposer-weight boosting)方案。

对于弹跳攻击,修复方法是更新分叉选择算法,以便最新的合理检查点只能在每个 epoch 的前 1/3 slot 期间切换到替代链的检查点。这种情况可以防止攻击者保存投票,以便以后部署。针对这些延迟投票攻击的另一种防御措施是,与每个 slot 迟到的投票相比,为及时到达的投票分配更大的权重。

结合起来,这些措施创造了一个场景,在这个场景中,一个诚实的区块提议者在 slot 开始后非常迅速地发出它们的区块,然后大约 1/3 slot(4 秒)的时间段,这个新区块可能会导致分叉选择算法切换到另一条链。在同一截止时间之后,与较早到达的证明相比,来自较慢验证器的证明的权重会较低。这非常有利于快速提议者和验证器确定区块链头部,并大大降低弹跳攻击和平衡攻击的可能性。从本质上讲,这些防御措施可以防止基于大型网络异步性的攻击,即使在上述情况下,也不需要对消息发布进行精细控制。因此,在很大程度上,这些类型的攻击风险,已通过对分叉选择算法的修改得到了缓解,这些修改有利于快速活动并惩罚延迟。

值得一提的是,提议者权重提升(proposer-weight boosting)方案只能抵御「廉价重组」攻击,即攻击者以少量质押权益进行的重组攻击。事实上,在另一种事前重组攻击中,提议者权重提升方案本身可能被更大的质押者玩弄。这篇文章的作者描述了控制 7% 质押权益的攻击者如何战略性地部署他们的投票,以欺骗诚实的验证器在他们的分叉上构建,重组掉一个诚实的区块。投票给对手分叉的诚实验证器会及时投票,以便攻击者从提议者权重提升方案中受益。同样,这种攻击是在假设理想的延迟条件下设计的,而在实际情况下很难满足这种条件。总的来说,攻击者控制的质押权益比例越大,其成功攻击的几率就越大。而更大的质押权益,也意味着更多的风险资本以及更强的经济抑制力。

高级平衡攻击

上面描述的弹跳攻击和平衡攻击依赖于恶意验证器对网络上其他验证器何时收到他们的消息进行非常精细的控制,而这类攻击已通过提议者权重提升(proposer-weight boosting)方案有效地缓解了。

但是,研究者还描述了一种额外的攻击,它不依赖于对网络延迟的细粒度控制。在这种情况下,攻击者需要在两个后续 slot 中使用一个提议的验证器(在任何两个 slot 中发生这种情况的概率,都会随着攻击者控制的验证器的的增多而增加)。其中一个对抗性区块提议者在 slot n 中提议一个区块,然后第二个对抗性区块提议者在 slot n 1 中提议一个冲突区块,从而创建一个分叉。由于没有一个区块提议者模棱两可(equivocated),因此不会发生罚没的情况。在这个例子中,我们假设分叉 A 会更有利。攻击者可以知道这一点,攻击者还可以估计网络上一半验证器提交证明所需的时间……来自 slot n 的保留投票可以在大约一半验证器投票的时间点被释放。这些是来自 slot n 的支持分叉 B 的证明。因此,一半的验证器组投票支持分叉 A,因为它们不知道分叉 B 上的额外证明,而另一半投票支持权重更重的分叉 B。在 n 1 中扣留的敌对投票可用于弥补分叉 B 上因发布扣留证明的时间不准确而造成的任何不足。

这种平衡攻击是针对分叉选择算法的理想版本描述的,它比以太坊共识客户端中实际实现的分叉选择算法具有更可预测的证明时间,而在真正的信标链上执行这种攻击,则要困难得多。将攻击者的节点分布在网络拓扑中可以帮助攻击者在一定程度上克服这一问题,因为他们的消息在整个网络中传播的速度要快于来自一个拓扑位置的消息。

还有人提出了一种专门针对 LMD 规则的平衡攻击,尽管有了提议者权重提升(proposer-weight boosting)方案,这种攻击仍被认为是可行的。攻击者通过模糊他们的区块提议,并将每个区块传播到大约一半的网络来建立两条竞争链,从而在分叉之间建立近似平衡。然后,相互勾结的验证器会模棱两可地投票,以使一半的网络首先收到它们对分叉 A 的投票,而另一半网络首先收到它们对分叉 B 的投票。由于 LMD 规则丢弃了第二个证明并且只为每个验证者保留第一个证明,因此一半的网络只会看到 A 的投票而 B 没有投票,另一半网络会看到 B 的投票而 A 没有投票。文章的作者描述了 LMD 规则赋予了攻击对手「非凡的力量」来发起平衡攻击。

这种 LMD 攻击向量,已通过更新分叉选择算法关闭了,以便它完全从分叉选择考虑中丢弃模棱两可的验证器。模棱两可的验证器也可以通过分叉选择算法降低其未来影响。这可以防止上述平衡攻击,同时还可以保持对雪崩攻击(avalanche attacks)的弹性。

雪崩攻击(avalanche attacks)

2022 年 3 月的一篇论文描述了另一种称为雪崩攻击(avalanche attacks)的攻击类型。这篇论文的作者认为,提议者权重提升(proposer-weight boosting)方案无法防止雪崩攻击的某些变体。然而,论文作者也只展示了对以太坊分叉选择算法的高度理想化版本的攻击(他们使用了没有 LMD 的 GHOST)。

要发动一次雪崩攻击,攻击者需要控制多个连续的区块提议者。在每个区块提议 slot 中,攻击者扣留他们的区块,收集它们直到诚实链达到与扣留区块相等的 subtree 子树权重。然后,攻击者释放被扣留的区块,使其最大程度地造成混乱。这意味着,例如,对于 6 个扣留区块,第一个诚实区块 n 与敌对区块 n 竞争创建一个分叉,然后所有 5 个剩余的敌对区块都在 n 1 处与诚实区块竞争。这意味着建立敌对区块 n 和 n 1 的分叉现在吸引了诚实的证明,因为此时诚实链的权重等于敌对链的权重。现在可以对剩余的扣留区块重复此操作,从而允许攻击者阻止诚实的验证器跟随链的诚实头部,直到攻击者模棱两可的区块用完为止。如果攻击者在攻击过程中有更多机会提出区块,他们可以使用这些区块来扩展攻击,这样,越多的验证器参与共谋攻击,攻击持续的时间就越长,并且可以将更多诚实的区块从规范链中移出。

而 LMD-GHOST 分叉选择算法的 LMD 部分减轻了雪崩攻击,LMD 的意思是「最后一条消息驱动」,它指的是每个验证器保存的一个表格,其中包含从其他验证器收到的最新消息。只有当新消息来自比特定验证器表中已存在的 slot 更晚的 slot 时,该字段才会更新。在实践中,这意味着在每个 slot 中,接收到的第一条消息就是它接受的消息,任何附加消息都可以忽略。换句话说,共识客户端使用来自每个验证器最先到达的消息,并且相互矛盾的消息会被简单地丢弃,以防止雪崩攻击。

最终性延迟

首次描述低成本单区块重组攻击的同一篇论文,还描述了一种最终性延迟(也称为「活性失效」)攻击,该攻击依赖于攻击者是 epoch 边界区块的区块提议者。这是至关重要的,因为这些 epoch 边界区块成为了 Casper FFG 用于最终确定链的各个部分的检查点。攻击者简单地扣留他们的区块,直到有足够多的诚实验证器使用其 FFG 投票支持前一个 epoch 边界区块作为当前最终性目标。然后,他们释放扣留的区块,并证明自己的区块,而其余的诚实验证器也会这样做,这样会创建具有不同目标检查点的分叉。如果他们的时间恰到好处,他们将阻止最终性,因为不会有 2/3 的绝对多数证明任何一个分叉。攻击者控制的质押权益比例越小,则时间需要越精确,因为攻击者直接控制的证明越少,攻击者控制提出给定 epoch 边界区块的验证器的几率就越低。

关于长程攻击(long range attacks)的说明

还有一类特定于权益证明(PoS)区块链的攻击,其涉及参与创始区块的验证器在诚实的区块链旁维护一个单独的区块链分叉,最终说服诚实的验证器在很久以后的某个适当时间切换到它。这种类型的攻击在信标链上是不可能的,因为「 finality gadget」(直译为确定性小工具)可确保所有验证器定期就诚实链的状态(「检查点」)达成一致。这种简单的机制可以消除对长程攻击者的担忧,因为以太坊客户端根本不会重组最终确定的区块。加入网络的新节点通过找到一个受信任的最近状态哈希(称为弱主观性检查点)并将其用作伪创始区块来构建。这将为进入网络的新节点创建一个「信任网关」,然后它才能开始为自己验证信息。然而,从对等方或区块浏览器或其他地方收集检查点所需的信任,并没有增加隐含在客户端开发团队中的信任,因此主观性是「弱的」。因为根据定义,检查点由网络上的所有节点共享,所以不诚实的检查点是共识失败的症状,那此时,无论如何,带外社会协调必须接管以拯救诚实的验证者。

这一切都表明,要以少量的质押权益成功攻击信标链是非常困难的。这里描述的可行攻击需要一个理想的分叉选择算法,以及可能性极低的网络条件,或者攻击向量已通过客户端软件相对较小的补丁关闭。当然,我们并不能排除零日漏洞在野外存在的可能性,但这确实证明了少数质押权益攻击者要成功实现攻击所需的极高的技术能力,对共识机制的了解以及运气。从攻击者的角度来看,他们最好的选择可能是尽可能多地积累质押的 ETH。

拒绝服务攻击(Denial of Service)

以太坊的 PoS 机制从所有验证器集中选择一个验证器,以作为每个 slot 中的区块提议者。这可以使用一个公共函数进行计算,并且对手有可能在他们的区块提议之前稍微提前识别下一个区块提议者。然后,攻击者可以向区块提议者发起垃圾信息,以防止他们与对等方交换信息。对于网络的其余部分,区块提议者似乎处于离线状态,并且 slot 将简单地变空。这可能是对特定验证者的一种审查形式,以阻止他们向区块链添加信息。攻击者的成本取决于验证者的带宽,这意味着对家庭质押者发起拒绝服务攻击,要比使用工业级硬件和互联网连接的专业人员要便宜得多,这使得业余爱好者更容易受到审查。这个问题有一些变通方法,但这些方案也有利于专业验证者,而不是家庭质押者。例如,运行多个节点并将区块构建与网络通信分开可以提供额外的保护层,因为节点身份和验证者身份是解耦的。节点运行者可能会在短时间内切换身份或重新获取身份,以避免拒绝服务攻击。从长远来看,实施单一秘密 leader 选举(SSLE)或非单一秘密 leader 选举方案可以更有效地缓解验证者审查问题,因为只有区块提议者才能知道他们已经被选中,并且事先不知道他们的选择。所有验证器都将对秘密的承诺提交到一个反复洗牌的池子当中。然后一个随机承诺会被公开选出,只有被选中的验证器才能知道,因为连接已经被混淆了。这项工作尚未实施,但它是一个活跃的研发领域。

验证者控制的质押权益比例大于或等于 33%

将质押 ETH 的控制权分散给更多人,要比集中在少数人的手中更安全。这是因为一个人控制的质押权益越多,其对以太坊共识的影响就越大。当攻击者掌握了足够的质押权益时,本文中提到的所有攻击都更有可能成功,并且可能选择更多的验证器在每个 slot 中提议区块。因此,恶意验证者的目标可能是控制尽可能多的质押 ETH。

33% 的质押 ETH 是攻击者的一个基准,如果其控制的 ETH 超过了这个数量,他们就有能力阻止信标链最终确定,而无需精细控制其他验证器的操作。它们可以简单地一起消失。这是因为要最终确定信标链,必须有 2/3 的质押 ETH 来证明检查点对(pairs of checkpoints)。如果 1/3 或更多的质押 ETH 被恶意证明或未能证明,那么 2/3 的绝对多数就不可能存在。对此的防御措施是信标链的消极惩罚(inactivity leak)机制,这是一种紧急安全措施,它会在信标链 4 个 epoch 时期未能最终确定后触发。消极惩罚(inactivity leak)标识了那些未能证明或证明与大多数人相反的验证器。这些非证明验证器拥有的质押 ETH 会逐渐流失,直到最终

标签:pos 以太坊 以太坊合并

  • 以太坊合并倒计时:以太坊合并引发的“紧张不安”

    以太坊合并倒计时:以太坊合并引发的“紧张不安”

    T:

    伴随着以太坊PoS更新邻近,原有PoW挖矿并不甘被以太坊慈善基金会抛下,已经在积极主动提前准备保存PoW链,对以太坊开展硬分叉。据OKLink多链电脑浏览器“以太坊合并倒数计时”网页页面表明,现阶段区块高度为15530564,全新出块来自H...

  • 以太坊合并后:eth以太坊的pow和pos优势和不足

    以太坊合并后:eth以太坊的pow和pos优势和不足

    T:

    以太坊合并之前,认为以太坊合并是利好的人已提前购入,合并成功后,没有新的利好预期支撑,因此这部分人没有形成新的购买力。还有一部分卖盘来自矿工,PoW时代,矿工只需要卖掉部分以太坊交电费,PoW 转 PoS 后触及了矿工的核心利益,引来矿工的...

  • ETH以太坊合并倒计时 POW和POS概念详解

    ETH以太坊合并倒计时 POW和POS概念详解

    T:

    以太坊即将合并,完成从工作量证明(Proof-of-Work)到权益证明(Proof-of-Stake)的协议升级。合并预计将在周三晚上/周四凌晨进行。01 POW(Proof-of-work,工作量证明)工作量证明最早是一个经济学名词,指...

本站分享的区块链、Web3.0元宇宙、NFT、数字藏品最新消息等相关数藏知识快讯NFR资讯新闻,与金色财经非小号巴比特星球前线Btc中国官网无关,本站资讯观点不作为投资依据,市场有风险,投资需谨慎!不提供社区论坛BBS微博微信交流群等相关币圈信息发布!
声明:本站内容来源于网络,如有侵权请即时告知,我们将即时删除!