以太坊协议的未来 ❶:Merge
作者:维塔利克·布特林 2024年10月14日 原文链接
最初,大合并(The Merge)是指以太坊协议自推出以来最重要的事件:从工作量证明(proof of work, PoW)向权益证明(proof of stake, PoS)的迁移,它被期待已久且来之不易。如今,以太坊作为一个稳定运行的权益证明系统已经近两年,这个权益证明系统在稳定性、性能和避免中心化风险方面表现出色。然而,以太坊的权益证明系统仍有一些重要方面需要改进。
我2023年的路线图将其分为几个部分:改进技术特性(如稳定性、性能和小型验证者的可访问性)和解决中心化风险的经济变革。前者被归入"The Merge"之下,后者则是"The Scourge"的一部分。
特别感谢Justin Drake、Hsiao-wei Wang、@antonttc、Anders Elowsson和Francesco的反馈和审阅。
2023年版本路线图的The Merge本文将重点关注"Merge"部分:还可以如何改进权益证明的技术设计?实现这些改进的路径有哪些?
这并非以太坊的权益证明系统可以做的事情的详尽清单,而是正在积极考虑的想法列表。
说明
为 Vitalik 文章的全文翻译,为便于阅读增加少量标签式图示展示重要术语。
The Merge:关键目标
- 单时隙确定性(single slot finality, SSF)
- 在保持去中心化的同时,尽可能快速地实现交易确认和最终确定
- 提高独立质押者(solo stakers)的质押可行性
- 提高系统稳健性
- 提高以太坊抵御和恢复51%攻击的能力(包括最终性回滚、最终性阻塞和审查)
本章内容
- 单时隙确定性和质押民主化
- 单一秘密领导者选举
- 更快的交易确认
- 其他研究领域
单时隙确定性
单时隙确定性和质押民主化
我们要解决什么问题?
目前,区块最终确定需要2-3个 Epoch(纪元,约15分钟),且成为质押者需要32个ETH。这最初是为了平衡三个目标的妥协方案:
- 最大化可以参与质押的验证者数量(这直接意味着最小化质押所需的ETH数量)
- 最小化达到最终确定性的时间
- 最小化节点运行的开销,即下载、验证和重新广播所有其他验证者签名的成本
这三个目标是相互冲突的:为了实现经济最终性(economic finality,即攻击者需要销毁大量ETH才能回滚已最终确定的区块),每次达成最终确定性时都需要每个验证者签署两条消息。因此,如果有很多验证者,就面临两难选择:要么需要很长时间来处理所有签名,要么需要非常强大的节点来同时处理所有签名。
需要注意的是,这一切都基于以太坊的一个关键目标:确保即使成功的攻击也会给攻击者造成高昂的代价。这就是"经济最终性"的含义。如果我们没有这个目标,那么我们可以通过随机选择一个委员会来为每个时隙(slot)实现最终确定性来解决这个问题。不追求经济最终性的区块链,如Algorand,通常就是采用这种方式。
但这种方法的问题在于,如果攻击者确实控制了51%的验证者,那么他们可以用很低的成本进行攻击(比如回滚已最终确定的区块,或进行审查,或延迟最终确定性):只有他们在委员会中的节点会被检测出参与攻击并受到惩罚,无论是通过罚没机制(slashing)还是社会协调的软分叉。这意味着攻击者可以反复多次攻击链,每次攻击只损失一小部分质押。因此,如果我们想要实现经济最终性,基于委员会的简单方法是不可行的。乍看之下,我们确实需要完整的验证者集合参与。
理想情况下,我们希望在保持经济最终性的同时,在以下两个方面改进现状:
- 在一个时隙内完成区块最终确定(理想情况下,保持或甚至减少当前12秒的长度),而不是15分钟
- 允许验证者使用1个ETH进行质押(从32个ETH降低而来)
第一个目标基于两个考虑,这两个考虑都可以视为"使以太坊的性能与其他(更中心化的)注重性能的一层区块链一致"。
首先,它确保所有以太坊用户都能真正受益于通过最终确定性机制实现的更高级别的安全保证。目前,大多数用户都没有享受到这种好处,因为他们不愿意等待15分钟;而有了单时隙确定性(SSF),用户几乎可以在交易确认后立即看到交易最终确定。其次,如果用户和应用程序不必担心链回滚的可能性(除了相对罕见的不活跃泄漏情况),它将大大简化协议和周边基础设施。
第二个目标源于支持独立质押者的愿望。历次民意调查反复显示,阻碍更多人进行独立质押的主要因素是32 ETH的最低要求门槛。将最低要求降至1 ETH将解决这个问题,使得其他因素成为限制独立质押的主要考虑因素。
然而,这里存在一个挑战:更快的最终确定性和更民主化的质押这两个目标都与最小化系统开销的目标相冲突。事实上,这正是我们最初没有采用单时隙确定性的根本原因。不过,最近的研究为解决这个问题提供了一些可能的途径。
它是什么?工作原理是什么?
单时隙确定性(Single-slot finality,SSF)是使用一种在单个时隙内完成区块最终确认的共识算法。这本身并不是一个困难的目标:许多算法,例如Tendermint共识,已经以最优的特性实现了这一点。以太坊独特的一个期望特性(但Tendermint不支持)是不活跃泄漏机制,它允许区块链在超过1/3的验证者离线的情况下继续运行并最终恢复。幸运的是,这个需求已经得到解决:已有提案成功改进了Tendermint共识,以适应不活跃泄漏机制。
一个领先的单时隙确定性提案这个问题更具挑战性的部分是:如何在验证者数量庞大的情况下实现单时隙确定性,同时又不会导致节点运营者承担过高的开销。为此,有几个主要的解决方案:
- 方案1:暴力方式 - 致力于实现更高效的签名聚合协议,可能会使用ZK-SNARKs技术,这实际上将使我们能够在每个时隙内处理来自数百万验证者的签名。
方案2:Orbit committees - 这是一种新机制,允许随机选择的中等规模委员会负责确认链的最终性,同时保持我们所追求的攻击成本特性。
理解Orbit SSF的一种方式是,它在x=0(Algorand式委员会,无经济最终性)到x=1(当前以太坊模式)的范围内开创了一系列折衷方案。在这个范围的中间点,以太坊仍然保持着足够的经济最终性以确保极高的安全性,同时我们也获得了效率优势——只需要中等规模的随机验证者样本参与每个时隙。
Orbit充分利用验证者存款规模的现有差异性来获得最大可能的经济最终性,同时确保小规模验证者获得相应的参与角色。此外,Orbit采用缓慢的委员会轮换机制,确保相邻法定人数之间保持高度重叠,从而使其经济最终性在委员会切换的边界处依然有效。
方案3:双层质押 - 这是一种设置两类质押者的机制,一类需要较高的存款要求,另一类存款要求较低。只有高存款层的质押者直接参与提供经济最终性。关于低存款层应该具有什么样的权利和责任,目前有多种提案(例如参见彩虹质押研究)。常见的构想包括:
- 拥有委托质押给高层质押者的权利
- 由低层质押者的随机样本进行见证,并要求他们参与确认每个区块的最终性
- 拥有生成包含列表(inclusion lists)的权利
查看更多:现有研究资料链接
现有研究资料链接
- 迈向单时隙确定性的路径(2022):https://notes.ethereum.org/@vbuterin/single_slot_finality
- 以太坊单时隙确定性协议的具体提案(2023):https://eprint.iacr.org/2023/280
- Orbit SSF研究:https://ethresear.ch/t/orbit-ssf-solo-staking-friendly-validator-set-management-for-ssf/19928
- Orbit机制的深入分析:https://ethresear.ch/t/vorbit-ssf-with-circular-and-spiral-finality-validator-selection-and-distribution/20464
- Horn签名聚合协议(2022):https://ethresear.ch/t/horn-collecting-signatures-for-faster-finality/14219
- 大规模共识的签名合并方案(2023):https://ethresear.ch/t/signature-merging-for-large-scale-consensus/17386?u=asn
- Khovratovich等提出的签名聚合协议:https://hackmd.io/@7dpNYqjKQGeYC7wMlPxHtQ/BykM3ggu0#/
- 基于STARK的签名聚合研究(2022):https://hackmd.io/@vbuterin/stark_aggregation
- 彩虹质押方案:https://ethresear.ch/t/unbundling-staking-towards-rainbow-staking/18683
待解决的问题及权衡考虑
目前有四个主要可能的发展路径(也可以采用混合方案):
- 维持现状
- 暴力实现SSF
- 采用Orbit SSF
- 实施双层质押的SSF
(1) 维持现状意味着不进行任何改变,保持现有的质押机制。但这样会导致以太坊的安全性体验和质押去中心化程度无法达到理想水平。
(2) 暴力实现采用高科技手段解决问题。这需要在极短时间内(5-10秒)完成大规模签名(超过100万个)的聚合。这种方法可以理解为通过接受封装的复杂性来最小化系统整体复杂度。
(3) Orbit SSF避免使用"高科技"方案,而是通过巧妙重新思考协议假设来解决问题:我们适当放宽"经济最终性"的要求,确保攻击成本依然很高,但可以接受比现在低约10倍的攻击成本(例如,从250亿美元降至25亿美元)。普遍观点认为,当前以太坊的经济最终性远超实际需求,主要安全风险存在于其他方面,因此这可能是一个可以接受的权衡。
目前的主要工作是验证Orbit机制的安全性并确保其具备我们期望的特性,然后完成其正式化设计并实现。此外,EIP-7251(提高最大有效余额)允许验证者自愿进行余额整合,这能立即在一定程度上减少链上验证开销,并可作为推出Orbit的有效第一阶段。
(4) 双层质押方案避免了复杂的机制重设计和高科技手段,但会创建一个两层质押系统,这仍然存在中心化风险。具体风险很大程度上取决于低层质押者获得的具体权利。例如:
- 如果低层质押者需要将其见证权委托给高层质押者,那么委托过程可能会趋向中心化,最终形成两个高度中心化的质押层。
- 如果需要低层质押者的随机样本来批准每个区块,攻击者可能只需投入少量ETH就能阻碍最终性的达成。
- 如果低层质押者仅能制作包含列表,则见证层可能保持中心化,这样一来,对见证层的51%攻击就可以审查包含列表本身。
可以采用多种策略的组合方案,例如:
(1 + 2):利用暴力技术降低最低存款门槛,但不实施单时隙确定性。这种方案所需的签名聚合量比纯粹的方案(3)减少了64倍,因此技术实现难度大幅降低。
(1 + 3):引入Orbit机制,但不实施单时隙确定性。
(2 + 3):采用保守参数实施Orbit SSF(例如设置128,000个验证者委员会,而不是8,000或32,000个),并运用暴力技术使其达到极高效率。
(1 + 4):引入彩虹质押机制,但不实施单时隙确定性。
与路线图其他部分的关系
除了其他优势外,单时隙确定性能够降低特定类型的多区块MEV攻击风险。此外,在实现单时隙确定性的环境下,见证者-提议者分离设计以及其他协议内的区块生产流程都需要采用不同的设计方法。
暴力策略的主要缺点是会增加降低时隙时间的难度。
SSLE
区块生成中的秘密领导者选举:https://ethereum.org/en/roadmap/secret-leader-election/
单一秘密领导者选举
我们要解决什么问题?
目前,哪个验证者将提出下一个区块是提前已知的。这造成了一个安全漏洞:攻击者可以监视网络,识别哪些验证者对应哪些IP地址,并在验证者即将提出区块时对其进行DoS攻击。
它是什么?工作原理是什么?
解决DoS问题的最佳方法是隐藏关于哪个验证者将产生下一个区块的信息,至少要到区块实际产生的那一刻。请注意,如果我们去掉"单一"这个要求,这其实很容易实现:一个解决方案是让任何人都可以创建下一个区块,但要求randao显示值小于 2256/N。平均而言,只有一个验证者能够满足这个要求,但有时可能会有两个或更多,有时可能一个都没有。将"秘密性"要求与"单一性"要求相结合一直是一个难题。
单一秘密领导者选举协议通过使用一些密码学技术来创建每个验证者的"盲化"验证者ID来解决这个问题,然后给多个提议者机会来对盲化ID池进行洗牌和重新盲化(这类似于混合网络的工作方式)。在每个时隙中,会随机选择一个盲化ID。只有该盲化ID的所有者能够生成有效的证明来提议区块,但其他人都不知道这个盲化ID对应哪个验证者。
Whisk SSLE协议
查看更多:现有研究资料链接
现有研究资料链接
- Dan Boneh的论文 (2020):https://eprint.iacr.org/2020/025.pdf
- Whisk(以太坊的具体提案,2022):https://ethresear.ch/t/whisk-a-practical-shuffle-based-ssle-protocol-for-ethereum/11763
- ethresear.ch上的单一秘密领导者选举标签:https://ethresear.ch/tag/single-secret-leader-election
- 使用环签名的简化SSLE:https://ethresear.ch/t/simplified-ssle/12315
待解决的问题及权衡考虑
实际上,剩下的工作是找到并实现一个足够简单的协议,使我们能够放心地在主网上实施它。我们高度重视以太坊作为一个相当简单的协议,我们不希望复杂性进一步增加。我们看到的SSLE实现会增加数百行规范代码,并在复杂的密码学中引入新的假设。找出一个足够高效的抗量子SSLE实现也是一个悬而未决的问题。
可能只有当我们出于其他原因(例如状态树、ZK-EVM)在以太坊协议的L1层引入通用零知识证明机制时,SSLE带来的额外复杂性才会降低到可接受的程度。
另一个选择是干脆不使用SSLE,而是使用协议外的缓解措施(例如在p2p层面)来解决DoS问题。
与路线图其他部分的关系
如果我们添加认证者-提议者分离(Attester-Proposer Separation, APS)机制,例如执行单(execution tickets),那么执行区块(即包含以太坊交易的区块)将不需要SSLE,因为我们可以依赖专门的区块构建者。然而,对于共识区块(即包含协议消息如认证、包含列表片段等的区块),我们仍然能从SSLE中受益。
更快的交易确认
我们要解决什么问题?
将以太坊的交易确认时间进一步缩短,从12秒降至4秒,这是有价值的。这样做将显著改善L1和 Based Rollup的用户体验,同时使DeFi协议更加高效。这也将使L2更容易去中心化,因为它将允许更多L2应用程序在Based Rollup上工作,减少L2建立自己的基于委员会的去中心化排序的需求。
它是什么?工作原理是什么?
总的来说,这里有两大类技术:
减少时隙时间,降至例如8秒或4秒。这不一定意味着4秒的最终确定性:最终确定性本质上需要三轮通信,因此我们可以让每轮通信成为一个单独的区块,这样在4秒后至少能获得初步确认。
允许提议者在时隙期间发布预确认(pre-confirmations)。在极端情况下,提议者可以实时将他们看到的交易包含到区块中,并立即为每个交易发布预确认消息("我的第一个交易是0x1234...","我的第二个交易是0x5678...")。提议者发布两个冲突确认的情况可以通过两种方式处理:(i)通过惩罚提议者,或(ii)使用验证者对哪一个更早进行投票。
查看更多:现有研究资料链接
现有研究资料链接
- 基于预确认:https://ethresear.ch/t/based-preconfirmations/17353
- 协议强制的提议者承诺(PEPC):https://ethresear.ch/t/unbundling-pbs-towards-protocol-enforced-proposer-commitments-pepc/13879
- 平行链上的交错周期(一个2018年时代的实现低延迟的想法):https://ethresear.ch/t/staggered-periods/1793
待解决的问题及权衡考虑
目前还不清楚减少时隙时间到底有多么可行。即使在今天,许多地区的质押者都很难及时包含认证。尝试4秒的时隙时间可能会导致验证者集合的中心化,并且由于延迟问题,使得在少数优势地理位置之外的地方成为验证者变得不切实际。具体来说,转向4秒的时隙时间将需要将网络延迟限制("delta")减少到两秒。
提议者预确认方法的弱点在于它可以大大改善平均情况下的包含时间,但不能改善最坏情况:如果当前提议者运作良好,你的交易将在0.5秒内得到预确认,而不是(平均)6秒后被包含,但如果当前提议者离线或运作不良,你仍然需要等待长达12秒直到下一个时隙开始并提供新的提议者。
此外,还有一个如何激励预确认的开放问题。提议者有动机尽可能长时间地最大化他们的选择权。如果验证者对预确认的时效性进行签名,那么交易发送者可以将部分费用与即时预确认挂钩,但这会给验证者带来额外负担,并可能使验证者更难继续作为中立的"哑管道"运作。
另一方面,如果我们不尝试这样做,而是保持12秒(或更长)的最终确认时间,生态系统将更多地依赖第2层的预确认机制,跨L2的交互将需要更长时间。
与路线图其他部分的关系
提议者预确认实际上依赖于认证者-提议者分离(APS)机制,例如执行单。否则,提供实时预确认的压力可能对普通验证者来说太过中心化。
时隙时间可以缩短多少也取决于时隙结构(slot structure),这在很大程度上取决于我们最终实施哪些版本的APS、包含列表等。有一些时隙结构包含较少的轮次,因此更适合短时隙时间,但它们在性能和安全性等其他方面也需要做出相应的权衡。
预确认
其他研究领域
51%攻击恢复
人们经常认为,如果发生51%攻击(包括无法通过密码学证明的攻击,如审查),社区将齐心协力实施少数派软分叉,确保善意参与者获胜,而恶意参与者会因不活跃而被削减或被惩罚。然而,这种过度依赖社会层面的做法可以说是不健康的。我们可以通过使恢复过程尽可能自动化来减少对社会层面的依赖。
完全自动化是不可能的,因为如果可能,这将被视为一个容错率超过50%的共识算法,而我们已经知道这类算法的数学可证明的限制非常严格。但我们可以实现部分自动化:举例来说,如果客户端观察到某条链对已被该客户端长期监测到对交易实施审查,则可以自动拒绝将该链作为最终确定链,甚至可以拒绝将其作为分叉选择的首选链。一个关键目标是确保攻击者至少无法快速获得完全的胜利。
提高法定人数门槛
目前,如果67%的质押者支持某个区块,该区块就会最终确定。有观点认为这过于激进。在以太坊的整个历史中,只出现过一次(非常短暂的)最终确定性失败。如果这个百分比提高到80%,那么非最终确定期的增加数量将相对较低,但以太坊将获得更好的安全属性:特别是,更多的有争议情况将导致暂时停止最终确定。这似乎是一个更健康的情况,无论是在攻击者是"错误方"时,还是在客户端出现错误时,都比让"错误方"立即获胜要好。
这也回答了"独立质押者的意义是什么?"这个问题。目前,大多数质押者已经通过质押池进行质押,想要让独立质押者达到质押ETH的51%似乎非常不可能。然而,如果我们努力,让独立质押者达到法定人数阻止少数派的比例,特别是如果法定人数是80%(这样法定人数阻止少数派只需要21%)似乎是可以实现的。只要独立质押者不同意51%攻击(无论是最终确定性回滚还是审查),这样的攻击就不会获得"完全胜利",独立质押者也会有动力帮助组织少数派软分叉。
请注意,法定人数门槛与Orbit机制之间存在相互作用:如果我们最终使用Orbit,那么"21%的质押者"究竟意味着什么将成为一个更复杂的问题,部分取决于验证者的分布。
抗量子性
Metaculus目前认为,尽管误差范围很大,量子计算机可能会在2030年代开始破解密码学:
像Scott Aaronson这样的量子计算专家最近也开始更加认真地看待量子计算机在中期内实际工作的可能性。这对整个以太坊路线图都有影响:这意味着以太坊协议中目前依赖椭圆曲线的每个部分都需要有基于哈希或其他抗量子的替代方案。这特别意味着我们不能假设我们将能够永远依赖BLS聚合的优秀特性来处理来自大型验证者集合的签名。这证明了在假设权益证明设计的性能时需要保持保守态度,同时也是更积极开发抗量子替代方案的原因。