特别感谢 Fede、Danno Ferrin、Justin Drake、Ladislaus 和 Tim Beiko 提供的反馈与审阅
以太坊的目标是成为全球账本——一个承载人类资产与记录的平台,是金融、治理、高价值数据验证等应用的基础层。要实现这一目标,必须同时具备可扩展性与韧性。Fusaka 硬分叉计划将 L2 数据可用空间提升 10 倍,而当前拟议中的 2026 路线图也包含了类似规模的 L1 数据扩容。与此同时,“合并”(The Merge)已将以太坊升级为权益证明(PoS),客户端多样性迅速提升,ZK(零知识证明)可验证性和抗量子攻击性研发也在稳步推进,应用生态日益成熟强健。
本文的目标,是强调一项同样关键却常被低估的韧性(以及最终的可扩展性)要素:
协议的简洁性。
比特币最令人称道的一点,就是它的协议设计极其优雅且简单:
系统是一条区块链,由一系列区块组成。每个区块通过哈希与前一个区块相连。每个区块的有效性通过工作量证明(PoW)验证,也就是说……只需检查其哈希前几位是否为零。每个区块包含交易。交易要么花费通过挖矿获得的币,要么花费之前交易输出的币。基本就是这样。
即便是一个聪明的高中生,也有能力完全理解比特币协议的全部运作原理。而一个程序员甚至可以把开发比特币客户端当作业余项目来完成。
保持协议简单,带来了一系列关键优势,使比特币和以太坊有潜力成为可信中立、全球信任的基础层:
过去,以太坊在这方面做得并不理想(有时甚至是因为我个人的决策),这导致了我们过度的开发支出、@vbuterin/selfdestruct">各种安全风险以及研发文化的封闭性,而这些努力往往换来的只是虚幻的收益。
本文将阐述,五年后的以太坊如何有可能实现接近比特币般的简洁性。
3-slot finality(3槽终结性)模拟图 — 3sf-mini
新的共识层设计(过去被称为「beam chain」)旨在整合过去十年我们在共识理论、ZK-SNARK 开发、质押经济学等领域积累的经验,打造一个长期最优的以太坊共识层。这个新共识层,相较现有信标链(Beacon Chain),有望实现更高的简洁性。尤其体现在:
3槽终结性(3-slot finality)重构
这一设计取消了“slot(槽)”与“epoch(周期)”的区分、委员会洗牌(committee shuffling)及其他与这些机制相关的协议规范细节(如同步委员会等)。一个基本版本的 3-slot finality,大约只需要 200 行代码即可实现。与当前 Gasper 协议相比,3-slot finality 也具备接近最优的安全性。
活跃验证者数量减少
使得采用更简单的分叉选择规则(fork choice rule)变得更安全可行。
基于 STARK 的聚合协议
意味着任何人都可以成为聚合者,无需担心信任聚合者、重复比特字段的过度费用等问题。虽然聚合加密本身存在一定复杂度,但这种复杂性高度封装,对协议整体系统性风险远低得多。
以上两点 也很可能支持更简单且更稳健的点对点(p2p)架构。
共识层的优势在于,它与 EVM 执行相对解耦,因此我们有较大空间持续推进这些改进。
更具挑战的是:如何在执行层(execution layer)实现同样的简化。
以太坊虚拟机(EVM)的复杂度正不断攀升,而其中不少复杂性已被证明并非必要(很多情况下也与我个人的决策有关):我们有一个 256 位虚拟机,过度优化了某些极为特定的加密形式,而这些形式如今正逐渐边缘化;还有一些预编译合约(precompiles)过度聚焦于极少使用的单一用例。
试图逐步修修补补地解决这些现实问题,行不通。移除 @vbuterin/selfdestruct">SELFDESTRUCT 指令就耗费了巨大精力,收效却有限。最近关于 EOF(EVM Object Format)的辩论,更显示了对虚拟机进行类似改动的困难。
因此,作为替代方案,我近期提出了一个更激进的思路:与其为了 1.5 倍提升不断做中等规模(但仍具破坏性)的改动,不如直接迁移到一个全新且远优且更简洁的虚拟机,争取 100 倍的收益。 就像「合并」(The Merge)一样,我们减少变革次数,但每一次都意义重大。具体而言,我建议用 RISC-V(或其他以太坊 ZK 证明器将使用的虚拟机)替代现有 EVM。这样我们将获得:
这种路径的主要缺点是:与 EOF(已可立即部署)不同,新虚拟机需要更长时间才能让开发者受益。为缓解这一点,我们可以短期内适当引入一些小但高价值的 EVM 改进(如提高合约代码大小上限、增加 DUP/SWAP17-32 指令等)。
最终,这将赋予我们一个大幅简化的虚拟机。但最大的问题是:现有的 EVM 怎么办?
在有意义地简化(甚至只是改善而不增加复杂度)以太坊虚拟机(EVM)任何部分时,最大的挑战在于:如何在实现目标的同时,保持对现有应用程序的向后兼容性。
首先要明确的一点是:并不存在一种单一的方式来界定“以太坊代码库”的范围(即使是在同一个客户端内部)。
目标是尽量缩小绿色区域的范围:也就是节点为了参与以太坊共识所必须运行的逻辑,包括计算当前状态、证明、验证、FOCIL(First-Order Consensus Integrity Layer)、基础版区块构建等。
橙色区域无法缩减:如果某个执行层特性(无论是虚拟机、预编译还是其他机制)被移除出协议规范,或者其功能被更改,关心历史区块处理的客户端仍然必须保留它——但重要的是,新客户端(比如ZK-EVMs或形式化验证器)可以完全忽略橙色区域。
新增的类别是黄色区域:这类代码对理解和解析当前链状态、以及进行最优区块构建来说非常重要,但它并不是共识的一部分。现有一个例子是 Etherscan(以及部分区块构建者)对ERC-4337用户操作的支持。如果我们用链上RISC-V实现来取代以太坊某些大型功能(例如EOA账户及其对各种旧交易类型的支持),那么尽管共识代码大幅简化,但一些专业节点仍可能会沿用原来的代码来解析这些功能。
重要的是,橙色和黄色区域属于“封装复杂度”,任何希望理解协议的人都可以跳过它们,实现以太坊的客户端也可以选择不实现它们,而且这些区域的Bug不会带来共识风险。这意味着,橙色和黄色区域的代码复杂度,带来的负面影响远小于绿色区域。
将代码从绿色区域转移到黄色区域,这个思路类似于苹果公司通过 Rosetta 翻译层来保障长期兼容性。
我提出(借鉴了@ipsilon/eof-ethereums-gateway-to-risc-v"> Ipsilon 团队最近的观点)以下虚拟机迁移流程(以EVM迁移至RISC-V为例,但同样适用于EVM迁移至Cairo,甚至未来迁移至更优VM):
完成第4步后,仍然会有很多“EVM实现”继续用于优化区块构建、开发工具和链上分析,但它们将不再属于关键共识规范。届时,以太坊共识将“原生”只理解RISC-V。
第三种、且最容易被低估的简化方法,就是尽可能在协议栈的各个部分共享统一标准。通常,没什么理由要在不同场景使用不同协议来做相同的事,但现实中这种情况仍然频繁出现,主要是因为协议路线图的不同部分彼此缺乏沟通。以下是一些通过“最大化组件共享”来简化以太坊的具体例子:
我们需要纠删码的场景有三处:
如果我们在三个用例中使用相同的纠删码(无论是 Reed-Solomon、随机线性码还是其他),我们将获得一些重要的优势:
如果确实需要不同纠删码,至少应保证“兼容性”:比如DAS场景中,横向使用Reed-Solomon,纵向使用随机线性码,但两者都基于相同的数学域。
目前以太坊的序列化格式严格来说只是“半标准化”,因为数据可以用任意格式重新序列化并广播。唯一例外是交易签名哈希,这里需要规范格式用于哈希计算。
但未来序列化格式的标准化程度会进一步提升,原因有二:
届时,我们有机会统一目前三个层面都需要的序列化方案:1)执行层;2)共识层;3)智能合约调用ABI。
我建议采用 SSZ(Simple Serialize),因为SSZ具备以下优势:
目前已有将更多组件迁移至SSZ的工作,我们在规划未来升级时,应充分考虑并利用这些进展。
一旦我们从EVM迁移至RISC-V(或其他极简VM),十六进制Merkle Patricia树将成为证明区块执行的最大瓶颈,即使在平均场景下也是如此。迁移至基于更优哈希函数的二叉树,将极大提升证明器效率,并降低轻节点和其他场景的数据成本。
完成树结构迁移时,我们还应让共识层使用同一树结构,确保整个以太坊——共识与执行两层——均可用同一套代码访问和解析。
简化与去中心化有许多相似之处。两者都是为了实现系统韧性这一更高目标所必须的上游条件。明确地重视简化,实际上需要一种文化上的转变。简化带来的好处往往在初期难以看见,但拒绝那些“光鲜亮丽的新功能”所带来的机会成本与额外工作量却是立竿见影的。然而,随着时间推移,简化的长期价值会变得愈加明显——比特币本身就是一个绝佳例子。
我建议我们借鉴 tinygrad 的做法,为以太坊的长期规范设定一个明确的代码行数上限目标,目标是让以太坊的共识关键代码尽量接近比特币那种极简风格。处理以太坊历史规则的代码仍然会存在,但应当被隔离在共识关键路径之外。与此同时,我们应当形成一种普遍的设计理念:在可能的情况下选择更简单的方案,优先采用封装式复杂性而非系统性复杂性,并倾向于那些能提供清晰可验证属性与保障的设计决策。
Mời người khác bỏ phiếu
特别感谢 Fede、Danno Ferrin、Justin Drake、Ladislaus 和 Tim Beiko 提供的反馈与审阅
以太坊的目标是成为全球账本——一个承载人类资产与记录的平台,是金融、治理、高价值数据验证等应用的基础层。要实现这一目标,必须同时具备可扩展性与韧性。Fusaka 硬分叉计划将 L2 数据可用空间提升 10 倍,而当前拟议中的 2026 路线图也包含了类似规模的 L1 数据扩容。与此同时,“合并”(The Merge)已将以太坊升级为权益证明(PoS),客户端多样性迅速提升,ZK(零知识证明)可验证性和抗量子攻击性研发也在稳步推进,应用生态日益成熟强健。
本文的目标,是强调一项同样关键却常被低估的韧性(以及最终的可扩展性)要素:
协议的简洁性。
比特币最令人称道的一点,就是它的协议设计极其优雅且简单:
系统是一条区块链,由一系列区块组成。每个区块通过哈希与前一个区块相连。每个区块的有效性通过工作量证明(PoW)验证,也就是说……只需检查其哈希前几位是否为零。每个区块包含交易。交易要么花费通过挖矿获得的币,要么花费之前交易输出的币。基本就是这样。
即便是一个聪明的高中生,也有能力完全理解比特币协议的全部运作原理。而一个程序员甚至可以把开发比特币客户端当作业余项目来完成。
保持协议简单,带来了一系列关键优势,使比特币和以太坊有潜力成为可信中立、全球信任的基础层:
过去,以太坊在这方面做得并不理想(有时甚至是因为我个人的决策),这导致了我们过度的开发支出、@vbuterin/selfdestruct">各种安全风险以及研发文化的封闭性,而这些努力往往换来的只是虚幻的收益。
本文将阐述,五年后的以太坊如何有可能实现接近比特币般的简洁性。
3-slot finality(3槽终结性)模拟图 — 3sf-mini
新的共识层设计(过去被称为「beam chain」)旨在整合过去十年我们在共识理论、ZK-SNARK 开发、质押经济学等领域积累的经验,打造一个长期最优的以太坊共识层。这个新共识层,相较现有信标链(Beacon Chain),有望实现更高的简洁性。尤其体现在:
3槽终结性(3-slot finality)重构
这一设计取消了“slot(槽)”与“epoch(周期)”的区分、委员会洗牌(committee shuffling)及其他与这些机制相关的协议规范细节(如同步委员会等)。一个基本版本的 3-slot finality,大约只需要 200 行代码即可实现。与当前 Gasper 协议相比,3-slot finality 也具备接近最优的安全性。
活跃验证者数量减少
使得采用更简单的分叉选择规则(fork choice rule)变得更安全可行。
基于 STARK 的聚合协议
意味着任何人都可以成为聚合者,无需担心信任聚合者、重复比特字段的过度费用等问题。虽然聚合加密本身存在一定复杂度,但这种复杂性高度封装,对协议整体系统性风险远低得多。
以上两点 也很可能支持更简单且更稳健的点对点(p2p)架构。
共识层的优势在于,它与 EVM 执行相对解耦,因此我们有较大空间持续推进这些改进。
更具挑战的是:如何在执行层(execution layer)实现同样的简化。
以太坊虚拟机(EVM)的复杂度正不断攀升,而其中不少复杂性已被证明并非必要(很多情况下也与我个人的决策有关):我们有一个 256 位虚拟机,过度优化了某些极为特定的加密形式,而这些形式如今正逐渐边缘化;还有一些预编译合约(precompiles)过度聚焦于极少使用的单一用例。
试图逐步修修补补地解决这些现实问题,行不通。移除 @vbuterin/selfdestruct">SELFDESTRUCT 指令就耗费了巨大精力,收效却有限。最近关于 EOF(EVM Object Format)的辩论,更显示了对虚拟机进行类似改动的困难。
因此,作为替代方案,我近期提出了一个更激进的思路:与其为了 1.5 倍提升不断做中等规模(但仍具破坏性)的改动,不如直接迁移到一个全新且远优且更简洁的虚拟机,争取 100 倍的收益。 就像「合并」(The Merge)一样,我们减少变革次数,但每一次都意义重大。具体而言,我建议用 RISC-V(或其他以太坊 ZK 证明器将使用的虚拟机)替代现有 EVM。这样我们将获得:
这种路径的主要缺点是:与 EOF(已可立即部署)不同,新虚拟机需要更长时间才能让开发者受益。为缓解这一点,我们可以短期内适当引入一些小但高价值的 EVM 改进(如提高合约代码大小上限、增加 DUP/SWAP17-32 指令等)。
最终,这将赋予我们一个大幅简化的虚拟机。但最大的问题是:现有的 EVM 怎么办?
在有意义地简化(甚至只是改善而不增加复杂度)以太坊虚拟机(EVM)任何部分时,最大的挑战在于:如何在实现目标的同时,保持对现有应用程序的向后兼容性。
首先要明确的一点是:并不存在一种单一的方式来界定“以太坊代码库”的范围(即使是在同一个客户端内部)。
目标是尽量缩小绿色区域的范围:也就是节点为了参与以太坊共识所必须运行的逻辑,包括计算当前状态、证明、验证、FOCIL(First-Order Consensus Integrity Layer)、基础版区块构建等。
橙色区域无法缩减:如果某个执行层特性(无论是虚拟机、预编译还是其他机制)被移除出协议规范,或者其功能被更改,关心历史区块处理的客户端仍然必须保留它——但重要的是,新客户端(比如ZK-EVMs或形式化验证器)可以完全忽略橙色区域。
新增的类别是黄色区域:这类代码对理解和解析当前链状态、以及进行最优区块构建来说非常重要,但它并不是共识的一部分。现有一个例子是 Etherscan(以及部分区块构建者)对ERC-4337用户操作的支持。如果我们用链上RISC-V实现来取代以太坊某些大型功能(例如EOA账户及其对各种旧交易类型的支持),那么尽管共识代码大幅简化,但一些专业节点仍可能会沿用原来的代码来解析这些功能。
重要的是,橙色和黄色区域属于“封装复杂度”,任何希望理解协议的人都可以跳过它们,实现以太坊的客户端也可以选择不实现它们,而且这些区域的Bug不会带来共识风险。这意味着,橙色和黄色区域的代码复杂度,带来的负面影响远小于绿色区域。
将代码从绿色区域转移到黄色区域,这个思路类似于苹果公司通过 Rosetta 翻译层来保障长期兼容性。
我提出(借鉴了@ipsilon/eof-ethereums-gateway-to-risc-v"> Ipsilon 团队最近的观点)以下虚拟机迁移流程(以EVM迁移至RISC-V为例,但同样适用于EVM迁移至Cairo,甚至未来迁移至更优VM):
完成第4步后,仍然会有很多“EVM实现”继续用于优化区块构建、开发工具和链上分析,但它们将不再属于关键共识规范。届时,以太坊共识将“原生”只理解RISC-V。
第三种、且最容易被低估的简化方法,就是尽可能在协议栈的各个部分共享统一标准。通常,没什么理由要在不同场景使用不同协议来做相同的事,但现实中这种情况仍然频繁出现,主要是因为协议路线图的不同部分彼此缺乏沟通。以下是一些通过“最大化组件共享”来简化以太坊的具体例子:
我们需要纠删码的场景有三处:
如果我们在三个用例中使用相同的纠删码(无论是 Reed-Solomon、随机线性码还是其他),我们将获得一些重要的优势:
如果确实需要不同纠删码,至少应保证“兼容性”:比如DAS场景中,横向使用Reed-Solomon,纵向使用随机线性码,但两者都基于相同的数学域。
目前以太坊的序列化格式严格来说只是“半标准化”,因为数据可以用任意格式重新序列化并广播。唯一例外是交易签名哈希,这里需要规范格式用于哈希计算。
但未来序列化格式的标准化程度会进一步提升,原因有二:
届时,我们有机会统一目前三个层面都需要的序列化方案:1)执行层;2)共识层;3)智能合约调用ABI。
我建议采用 SSZ(Simple Serialize),因为SSZ具备以下优势:
目前已有将更多组件迁移至SSZ的工作,我们在规划未来升级时,应充分考虑并利用这些进展。
一旦我们从EVM迁移至RISC-V(或其他极简VM),十六进制Merkle Patricia树将成为证明区块执行的最大瓶颈,即使在平均场景下也是如此。迁移至基于更优哈希函数的二叉树,将极大提升证明器效率,并降低轻节点和其他场景的数据成本。
完成树结构迁移时,我们还应让共识层使用同一树结构,确保整个以太坊——共识与执行两层——均可用同一套代码访问和解析。
简化与去中心化有许多相似之处。两者都是为了实现系统韧性这一更高目标所必须的上游条件。明确地重视简化,实际上需要一种文化上的转变。简化带来的好处往往在初期难以看见,但拒绝那些“光鲜亮丽的新功能”所带来的机会成本与额外工作量却是立竿见影的。然而,随着时间推移,简化的长期价值会变得愈加明显——比特币本身就是一个绝佳例子。
我建议我们借鉴 tinygrad 的做法,为以太坊的长期规范设定一个明确的代码行数上限目标,目标是让以太坊的共识关键代码尽量接近比特币那种极简风格。处理以太坊历史规则的代码仍然会存在,但应当被隔离在共识关键路径之外。与此同时,我们应当形成一种普遍的设计理念:在可能的情况下选择更简单的方案,优先采用封装式复杂性而非系统性复杂性,并倾向于那些能提供清晰可验证属性与保障的设计决策。