本文详细探讨了以太坊的Beam Chain提案,该提案旨在通过重构共识层以提高以太坊的扩展性和安全性。文中涵盖了Beam Chain的关键特性,如更快的区块时间、更快的最终性和使用零知识证明 (ZK) 技术来提高验证器的效率,以及针对量子计算的抵抗能力。文章结构清晰、论据详尽,对以太坊未来的可能性提供了深入的技术分析和展望。
在2024年,围绕Ethereum发生了许多重大事件。年初,Ethereum通过Dencun升级引入了blobs。这个更新大幅降低了现有rollups的交易成本,为rollup生态系统的快速扩展奠定了基础。
(经过Dencun升级后的OP链费用降低 | 来源:Optimism X)
然而,随着生态系统内的dapp迁移到高度可扩展的rollups和其它Layer 1 (L1) 网络,Ethereum本身的用户活动开始减少。此外,随着rollups停止向Ethereum提交高费用,社区内开始出现担忧。
此外,2024年是一些关注可扩展性的L1网络,如Solana和Sui,表现出显著实力的一年。这些网络产生的巨大TPS(每秒交易数)使得rollups的活跃度显得相对较小。
在这种背景下,批评声音出现,例如“Ethereum的rollup中心化路线图是有缺陷的”或者“Ethereum的发展速度太慢,无法成功”。Ethereum真的走在正确的道路上吗?在2025年甚至2030年,Ethereum会是什么样子?
本系列将在两个主要主题下深入探讨Ethereum的路线图部分,根据技术细节分析其未来。第一个主题是Beam Chain。
如果要在Ethereum社区中选择今年讨论最多的话题,那很可能就是Ethereum研究人员Justin Drake在Devcon上对Beam Chain的宣布。这个公告引起了大量关注,随之而来的是很多噪音。让我们分析一下这个提案的含义。
Beam Chain提案的核心思想是完全重新设计Ethereum的共识层。Justin Drake指出了当前共识层Beacon Chain需要重新设计的以下三个原因:
目前,Ethereum的共识层路线图包括以下元素:
区块生产 | 质押 | 密码学 | |
---|---|---|---|
P0 | 抵制审查(FOCIL) | 更智能的发行(例如,质押上限) | 链的snark化(例如,Poseidon + zkVM) |
P1 | 隔离验证者(执行拍卖) | 更小的验证者(1 ETH轨道质押) | 量子安全(例如基于哈希的签名) |
P2 | 更快的时隙(4秒) | 更快的最终性(3-slot FFG) | 强随机性(例如,MinRoot VDF) |
其中,用粗体标记的四个领域代表了超越Beacon Chain简单修改的根本变化。例如,链的snark化指的是将共识层的状态处理转换为ZK技术,这需要从哈希函数到merkle化/序列化状态的根本变化。
此外,更快的时隙和更快的最终性是新提出的设计,旨在在保持安全性的同时实现性能改进——这是初始设计中没有优先考虑的因素。实施这些变化需要对共识层进行广泛的更改。
Beam Chain提议通过一次硬分叉来实现这些变化。总结如下:
接下来,让我们探讨每一个如何实现以及它们所带来的技术影响。
目前,Ethereum的时隙时间为12秒,并且连接到时隙的区块需要2到3个时期(大约15分钟)才能达到最终性。改善这些时间将对Ethereum用户、应用程序以及在Ethereum上构建的rollups产生积极影响。
这一主题,Ethereum研究人员称之为SSF(单时隙最终性),旨在将Ethereum区块达到最终性的时间从大约15分钟减少到12秒以内,为用户提供更快的确认。要理解单时隙最终性,我们必须理解Ethereum当前的共识算法Gasper。
Gasper的一个关键设计原则是确保在设定时间后,在一个时隙中提出的区块获得一定程度的经济安全,同时最小化每个验证者的通信负担。为实现这一点,Ethereum将整个验证者集分成委员会,分布在32个时隙中。每个时隙最多可以容纳64个委员会,目标是组成每个委员会128个验证者(尽管如果活跃验证者总数超过这个数值,这个数量可以增加)。
每个委员会内部的验证者独立验证区块,并对其进行投票,使用BLS签名。BLS签名机制使得多个签名可以聚合成一个,这意味着委员会内的一个指定节点收集这些签名并将其编译成一个紧凑的数据包。通过广播这个聚合签名,下一个区块提议者可以以最小的数据确认区块已经被正确验证。
(Ethereum验证者间的BLS签名聚合 | 来源: eth2book)
总之,Ethereum的Gasper通过以下机制实现可扩展性和经济安全:
然而,问题在于Gasper以时期为基础运行,必须在时隙达到最终性之前确认匹配两个时期之间的“连接性”。在Gasper中,必须经过至少两个时期(64个时隙)才能实现与Ethereum完整经济安全相当的最终性。
这导致了以下图示表示:
(Gasper的经济最终性 | 来源: Orbit SSF)
这带来了各种挑战并削弱了用户体验。例如:
例如,在2024年3月,Polygon zkEVM由于对Ethereum重组处理不当,经历了超过两天的链中断。
减少最终性时间并非不可能,正如像Tendermint这样的共识算法所示,已经在多个协议中应用。然而,采用Tendermint机制的挑战在于节点间频繁的P2P通信,这带来了可扩展性限制。
在Tendermint中,如果节点数量为N,则其消息复杂性为O(N^3)。这意味着随着节点数量的增加,节点间的通信频率呈指数增长,从而限制了可扩展性。因此,像Ethereum这样有众多验证者的协议无法直接采用Tendermint。
为将Tendermint风格的共识应用于Ethereum,还需要进行额外的工作来解决这些问题。
Orbit SSF旨在修改Gasper的委员会机制,以减少时隙最终性的时间,同时保持较高的经济安全性。
该提案是将32个时隙的时期大小减少到一个时隙(约12秒)。然而,正如前面提到的,这将增加验证者通信的资源使用,负面影响Ethereum的去中心化。
为此,Orbit SSF提出了以下想法:
增加每个Ethereum验证者的最大质押金额,使其能够以较少的验证者达成同样的经济安全水平。
Orbit SSF建议引入一个单一的“超级委员会”,而不是每个时隙有多个委员会。质押金额较高的验证者将几乎总是按比例地被纳入委员会,确保在数量较少的委员会中仍然维持相同的经济安全水平。
下一个Ethereum升级Pectra包括EIP-7251,建议将验证者的最大质押金额(MaxEB)从32 ETH提升到2048 ETH。虽然这个提案对于Ethereum节点基础设施运营商很有吸引力,但它也是Orbit SSF的先决条件。
然而,如果质押金额较大的验证者几乎总是被纳入委员会,那么较小的独立验证者可能会面临减少的奖励,可能会损害Ethereum的去中心化。为此,Orbit SSF调整奖励,使得APR与质押金额线性增长,同时确保较大的验证者更频繁地被纳入委员会。
(Orbit SSF中被纳入委员会的奖励和概率 | 来源: Orbit SSF)
此外,Orbit SSF还转向“基于委员会的最终性”。在Gasper中,委员会只能在两个或更多个时期经过后才对最终性做出贡献,而Orbit SSF允许每个时隙分配的委员会实时对最终性做出贡献。它旨在使委员会更主动地为最终性作出贡献,从而更快地实现可扩展性。
(使用Cap-and-slow-rotate的Orbit SSF最终性 | 来源: Orbit SSF)
这里的关键在于委员会成员的构成。Orbit SSF提议采用“慢轮换”机制,使得大质押的验证者在委员会中数学上几乎固定,而较小的验证者在委员内循环出入。这使得F值,即经济安全阈值,可以设置得非常高,同时确保验证者之间的通信开销最小,最终性时间保持较低。
例如,将n设为3并设定一个相当大的F值将使得Ethereum能够在大约三个时隙内实现最终性,从而实现Justin Drake对3-slot FFG的愿景。
但是,将F提升到Ethereum的整个验证者集的水平并不容易。这可能降低进行51%攻击的成本。因此,Orbit SSF面临的主要挑战是如何在不牺牲去中心化的情况下,技术性地提高F值,以确保Ethereum的安全性仍然强大。
短时隙(4秒)的做法:即使成功实现SSF(或3-slot最终性),Ethereum用户仍将面临最小交易确认时间为12秒。这给用户带来了两个主要缺点:
此外,12秒的区块时间对rollups尤其不利,尤其是基于的rollups。例如,Taiko通过将每个L2区块发布到L1来实施基于rollup。因此,Taiko的区块时间可能增加到至少12秒,有时超过24秒。
为此,提出了两种解决方案:
a. 将Ethereum的区块时间减少到4秒或8秒
b. 使用预确认
减少Ethereum的区块时间是一个活跃讨论的话题。它已经正式化为EIP-7782,建议将时隙时间从12秒减少到8秒,从而提高Ethereum的可扩展性33%。然而,8秒的时隙时间可能不一定对用户体验或基于的rollups最理想。实现更短的时隙时间似乎更为理想。
也就是说,更短的区块时间可能会导致验证者集的中心化增加。由于物理条件的限制,地理相距较远的验证者面临更长的通信时间,而4秒的时隙时间在某些情况下可能使通信变得不可行。
Ethereum主网的区块传播时间统计数据为4秒的区块时间的可行性提供了一些洞见。下面的图显示了区块传播时间的分布情况。
(消息到达时间的CDF | 来源: Gossipsub消息传播延迟)
大约98%的区块在4秒内传播,而约2%所需时间更长。根据这一数据,4秒的区块时间看似可行。然而,区块时间不仅考虑通信—还包括执行和投票。考虑到这些因素,4秒区块时间中只有大约2秒可用于通信。在这种情况下,达到4秒的区块时间具有挑战性。
为解决此问题,必须减少传输数据的大小,最大化客户中P2P组件的性能,或使物理通信更有效率。
在这一阶段,预确认可以改善用户体验。预确认允许块生成实体向用户承诺“你的交易将在下一个区块中包含”,以比时隙时间更快的速度向用户传递结果。
预确认的优势在于,L1验证者可以利用它,而无需进行分叉或客户端修改。例如,Commit-Boost是使Ethereum验证者能够安全地生成和传播预确认的软件。
Commit-Boost像MEV-Boost一样,是验证者的可选配件,允许他们安全生成和传播“承诺”。根据使用情况,这些承诺可以有多种形式:
承诺 | 用例 |
---|---|
“你的交易不会被审查,并将包含在下一个区块中。” | 包含列表 |
“该rollup的批量提交交易将包含在下一个L1区块中。” | blob预确认 |
“你的交易将包含在下一个区块中,执行结果是X。” | 预确认 |
通过使用第三种预确认架构,用户的感知延迟可以显著降低,即使区块时间较长。当验证者接收到用户的交易后,他们可以执行该交易并将结果返回给用户。由于该结果是基于验证者的承诺,而不是区块创建,用户可以在毫秒内收到此次结果。
然而,Commit-Boost的有效性取决于验证者的采用。如果只有少数验证者使用它,对用户体验的影响将微不足道。尽管如此,Commit-Boost在Ethereum社区中获得了强力支持,有潜力成为像MEV-Boost一样普遍的中间件。它得到了Rocket Pool、Renzo、SSV、Luganodes、Nethermind、Puffer、A41和Figment等知名验证者运营商的支持。此外,它还获得了EF、Lido和Eigenlayer的资助,受到区块构建者Titan的强力支持。
然而,正如先前提到的,预确认更可能被当作MEV-Boost一样用作链下的附加工具,而不是直接整合到协议中。
Beam Chain在更快时隙中的角色
正如Justin Drake的演讲所讨论的,Beam Chain的目标是减少区块时间。因此,研究和实施很可能专注于将时隙时间减少到4秒,而不牺牲去中心化。这可能通过Ethereum的全面snark化来实现,这将在本文后面进行解释。
Justin在他的演讲中指出,Beam Chain的目标是使用ZK技术进行共识客户端snark化。这意味着什么,如何实现,以及为何必要?
目前,Ethereum Beacon Chain通过验证者“重新执行”每个区块来实现共识,以确保结果状态根是正确的。这一重新执行过程引入了无效性,并成为降低验证者硬件要求的障碍。
Beam Chain的目标是通过使用ZK技术替代这一重新执行过程为“验证”。这样将显著降低用于验证者的硬件要求,允许任何人从任何地方运行Ethereum节点。为了实现这一点,Beam Chain和Ethereum将利用ZK SNARKs。
ZK SNARKs具有以下两个特性:
其思路是在Ethereum的共识所需的计算和数据上应用ZK,生成证明以展现规定逻辑的遵循。这意味着,验证者可以通过验证ZK证据而不是重新执行整个区块并存储更新后的状态来实现共识。验证ZK证据在数据大小和可扩展性上远比重新执行物有所值。
因此,Ethereum验证者的硬件要求可以显著降低。例如,Vitalik在《The Verge》的文章中表示,目标是使验证者能够在资源受限的环境(如智能手表)上运行。
第一步是将状态转移函数snark化。状态转移函数一般如下所示:
f(S,B)=S'
这里:
所有区块链都基于确定性的状态转移函数,Ethereum也不例外。Ethereum的共识和执行层有不同的状态转移函数。对这两者进行snark化将使得使用ZK验证整个Ethereum系统成为可能,从而实现完全轻量化的验证者。
在Beam Chain中,目标是将共识层的状态转移函数snark化。目前,Ethereum的共识层的状态转移函数在每个时隙中执行,并执行以下操作:
每当验证者接收来自另一个验证者的区块时,都会执行此函数。如果此函数实现snark化,验证者将无需直接执行状态转移函数。相反,他们可以验证一个证明,表明该函数正确执行。
在这种情况下,谁生成ZK证明?通常可以假设区块的提议者也负责生成ZK证明。然而,重要的是要注意不是所有验证者都能生成ZK证明。
Beam Chain旨在实现标准笔记本电脑在3秒内生成ZK证明的性能。但即使达到该目标,运行在智能手表或智能手机上的验证者可能没有足够的资源来生成ZK证明。
此时,网络可以依赖于无私的贡献。每个区块只需要一个ZK证明用于共识层的状态转移,而证明不必由区块提议者生成。换句话说,只要网络中的至少一个实体为每个区块生成ZK证明,就能确保Beam Chain的区块能够正确生成。
这一变更本身可能不会显著提高验证者的性能。共识层的状态转移函数涉及的操作相对轻量,低于执行层状态转移函数所需的操作。然而,主要瓶颈并不在于执行状态转移函数所需的资源,而在于网络带宽。当节点在分发的数据(区块)量增大时,验证者在分配的时间内达成共识的能力会受到影响。这是Ethereum在过去3年维持30M gas限制的原因之一。
如果这个变化与执行层的snark化一同实施,验证者交换所需的数据将比整个区块小得多。这是因为SNARK证明显著比原始数据compact。彻底snark化的Ethereum验证者将交换更少的数据,从而降低与当前系统相比的网络需求。
总之,全面snark化Ethereum将给验证者带来以下优势。
因此,Ethereum生态系统可能会发生戏剧性的变化。举例来说:
这将使得验证者参与更加可及与去中心化。
仅仅将状态转移函数snark化是否足以作为Beam Chain的共识层?
Beam Chain还旨在snark化另一个领域:签名生成。Ethereum的共识层当前使用验证者签名作为确定最终区块和在分叉情况下判断正确链的证明数据。
Ethereum目前采用BLS签名用于此目的,正如早前所述,BLS签名具有聚合性能,允许多个签名合并为一个。这种聚合显著提高了Ethereum共识过程的效率。然而,这一签名机制存在根本性问题:它容易受到量子计算机的攻击。
Ethereum Beacon Chain中使用的BLS签名基于椭圆曲线。椭圆曲线基签名机制的安全性依赖于离散对数问题(DLP),而量子计算机的超强计算能力可能危害其安全性。这使得基于椭圆曲线的签名在本质上脆弱于量子计算机。
量子计算的发展迅速,正如谷歌最近在其量子计算芯片Willow上的开发所示。谷歌声称,Willow能够在5分钟内完成计算,而这项计算需要超级计算机进行10^25年的运算。虽然这尚未根本威胁到椭圆曲线的安全性,但如果继续以这样的速度取得进展,可能在几Years内将区块链系统置于风险中。
(转向后量子密码标准 | 来源: NIST IR 8547)
美国国家标准与技术研究所(NIST)已经开始为量子抗性签名算法的标准化工作,以应对由于量子计算机引发现有系统崩溃的预期。
Ethereum对这个问题也持严肃态度。在Beam Chain中,目标是实现量子抗性的签名算法。
有几种类型的量子抗性签名算法,但Justin在Beam Chain演讲中特别提到基于哈希的签名算法。与椭圆曲线不同,基于哈希的签名并不依赖于数学机制,使其受到量子计算机因素影响的承受力显著更高。因此,基于哈希的签名被认为是量子抗性的,Beam Chain aims to adopt such signatures.
主要挑战在于,基于哈希的签名缺乏BLS签名所具备的聚合属性。Ethereum依赖签名聚合以实现共识中的效率。没有聚合,Ethereum无法容纳大量验证者集。
ZK可以用来解决这个问题。它涉及利用证明聚合,一种将多个ZK证明合成一个证明的技术。该机制的工作原理如下:
(证明聚合的图示 | 来源: Figment Capital)
这一方法使Ethereum能够在共识层实现与BLS签名聚合相同的效率,同时在共识层达到量子抗性。
总之,结合ZK的Beam Chain将带来以下优势:
在Beam Chain中ZK的证明系统将是zkVM。基于Risc-V的zkVM可以证明任何编程语言的任何程序,提供了更大的灵活性。
(Beam状态转移将在Risc-V中编译并在zkVMs中证明 | 来源: Justin Drake的Beam Chain公告)
这与Ethereum现有的客户端生态系统高度契合,该生态系统由多种语言开发,保持Ethereum的多样性和容错、可靠性。未来的Beam Chain,各种客户端将在多种编程语言中编写状态转移函数,编译为Risc-V,并允许在任何基于Risc-V的zkVM中进行证明。因此,zkVM对于Beam Chain是一个自然选择。
如果Beam Chain成功实施,Ethereum将可能具有以下特性:
目前,Beam Chain尚未正式被认可为Ethereum的路线图的一部分。实施它将需要长时间的深入研究、开发和测试。然而,如果Ethereum推行Beam Chain硬分叉,导致的用户体验改善可能会是变革性的。
这就结束了我们通过Beam Chain探索Ethereum在五年内可能演变的过程。在下一篇文章中,我们将从用户体验和抵制审查的两个角度考量Ethereum在2025年的形态。
(Q):Justin Drake的提案是私下讨论的。这是否与Ethereum核心价值“开放”相冲突?
(A):不会,这不会。Beam Chain提案只是建议一次性实现Ethereum现有路线图中的某些部分。是否会实施仍需社区讨论。上述讨论的所有主题均已存在相关的EIP或在Ethresear.ch上发布的文章。这在或多或少上表明,Beam Chain并不是一个提出Ethereum新、此前未披露方向的提案。此外,关于Ethereum路线图的讨论在每两周一次的“核心开发者通话”中公开进行,任何人都可以参与。如果有人不同意路线图或有新想法,他们可以在会议期间表达自己的意见,或以EIP或在Ethresear.ch上发布新提案的形式提交。
总之,Justin的Beam Chain提案并不是关于改变路线图—而是将路线图中的部分内容汇聚在一个名称或概念下。
(Q):实现Beam Chain是不是五年时间太长了?
(A):五年的确可能感觉很长,但需要考虑两个因素:
(共识客户端多样性 | 来源: Ethereum客户端多样性)
Ethereum的共识机制遵循基于BFT的协议,如果超过三分之一的验证者与其他人表现不同,则区块无法被最终确认。如果Ethereum仅建立在一个或两个客户端上,这些客户端的任何侦测错误都有可能中断区块生产。因此,Ethereum始终致力于多客户端架构的开发,采用多种编程语言进行开发。这种多样性在Ethereum当前的客户端生态系统中得以体现。
如图片所示,当前Ethereum的共识层在至少四个客户端的基础上运作。要将Beacon Chain替换为Beam Chain,所有四个客户端团队都必须协同开发。考虑到这一点,以及Ethereum的大量验证者集,Beam Chain的开发过程必须优先考虑稳定性,无法在几个月或1-2年的时间内加速进行。
- 原文链接: research.2077.xyz/future...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!