这家老牌机构彻底放弃了以太坊
252 2025-05-04
作者:Vitalik Buterin;编译:GaryMa 吴说区块链
以太坊旨在成为全球账本,需要可扩展性和韧性。本文聚焦协议简单性的重要性,提出通过简化共识层(3-slot 最终性、STARK 聚合)和执行层(替换 EVM 为 RISC-V 或类似虚拟机)大幅降低复杂性,减少开发成本、错误风险和攻击面。建议通过向后兼容策略(如链上 EVM 解释器)平滑过渡,并统一纠删码、序列化格式(SSZ)和树结构以进一步简化。目标是让以太坊共识关键代码接近比特币的简单性,提升韧性和参与度,需文化上重视简单性并设定最大代码行数目标。
以太坊的目标是成为全球账本:存储人类文明资产与记录的平台,服务于金融、治理、高价值数据认证等领域。这需要两方面的支持:可扩展性与韧性。Fusaka 硬分叉计划将 L2 数据的可用空间增加 10 倍,而当前提议的 2026 年路线图也计划为 L1 层带来类似的大幅提升。与此同时,以太坊已完成向权益证明(PoS)的过渡,客户端多样性迅速提升,零知识(ZK)验证、量子抗性研究也在稳步推进,应用生态日益稳健。
本文旨在聚焦一个同样重要却易被低估的韧性(乃至可扩展性)要素:协议的简单性。
比特币协议最令人赞叹之处在于其优雅的简洁性:
1. 存在一条由区块组成的链,每个区块通过哈希与前一区块相连。
2. 区块的有效性通过工作量证明(PoW)验证,即检查哈希值的前几位是否为零。
3. 每个区块包含交易,交易花费的币要么来自挖矿奖励,要么来自之前的交易输出。
仅此而已!即便是一个聪明的高中生也能完全理解比特币协议的运作,而一个程序员甚至可以将其作为业余项目编写一个客户端。
协议的简单性为比特币(以及以太坊)成为可信、中立的全球基础层带来了诸多关键优势:
1. 易于理解:降低协议的复杂性,让更多人能够参与协议研究、开发和治理,减少技术精英阶层主导的风险。
2. 降低开发成本:简化协议大幅降低创建新基础设施(如新客户端、证明器、开发者工具等)的成本。
3. 减少维护负担:降低长期协议维护的成本。
4. 减少错误风险:降低协议规范及实现中发生灾难性错误的可能性,同时便于验证不存在此类错误。
5. 缩小攻击面:减少协议的复杂组件,降低被特殊利益集团攻击的风险。
历史上,以太坊(有时因我个人的决策)常常未能保持简单,导致开发成本过高、安全风险增加以及研发文化的封闭性,而这些复杂性追求的收益往往被证明是虚幻的。本文将探讨五年后的以太坊如何接近比特币的简单性。
新的共识层设计(历史上称为 “信标链”)旨在利用过去十年在共识理论、ZK-SNARK 开发、质押经济等领域的经验,构建一个长期最优且更简单的共识层。相比现有信标链,新设计显著简化:
1. 3-slot 最终性设计:移除槽(slot)、周期(epoch)、委员会重组等概念,以及相关的高效处理机制(如同步委员会)。 3-slot 最终性的基本实现仅需约 200 行代码,且相比 Gasper,安全性接近最优。
2. 减少活跃验证者数量:允许使用更简单的分叉选择规则实现,增强安全性。
3. 基于 STARK 的聚合协议:任何人都可成为聚合者,无需信任聚合者或为重复位域支付高昂费用。聚合密码学的复杂性较高,但其复杂性被高度封装,系统性风险较低。
4. 简化 P2P 架构:上述因素可能支持更简单、更稳健的点对点网络架构。
5. 重新设计验证者机制:包括进入、退出、提款、密钥转换、 inactivity leak 等机制,简化代码行数并提供更清晰的保证(如弱主观性周期)。
共识层的优势在于其与 EVM 执行层相对独立,因此有较大空间持续改进。更大的挑战在于如何在执行层实现类似简化。
EVM 的复杂性日益增加,且许多复杂性被证明无必要(部分因我个人决策失误):256 位虚拟机过度优化了如今已逐渐过时的特定密码学形式,预编译(precompiles)为单一用例优化却鲜被使用。
逐一解决这些问题效果有限。例如,移除 SELFDESTRUCT 操作码耗费巨大努力,却仅带来较小收益。近期关于 EOF(EVM Object Format)的争论也显示出类似挑战。
我最近提出一个更激进的方案:与其对 EVM 进行中等规模(但仍具破坏性)的更改以换取 1.5 倍的收益,不如向一个更优、更简单的虚拟机过渡,以实现 100 倍的收益。类似于 “合并”(The Merge),我们减少破坏性变更的次数,但使每次变更更具意义。具体而言,我建议将 EVM 替换为 RISC-V,或以太坊 ZK 证明器使用的另一种虚拟机。这将带来:
1. 效率大幅提升:智能合约执行(在证明器中)无需解释器开销,直接运行。Succinct 的数据显示在许多场景下性能可提升 100 倍以上。
2. 简单性大幅改进:RISC-V 规范相比 EVM 极其简单,替代方案(如 Cairo)同样简洁。
3. 支持 EOF 的动机:如代码分区、更友好的静态分析、更大代码大小限制等。
4. 更多开发者选择:Solidity 和 Vyper 可添加后端以编译到新虚拟机。若选择 RISC-V,主流语言开发者也能轻松将代码移植到该虚拟机。
5. 移除大部分预编译:可能仅保留高度优化的椭圆曲线操作(量子计算机普及后连这些也将消失)。
主要缺点是,与已准备就绪的 EOF 不同,新虚拟机的收益需较长时间惠及开发者。我们可通过短期实施高价值的 EVM 改进(如增加合约代码大小限制、支持 DUP/SWAP17–32)来缓解这一问题。
这将带来更简单的虚拟机。核心挑战在于:如何处理现有的 EVM?
简化(或在不增加复杂性的前提下改进)EVM 的最大挑战在于如何平衡目标实现与现有应用的向后兼容性。
首先需要明确:以太坊代码库(即使在单一客户端内)并非只有一种定义方式。
目标是尽量缩小绿色区域:节点参与以太坊共识所需的逻辑,包括计算当前状态、证明、验证、FOCIL(分叉选择规则)及 “普通” 区块构建。
橙色区域无法减少:若协议规范移除或更改某执行层功能(如虚拟机、预编译等),处理历史区块的客户端仍需保留相关代码。但新客户端、ZK-EVM 或形式化证明器可完全忽略橙色区域。
新增的黄色区域:对理解当前链或优化区块构建非常有价值,但不属于共识逻辑。例如,Etherscan 及部分区块构建者支持 ERC-4337 用户操作。若我们用链上 RISC-V 实现替换某些以太坊功能(如 EOA 及其支持的旧交易类型),共识代码将显著简化,但专用节点可能继续使用原有代码进行解析。
橙色和黄色区域的复杂性是封装复杂性,理解协议的人可跳过这些部分,以太坊实现可忽略它们,这些区域的错误不会引发共识风险。因此,橙色和黄色区域的代码复杂性远比绿色区域的复杂性危害小。
将代码从绿色区域移至黄色区域的思路,类似于苹果通过 Rosetta 翻译层确保长期向后兼容的策略。
受 Ipsilon 团队近期文章启发,我提出以下虚拟机变更流程(以 EVM 到 RISC-V 为例,但也可用于 EVM 到 Cairo 或 RISC-V 到更优虚拟机):
1. 要求新预编译提供链上 RISC-V 实现:让生态系统逐步适应 RISC-V 虚拟机。
2. 引入 RISC-V 作为开发者选项:协议同时支持 RISC-V 和 EVM,两种虚拟机的合约可自由交互。
3. 替换大部分预编译:除椭圆曲线操作和 KECCAK(因需极致速度)外,用 RISC-V 实现替换其他预编译。通过硬分叉移除预编译,同时将该地址的代码(类似 DAO 分叉)从空更改为 RISC-V 实现。RISC-V 虚拟机极其简单,即使在此止步也净简化协议。
4. 在 RISC-V 中实现 EVM 解释器:作为智能合约上链(因 ZK 证明器需要已进行)。在初始发布数年后,现有 EVM 合约通过该解释器运行。
完成第 4 步后,许多 “EVM 实现” 仍将用于优化区块构建、开发者工具和链分析,但不再是关键共识规范的一部分。以太坊共识将 “原生地” 仅理解 RISC-V。
降低协议总复杂度的第三种方式(也最易被低估)是尽可能在协议栈的不同部分共享统一标准。不同协议在不同场景下做相同的事情通常毫无益处,但这种模式仍常出现,主要是因为协议路线图的不同部分缺乏沟通。以下是几个通过共享组件简化以太坊的具体示例。
我们在三个场景中需要纠删码:
1. 数据可用性采样:客户端验证区块已发布。
2. 更快的 P2P 广播:节点接收 n/2 个片段后即可接受区块,在延迟与冗余间取得平衡。
3. 分布式历史存储:以太坊历史数据分片存储,每组 n/2 个片段可恢复其余片段,降低单一片段丢失风险。
若在三种场景中使用同一纠删码(无论是 Reed-Solomon、随机线性码等),将获得以下优势:
1. 最小化代码量:减少总代码行数。
2. 提高效率:若节点为某场景下载部分片段,这些数据可用于其他场景。
3. 确保可验证性:所有场景的片段均可根据根验证。
若使用不同纠删码,至少应确保兼容性,例如数据可用性采样的水平 Reed-Solomon 码与垂直随机线性码在同一域操作。
以太坊的序列化格式目前仅部分固化,因数据可按任意格式重新序列化和广播。例外是交易签名哈希,需规范格式进行哈希。未来,序列化格式的固化程度将因以下原因进一步提高:
1. 完全账户抽象(EIP-7701):交易完整内容对虚拟机可见。
2. 更高的 Gas 限制:执行层数据需放入数据块(blobs)。
届时,我们有机会统一以太坊三个层级的序列化格式:执行层、共识层、智能合约调用 ABI。
我提议使用SSZ,因为 SSZ:
1. 易于解码:包括在智能合约内(因其基于 4 字节的设计和较少的边缘情况)。
2. 已在共识层广泛使用。
3. 与现有 ABI 高度相似:工具适配相对简单。
已有向 SSZ 全面迁移的努力,我们应在规划未来升级时考虑并延续这些努力。
若从 EVM 迁移到 RISC-V(或其他可选的最小虚拟机),十六进制 Merkle Patricia 树将成为证明区块执行的最大瓶颈,即使在平均情况下也是如此。迁移到基于更优哈希函数的二叉树将显著提升证明器效率,同时降低轻客户端等场景的数据成本。
迁移时,应确保共识层使用相同的树结构。这将使以太坊的共识层与执行层可通过相同代码访问和解析。
简单性在许多方面类似于去中心化,二者均为韧性目标的上游。明确重视简单性需要一定的文化转变。其收益往往难以量化,而额外努力和放弃某些耀眼功能的成本却立竿见影。然而,随着时间推移,收益将愈发显著—— 比特币本身就是绝佳例证。
我提议效仿 tinygrad,为以太坊长期规范设定明确的最大代码行数目标,使以太坊共识关键代码接近比特币的简单性。处理以太坊历史规则的代码将继续存在,但应置于共识关键路径之外。同时,我们应秉持选择更简单方案的理念,优先选择封装复杂性而非系统性复杂性,并做出提供清晰属性和保证的设计选择。