译者注:

关于行将到来的以太坊兼并,作者 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 层是构建以太坊的根底,因而它代表了一个潜在的进犯面,其后果会波及仓库的其他部分。以下是我想到的一些例子:

  1. 跨多个渠道主张并继续数月或数年的严重错误信息宣扬活动,或许会削弱社区对以太坊道路图、开发团队的信赖。这或许会削减乐意参加网络安全的个人数量,下降去中心化和加密经济安全性。

  2. 针对开发者社区的定向进犯或恐吓,这或许导致开发人员自愿退出,并减缓以太坊的发展,一同更广泛地冲击士气。

  3. 过度热心的监管也能够被视为一种第 0 层进犯,由于它或许会敏捷按捺参加和选用。

  4. 常识广博但歹意的参加者渗透到开发者社区,其意图是经过削减评论、推迟要害决策、创立废物帖或转移注意力提案等来减缓进展。

  5. 故意煽动以太坊社区的不满情绪,意图是制造满足的动乱以形成永久性割裂。

  6. 向以太坊生态系统中的要害参加者行贿以影响决策。

在许多状况下,主张 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 攻击及防御措施

上述单区块重组进犯的概念图(改编自 https://notes.ethereum.org/plgVdz-ORe-fGjK06 BZ_3 A#Fork-choice-by-block-slot-pair)

一个成功的重组进犯者无法改变前史,但他们能够不诚笃地改变未来。他们不需求操控大大都质押的 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 会逐步丢失,直到终究它们占总数的份额不到 1/3,这样区块链才干再次 finalize。

消沉赏罚(inactivity leak)机制的意图是让信标链再次完结终究确认,而进犯者也会失掉一部分质押的 ETH。假设没有可罚没的进犯,而且进犯验证器仅仅未能证明,它们的不活动分数被更新,这向网络的其他部分标明该验证器将在每个 epoch 时期遭到赏罚,直到它们的不活动分数返回为零。当消沉赏罚(inactivity leak)机制处于活动状况时,每个 epoch 的不活动验证器分数会添加 4,而活动验证器分数会削减 1。一旦消沉赏罚(inactivity leak)机制停用(而且信标链再次终究确认),一切活动验证器的不活动分数都会下降。关于不活泼时刻较长的验证器来说,这需求更长的时刻,由于它们有更多的不活泼分数要耗费。而继续的不活动状况,会更慢耗费不活泼分数。关于一个离线 100 个 epoch 的验证器,它的不活动分数将到达 400 左右,而赏罚巨细的核算公式为:

其间不活动分数误差(inactivity score bias)是在每个 epoch 时期添加验证器分数的数字,不活动赏罚商(inactivity penalty quotient)是将非证明验证器的余额削减到其初始值大约 60% 所用时刻的平方,设置的时刻大约为 37.5 天。这意味着进犯者经过未能证明来阻挠终究性的时刻越长,他们质押权益被焚烧的越多。Upgrading Ethereum‌ 展现了一个图表,该图表估量了一直处于脱机状况的验证器在短时刻(100 个 epoch,大约 13.5 小时)消沉赏罚期间和之后验证器余额的削减状况。在 135 个 epoch 时期之后,验证器的余额从 32 ETH 降至 31.996 ETH,损失了 0.004 ETH。而要让一个进犯者操控 33% 的 ETH 质押权益,他们有必要运转大约 144,000 个 验证器,每个验证器至少持有 32 ETH。这意味着他们推迟信标链终究确认性的进犯,将至少花费 0.004 x 144000 = 576 ETH。按当时市场价核算,这大约相当于 109 万美元。花掉近 100 万美元的本钱,将信标链的终究确认性推迟半响,这对信标链自身的长时刻影响很小。(译者注:此处修正了原文的数字

当然,更耐久的消沉赏罚要更加昂贵,事实上,赏罚的幅度会呈二次方的速度添加,直到信标链再次开端终究确认。进犯者进行终究性推迟进犯的确切本钱,取决于他们的初始余额、他们坚持离线的时刻以及从头取得终究性所需的时刻。但是,最重要的是,即便验证器没有被罚没, 33% 的验证器继续不活动也是极端昂贵的。

假设以太坊网络是异步的(即音讯发送和接纳之间存在推迟),操控 34% 总质押权益的进犯者或许会引发两层确认性(double finality)进犯。这是由于进犯者在被选为区块生产者时能够不置可否,然后与其把握的一切验证器进行两层投票。这发明了一种区块链分叉的状况,其间每个分叉都有 34% 质押的 ETH 投票支撑。每个分叉只需求 50% 的剩余验证器投票支撑两个分叉,然后得到绝对大都的支撑,在这种状况下,两条链都能够终究确认(由于 34% 的进犯者验证器 + 剩余 66% 的一半 = 每个分叉 67%)。每个比赛区块都有必要由大约 50% 的诚笃验证器接纳,因而只要当进犯者能够在必定程度上操控音讯在网络上传达的时刻时,这种进犯才可行,这样他们才干将一半诚笃验证器推到每条链上。这也是为什么这种进犯需求网络异步的原因——假如一切节点都当即收到音讯,它们将当即知道这两个区块,并经过回绝较早接纳的区块来处理不置可否的问题。进犯者有必要毁掉其悉数质押的权益(今日 1400 万质押 ETH 中的 34%)以完结这种两层确认性(double finality)进犯,由于他们 34% 的验证器将一同进行两层投票,而这是一种具有最大相关性赏罚的可罚没进犯。防护这种进犯的价值,仅仅毁掉 34% 总质押 ETH 的巨大本钱。

而从这种进犯中康复过来,需求以太坊社区进行带外(out-of-band)和谐并赞同遵循其间一个分叉,而疏忽另一个分叉。与这种社会支撑相关的杂乱性,咱们将在后面评论。

进犯者操控的质押权益份额大约为 50%

理论上,在一个歹意验证者操控的质押 ETH 份额到达 50% 的状况下,他能够将以太坊区块链割裂成两个巨细相等的分叉。与前面描绘的平衡进犯相似,进犯者可经过为同一个 slot 提出两个区块来仅运用他们的一个验证器。然后,进犯者不需求经过细心传输音讯来操纵一半的网络,而只需运用其悉数 50% 的质押权益与诚笃的验证器集进行相反的投票,然后保持两个分叉并防止终究确认性。在四个 epoch 时期之后,两个分叉上的消沉赏罚(inactivity leak)机制将激活,由于每个分叉都会看到其一半的验证器无法证明。每个分叉都会走漏验证器集的另一半质押权益,终究导致两条链以代表 2/3 绝对大都的不同验证器完结。在这一点上,仅有的挑选便是依靠社区康复,稍后咱们会说到。但是,考虑到诚笃验证器数量、网络推迟等改变,一组敌对的验证者好像不太或许一直精确地操控总质押权益的 50% 份额,但也许有一种办法,进犯者能够使用略高于 50% 的质押权益,动态调整其在每个 slot 中的投票份额,以坚持两个分叉之间的完美平衡。尽管成功进犯的危险,无疑会跟着进犯者把握的质押 ETH 份额的巨细添加而添加,但 与 50% 的质押权益相关的进犯向量,好像不太或许被成功使用,主张此类进犯的巨大本钱以及较低的成功率,对理性的进犯者而言好像是一个很强的按捺要素。

而当进犯者操控的质押权益占到 51% 以上,则其能够操控分叉挑选算法。在这种状况下,进犯者将能够以大都投票作证,让他们有满足的操控权来进行短期重组,而无需诈骗诚笃的客户端。操控 51% 的质押权益不答应进犯者改变前史,但他们有才能经过将大都投票运用于对其有利的分叉,或将区块重组来影响未来。诚笃的验证器会仿效,由于它们的分叉挑选算法也会将进犯者喜爱的链视为最重链,因而该进犯链能够终究确认。这使进犯者能够检查某些买卖,进行短程重组,并经过从头排序对其有利的区块来提取最大 MEV。与作业量证明(PoW)链相同,51% 进犯也是十分有问题的。针对该问题的防护手段便是大都质押权益的巨大本钱(现在略低于 190 亿美元),进犯者会面临巨大的危险,由于交际层或许会介入,并选用诚笃的少量派分叉,然后使进犯者的质押权益大幅贬值。

进犯者操控的质押权益份额大于或等于 66%

操控 66% 或更多份额质押 ETH 的进犯者能够确认其首选链,而无需强制任何诚笃的验证器。进犯者能够简略地投票挑选他们喜爱的分叉,然后终究确认它,仅仅是由于他们能够不诚笃的绝对大都进行投票。作为绝对大都的质押者,进犯者将一直操控终究区块的内容,其具有花费、回滚和再次花费的权利,他还能检查某些买卖并随意重组区块链。经过购买额定的 ETH 以操控 66% 质押份额,而不是 51%,进犯者实践上购买了过后重组和终究性反转的才能(即改变曩昔并操控未来)。当时操控 66% ETH 质押权益的本钱约为 250 亿美元,这儿仅有的防护办法是退回到交际层来和谐选用代替分叉。鄙人一节中,咱们会更具体地评论这一点。

第 0 层:终究一道防地

当区块链的编码防护被损坏,而且进犯者能够终究确认不诚笃的区块链时会产生什么?

这种状况或许会以多种办法出现,最显着的是,当进犯者操控大都质押权益,而且能够简略地经过他们自己的投票或 51% 以上诚笃验证器的额定证明来完结。凭仗操控 34% 质押份额的 ETH,以及对网络上音讯传递的一些操控权,进犯者能够终究确认两个分叉。在某些状况下,重组链或许由于消沉赏罚(inactivity leak)机制而终究确认。假如进犯者成功将验证器集划分为两个分叉,则消沉赏罚(inactivity leak)机制将在两个分叉上激活,那么问题就变成了,诚笃或不诚笃的验证者会首要从头取得终究确认性吗?假如诚笃的验证者首要确认,那么诚笃链就会变成标准链,网络上一切客户端的分叉挑选算法都会承受该链终究确认的部分,然后以太坊又回到了诚笃玩家的操控之下。但假如不诚笃的验证者设法确认了区块链,那么以太坊社区将处于十分困难的地步。标准链在其前史中会包括不诚笃的部分,而诚笃的验证者终究会遭到赏罚。

第三种不太或许产生的状况是永久性的网络割裂,其间一个分叉上的验证器不知何故不知道对方分叉上的对应方。这会创立出两个独立确认的分叉链,每个分叉都会走漏另一组验证器的质押权益。然后这两条链永久不会从头组合在一同,由于它们将有不同的终究检查点。来自主导客户端的缝隙(而不是进犯),也或许导致损坏但终究确认的链。在以太坊的履行层方面,go-ethereum (Geth) 客户端占到了主导地位,超越 85% 的节点运转了该客户端。而在共同层方面,Prysm 客户端现在占到了主导地位,在继续的社区活动之后,其占比才下降到 50% 左右。而主导履行客户端或共同客户端中的缝隙,或许会中止终究确认性或导致终究确认的数据不正确。在 Kiln 测试网上,Prysm 中的一个缝隙‌影响了区块生产,这无关紧要,由于节点在四个不同的客户端中的份额大致相等,但假如是在主网,那么有超越 66% 的客户端会遇到相同的错误。因而,会有几条通往不诚笃的终究确认链的道路,尽管它们的概率十分低。它们都需求在质押 ETH 上投入巨资,或许对验证器集进行十分杂乱的操作,到现在,只要在抱负条件下才证明是可行的,而且这些进犯都经过软件更新得到了缓解。但是,咱们不能扫除万一的状况,那么,终究的解决计划便是依靠交际层(第 0 层)。

以太坊 PoS 共同机制的优势之一是,社区在面临进犯者时能够选用一系列防护策略。最小的呼应或许是强制将进犯者的验证器从网络中退出,而不会遭到任何额定的赏罚。而进犯者要从头进入网络,有必要参加一个激活队列,以确保验证器集逐步增加。例如,添加满足的验证器以使质押的 ETH 数量翻倍大约需求 200 天,在进犯者可测验另一次 51% 进犯之前,有用地为诚笃验证器带来了 200 天的应对时刻。当然,社区也能够决议更严厉地赏罚进犯者,比方取消曩昔的奖赏,或焚烧掉进犯者的部分(最高 100% 的)质押本钱。

不管对进犯者施加何种赏罚,社区还有必要共同决议不诚笃的区块链(尽管是编码到以太坊客户端中的分叉挑选算法所青睐的区块链)是否实践上无效,而且社区应该树立在诚笃的代替链上。诚笃的验证器能够集体赞同构建在社区认可的以太坊分叉之上,例如,在进犯开端之前或许现已分叉了标准链,或许强行移除了进犯者的验证器。诚笃的验证器将被鼓励在该分叉链上构建,而树立在以太坊上的买卖所和运用或许更喜爱在诚笃链上,并会跟从诚笃的验证器进入诚笃的区块链。但是,这将是一个极端紊乱的治理挑战。一些用户和验证者无疑会由于切换回诚笃链而输掉资金,进犯后验证的区块买卖或许会被回滚,然后打乱运用层,这彻底冲击了倾向于相信“代码便是法令”的用户。此外,一些用户,乃至或许是组织用户,他们会经过精明或机缘巧合的办法从不诚笃的区块链中获益,并或许反对分叉以维护他们的收益。有人呼吁社区对超越 51% 的质押进犯进行应对演练,以便能够快速履行合理的和谐缓解办法。Vitalik 在 ethresear.ch ‌以及 Twitter‌ 上都进行了一些有益的评论

治理现已是一个杂乱的论题,而关于以太坊社区来说,对不诚笃的终究链进行第 0 层紧急呼应无疑会是一个挑战,但在以太坊的前史上,这现已产生了两次‌。终究,即便咱们具有如此惊人的技能仓库,假如最坏的状况产生,社区的参加者也有必要和谐出一条出路。

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

总结

本文评论了以太坊兼并到权益证明(PoS)共同机制后,进犯者或许会选用的一些进犯信标链的办法。整体而言,进犯者操控的质押 ETH 份额越多,其进犯的成功时机就越大,由于他们的质押权益能够转化为投票权,以此用来影响未来区块的内容。而跟着进犯者操控的质押 ETH 份额增大,其能够完结的损坏力就越大:

  1. 33%:推迟终究性

  2. 34%:导致两层终究性

  3. 51%:检查,操控区块链的未来

  4. 66%:检查,操控区块链的曩昔与未来

还有一些更杂乱的进犯办法,它们只需求操控少量的质押 ETH,但这些进犯要求进犯者对音讯时刻的精密操控,以使诚笃的验证器集对他们有利。

总的来说,尽管存在这些潜在的进犯向量,但信标链的危险很低,乃至要低于作业量证明的等效链。这是由于进犯者为了用投票权压倒诚笃的验证器,需求将质押 ETH 的巨大本钱置于危险之中。内置的“胡萝卜加大棒”鼓励层能够防止大大都的歹意行为,特别是关于低质押的进犯者。更奇妙的弹跳进犯和平衡进犯也不太或许成功,由于实在的网络条件使得很难完结对特定验证器子集的音讯传递进行精密操控,而且客户端团队现已用简略的补丁快速封闭了已知的弹跳进犯、平衡进犯以及雪崩进犯向量。

而 34%、51% 或 66% 进犯或许需求社区和谐才干解决。尽管这对社区来说或许是苦楚的,但社区在带外呼应的才能对进犯者来说是一个强壮的按捺要素。以太坊交际层是终究的后盾,一次技能上成功的进犯仍或许被赞同选用诚笃分叉的社区所摧残。终究,进犯者和以太坊社区之间会有一场比赛,假如进行得满足快,用于 66% 进犯花费的 250 亿美元或许会被一次成功的交际和谐进犯所扼杀。

关于进犯者来说,有利可图的或许性会很低,这足以起到有用的威慑效果。这便是为什么保持一个价值观共同的凝聚力社会层,关于加密出资而言是如此重要的原因。

译者注:到现在,以太坊全网质押的以太币数量大约为 1400 万 ETH,而经过 Lido 质押的以太币数量现已到达了 428 万 ETH,这大约占到了 30.5 % 的 ETH质押份额,而这关于以太坊网络而言无疑是最大的安全隐患,因而以太坊开发者们也主张质押者将 ETH 涣散到不同的协议傍边,而面临 Tornado Cash 等级的检查,相似以太坊这样的 PoS 链或许都是相对软弱的,正如 vitalik 所言,交际层将作为终究的康复手段。

发表回复

您的电子邮箱地址不会被公开。