+ W* f: Z4 L( ~& S& n. }构以进一步简化。目标是让以太坊共识关键代码接近比特币的简单性,提升韧性和参与度,需文化上重视简单性并设定最大代码行数目标。 8 F1 s& m4 `" n, F. f; S ) \0 \5 P9 S: O 以太坊的目标是成为全球账本:存储人类文明资产与记录的平台,服务于金融、治理、高价值数据认证等领域。这需要两方面的支持:可扩展性与韧性。Fusaka 硬分叉0 @7 y0 A" g* A |; W
2 g. Z( j2 [0 {5 @5 M9 u计划将 L2 数据的可用空间增加 10 倍,而当前提议的 2026 年路线图也计划为 L1 层带来类似的大幅提升。与此同时,以太坊已完成向权益证明(PoS)的过渡,客户端多样 $ x0 ]+ y5 [8 P% {6 E 7 G, ^) ]0 e: J& v( G性迅速提升,零知识(ZK)验证、量子抗性研究也在稳步推进,应用生态日益稳健。% w" S) p# w9 C' `# @/ m
" u2 N) u/ v; [* u5 T9 u
本文旨在聚焦一个同样重要却易被低估的韧性(乃至可扩展性)要素:协议的简单性。: _) r, I; v; ^+ n7 S, ]4 D
+ f; b! V( A$ x* R5 v/ e6 q' D4 G
比特币协议最令人赞叹之处在于其优雅的简洁性:6 T; H3 M2 P2 w# a/ |. E
) A! ], ~; M0 c: C
7 V, D/ Q# R I- u3 Y6 c
1. 存在一条由区块组成的链,每个区块通过哈希与前一区块相连。 6 N! P% K6 |2 f- Y- I 4 b4 e( {; i- J* A+ ?: c. d+ T 2. 区块的有效性通过工作量证明(PoW)验证,即检查哈希值的前几位是否为零。 7 x k3 H# }9 F0 F: w/ d % G l/ O. a7 h: v6 X3 G6 ?% t 3. 每个区块包含交易,交易花费的币要么来自挖矿奖励,要么来自之前的交易输出。* \* F4 T7 J) A! `
* \4 U9 P* _" S- V5 B
仅此而已!即便是一个聪明的高中生也能完全理解比特币协议的运作,而一个程序员甚至可以将其作为业余项目编写一个客户端。& H" J9 L: X% Z8 E: a+ L
& W) }7 v1 ?7 M m: M 协议的简单性为比特币(以及以太坊)成为可信、中立的全球基础层带来了诸多关键优势: # p$ H4 b0 I! `/ Q7 a5 w / @3 Q( i( f! ]: @; I3 Q4 n# k 1. 易于理解:降低协议的复杂性,让更多人能够参与协议研究、开发和治理,减少技术精英阶层主导的风险。! n! v! c& q# [) i4 b+ O) a
5 W% U1 w$ S6 I
2. 降低开发成本:简化协议大幅降低创建新基础设施(如新客户端、证明器、开发者工具等)的成本。6 t! D3 @% ]* W$ f0 ^
- f% ~4 a, l. u _& C4 E, m 3. 减少维护负担:降低长期协议维护的成本。 * h7 Z5 A, c0 J0 {1 o v& A2 _, w * _& l! \- g/ l# S# E; e/ D% M5 I 4. 减少错误风险:降低协议规范及实现中发生灾难性错误的可能性,同时便于验证不存在此类错误。( t/ K5 @3 [/ G3 ~
0 n3 f- u9 Q! p0 S 5. 缩小攻击面:减少协议的复杂组件,降低被特殊利益集团攻击的风险。 & _0 o7 n3 i9 C4 n' g, l9 Z1 z k) y7 u4 [
历史上,以太坊(有时因我个人的决策)常常未能保持简单,导致开发成本过高、安全风险增加以及研发文化的封闭性,而这些复杂性追求的收益往往被证明是虚幻的。 6 R; ]' m$ u- e* i: N2 c5 f / Q9 p' H/ G; f本文将探讨五年后的以太坊如何接近比特币的简单性。' Y8 s: I6 I. S/ r9 a% J
4 a7 t& f, r) m% X/ X 简化共识层0 ~* S% ]8 n0 [1 V! ]! b* g
8 M7 {" m+ D' O6 ^5 R. _ 5 t4 u. \. E5 m5 K3 \1 M. G
6 }# ?+ L- ]( w$ E
新的共识层设计(历史上称为 “信标链”)旨在利用过去十年在共识理论、ZK-SNARK 开发、质押经济等领域的经验,构建一个长期最优且更简单的共识层。2 y9 W, g: w* e; v7 l7 G! L% S
/ s* m9 }. F# I& f* V
相比现有信标链,新设计显著简化:8 Q/ k& f5 g' F
) v& p3 j! K$ H- h- s I$ n
1. 3-slot 最终性设计:移除槽(slot)、周期(epoch)、委员会重组等概念,以及相关的高效处理机制(如同步委员会)。 3-slot 最终性的基本实现仅需 " X, x' {, h, G/ K' R5 } ' \. e" T$ e& ~) D6 I约 200 行代码,且相比 Gasper,安全性接近最优。 : w! P1 w* y9 }, m' |/ j 0 \8 M1 q$ }6 O$ H7 } 2. 减少活跃验证者数量:允许使用更简单的分叉选择规则实现,增强安全性。1 b! N7 P8 U u* x; b2 |
4 L5 s/ f3 f5 w% |# V/ G4 E 3. 基于 STARK 的聚合协议:任何人都可成为聚合者,无需信任聚合者或为重复位域支付高昂费用。聚合密码学的复杂性较高,但其复杂性被高度封装, 0 {/ R. j6 _2 y+ T( ~ 7 b" p, }- C1 @% x系统性风险较低。' B' X! h Y9 }5 h( H3 R7 W2 w
$ Z* ~ o# @# S: G$ \8 v& w
4. 简化 P2P 架构:上述因素可能支持更简单、更稳健的点对点网络架构。6 V& @, ^. Q- T7 S( `, g# b
% p1 e, e/ a5 [! {7 {$ Y
5. 重新设计验证者机制:包括进入、退出、提款、密钥转换、 inactivity leak 等机制,简化代码行数并提供更清晰的保证(如弱主观性周期)。 6 o# A/ e3 |( \' E- G + d' j* u w4 N3 C4 _; n 共识层的优势在于其与 EVM 执行层相对独立,因此有较大空间持续改进。更大的挑战在于如何在执行层实现类似简化。 # p% S. P$ J- `3 \0 t! S# {" j 5 n# y4 D5 Z0 k3 x1 l1 ~' n 简化执行层0 R) D& X9 ^2 F8 R' h; ]" m* W
7 [3 M* P- b% a. u
EVM 的复杂性日益增加,且许多复杂性被证明无必要(部分因我个人决策失误):256 位虚拟机过度优化了如今已逐渐过时的特定密码学形式,预编译 ( q! r I' x- W4 X& A+ f0 E: q" a4 n$ L. c+ ~' P
(precompiles)为单一用例优化却鲜被使用。4 t$ l9 g+ t+ i
* O4 g5 l/ \) u( e8 e7 T3 H 逐一解决这些问题效果有限。例如,移除 SELFDESTRUCT 操作码耗费巨大努力,却仅带来较小收益。近期关于 EOF(EVM Object Format)的争论也显0 J0 h o+ v) ] O' r: ?6 K) u! p5 ~
# g2 @: ^; a0 h d
示出类似挑战。0 K! L8 ?' ^" |6 `1 r% h
# ^5 H/ C5 Z3 ~" b' _; T
我最近提出一个更激进的方案:与其对 EVM 进行中等规模(但仍具破坏性)的更改以换取 1.5 倍的收益,不如向一个更优、更简单的虚拟机过渡,以- X% f6 a+ B1 G4 _* X( T) ]
0 G( ^1 h6 U5 Z
实现 100 倍的收益。类似于 “合并”(The Merge),我们减少破坏性变更的次数,但使每次变更更具意义。具体而言,我建议将 EVM 替换为 RISC-V,或 X. x4 k; H4 ~, w/ W& U7 ~% Z0 d$ j4 D v1 x6 [: x
以太坊 ZK 证明器使用的另一种虚拟机。这将带来:: _; E! z7 g* w9 P! c
, R0 G" X9 g; s, f; D+ Y. U 1. 效率大幅提升:智能合约执行(在证明器中)无需解释器开销,直接运行。Succinct 的数据显示在许多场景下性能可提升 100 倍以上。 3 J- e" |$ {! T% ?( Z" ?! s % W3 h( T, }. p$ S 2. 简单性大幅改进:RISC-V 规范相比 EVM 极其简单,替代方案(如 Cairo)同样简洁。 ' t/ }: {; I* }8 }* x, \2 P ]6 O H& Z/ C$ w5 Y. u. C
3. 支持 EOF 的动机:如代码分区、更友好的静态分析、更大代码大小限制等。 ' N) y7 w; n/ e$ s5 d# L" t7 N# g* O' H8 ^
4. 更多开发者选择:Solidity 和 Vyper 可添加后端以编译到新虚拟机。若选择 RISC-V,主流语言开发者也能轻松将代码移植到该虚拟机。 1 D! C, y3 @( @. x( R4 t' B+ h# g& X! w8 M! G
5. 移除大部分预编译:可能仅保留高度优化的椭圆曲线操作(量子计算机普及后连这些也将消失)。6 d$ x" o+ l8 O4 |1 b
; ]- z7 A% f- t1 V' g
主要缺点是,与已准备就绪的 EOF 不同,新虚拟机的收益需较长时间惠及开发者。我们可通过短期实施高价值的 EVM 改进(如增加合约代码大小限制、/ d% v# Q0 X8 C9 K, k2 A% R, f
- ~7 x; H% \8 `$ o* Y+ R" w% p
支持 DUP/SWAP17–32)来缓解这一问题。; Y0 {, [% O: k% T V
1 S, H$ [, p u# x( M
这将带来更简单的虚拟机。核心挑战在于:如何处理现有的 EVM?- T+ w6 {* e- u6 g' ]/ B" ] g8 f
( Z7 M( h8 X* N# f: a) [9 p% | 虚拟机过渡的向后兼容策略# |8 M8 L! [: d# X
! \5 b/ q5 ^' `, _6 u
简化(或在不增加复杂性的前提下改进)EVM 的最大挑战在于如何平衡目标实现与现有应用的向后兼容性。 3 I4 I7 S2 {: V# E" x; y" ] R ?7 H2 _, J* u! w" d
首先需要明确:以太坊代码库(即使在单一客户端内)并非只有一种定义方式。. E+ M& V6 ?" r* `5 p& G* S! O
. l# Y1 x7 f$ \. g 5 Q2 v: e% t _4 V* S 目标是尽量缩小绿色区域:节点参与以太坊共识所需的逻辑,包括计算当前状态、证明、验证、FOCIL(分叉选择规则)及 “普通” 区块构建。* g+ O8 Z! O/ F# N8 ~
+ V( E3 \3 ]6 Y0 l 橙色区域无法减少:若协议规范移除或更改某执行层功能(如虚拟机、预编译等),处理历史区块的客户端仍需保留相关代码。但新客户端、ZK-EVM 或 7 r2 G/ H$ n; R7 B5 h7 I$ R& j( z' {. i. s8 x3 d
形式化证明器可完全忽略橙色区域。 / K. N9 }* f+ {' E; o7 L . |; r0 @; _3 Y% d- \" x+ m 新增的HS区域:对理解当前链或优化区块构建非常有价值,但不属于共识逻辑。例如,Etherscan 及部分区块构建者支持 ERC-4337 用户操作。若我们 2 Q0 l* s& n8 }: A& ` ( q& Y. S* c. T% L. [- d% k用链上 RISC-V 实现替换某些以太坊功能(如 EOA 及其支持的旧交易类型),共识代码将显著简化,但专用节点可能继续使用原有代码进行解析。 3 M0 M' k! z: R0 F+ b8 \ 9 G* ~1 a! D' n+ L7 i4 b( {, Z 橙色和HS区域的复杂性是封装复杂性,理解协议的人可跳过这些部分,以太坊实现可忽略它们,这些区域的错误不会引发共识风险。因此,橙色和HS区 - Z/ y4 S1 Z8 v5 e( { + D+ y( S+ ?4 L9 e% R) ]9 g域的代码复杂性远比绿色区域的复杂性危害小。 6 D N2 |1 b7 M- Q6 ?3 ^ $ ]" d* B3 d+ X+ A2 N& z9 W' E' F7 R 将代码从绿色区域移至HS区域的思路,类似于苹果通过 Rosetta 翻译层确保长期向后兼容的策略。. b! s3 n+ o) A0 p/ R
8 q+ Q8 n( P. z1 k2 v
1. 要求新预编译提供链上 RISC-V 实现:让生态系统逐步适应 RISC-V 虚拟机。 8 {3 J0 P0 X) U; f+ `6 W0 b1 p. u m$ u' N# |3 M) E* _
2. 引入 RISC-V 作为开发者选项:协议同时支持 RISC-V 和 EVM,两种虚拟机的合约可自由交互。; @9 F6 l5 i% }) K
0 }, f+ F% G" f
3. 替换大部分预编译:除椭圆曲线操作和 KECCAK(因需极致速度)外,用 RISC-V 实现替换其他预编译。通过硬分叉移除预编译,同时将该地址的代码 2 S% `4 d3 S( P3 X" w7 O& {- X
(类似 DAO 分叉)从空更改为 RISC-V 实现。RISC-V 虚拟机极其简单,即使在此止步也净简化协议。 + ~9 R* L; Z; q+ l4 U$ w6 q+ _! p' P4 S6 R& v( G! `/ @
4. 在 RISC-V 中实现 EVM 解释器:作为智能合约上链(因 ZK 证明器需要已进行)。在初始发布数年后,现有 EVM 合约通过该解释器运行。 - Q9 r% G+ J! i$ t5 l; L5 r. s( j z$ E; W E# h' j9 n7 v' k. |% a1 e
* }$ z+ ?8 h" @3 o M$ F; u2 U 完成第 4 步后,许多 “EVM 实现” 仍将用于优化区块构建、开发者工具和链分析,但不再是关键共识规范的一部分。以太坊共识将 “原生地” 仅理解 RISC-V。 # T B8 N, W4 a* n; D6 ^ / q6 F) P0 c, e/ T0 X2 J 通过共享协议组件简化 m+ K4 M( e% u* R. W+ I' W* i& y3 {1 }* ]2 O
降低协议总复杂度的第三种方式(也最易被低估)是尽可能在协议栈的不同部分共享统一标准。不同协议在不同场景下做相同的事情通常毫无益处,但这种 % `% H. n" f; N; o% \* w $ g2 T% Y! {/ N' i R模式仍常出现,主要是因为协议路线图的不同部分缺乏沟通。以下是几个通过共享组件简化以太坊的具体示例。7 W# `' Y! e# ?0 d* f
8 ` k) }! x9 x# Y" ~( j 统一纠删码6 I) f; \) [3 Z* G& g- i9 Z7 Q
( H- c7 @" U: J
1 D0 ]. d2 w# S% {5 I) g
我们在三个场景中需要纠删码:0 y; H3 i" |6 b# E' f% I8 V7 |7 c
% n* W& z8 f8 B' F+ y
1. 数据可用性采样:客户端验证区块已发布。 ' Z; B0 F+ e2 u9 w r% \9 J2 ? # J( v Z0 w' o4 ~: a 2. 更快的 P2P 广播:节点接收 n/2 个片段后即可接受区块,在延迟与冗余间取得平衡。3 q! a4 Z* I; O8 H
8 ?2 h' u5 s# F% e, m
3. 分布式历史存储:以太坊历史数据分片存储,每组 n/2 个片段可恢复其余片段,降低单一片段丢失风险。 % n0 T1 a; ^% {! H ; W7 m1 p1 x: z$ W9 D- l 若在三种场景中使用同一纠删码(无论是 Reed-Solomon、随机线性码等),将获得以下优势:- T T- x8 Q3 G: D
8 x4 W x+ W6 d* y; {
1. 最小化代码量:减少总代码行数。$ t% k" Y3 o. r. U
+ A6 E( p: O5 y* W& Y+ T 2. 提高效率:若节点为某场景下载部分片段,这些数据可用于其他场景。 ) J( \/ j* Q5 a8 l 7 _# @- _: a$ C$ B, R8 ] 3. 确保可验证性:所有场景的片段均可根据根验证。 w& U- r. T9 q; Q# p 8 e: q( g9 D0 ?( h) R 若使用不同纠删码,至少应确保兼容性,例如数据可用性采样的水平 Reed-Solomon 码与垂直随机线性码在同一域操作。8 j1 V/ L1 P: k) i9 m+ s
/ P5 d; i: t' m: C, \ 统一序列化格式5 H% O( t" e7 }. x. ~
& S* g* }- L7 }& Q5 M' f+ X! g
2 ~: H! q# {4 F- F! v( G) k
以太坊的序列化格式目前仅部分固化,因数据可按任意格式重新序列化和广播。例外是交易签名哈希,需规范格式进行哈希。未来,序列化格式的固化程' n$ e) t. F' L3 f% F) k
1 Y0 z; H9 B, L
度将因以下原因进一步提高: / l$ m! t# V: }+ l& v$ P# G! C4 E, H7 f% I
1. 完全账户抽象(EIP-7701):交易完整内容对虚拟机可见。 8 `& L+ }% t3 d% Z5 m6 i9 W6 e/ A$ ~" Q) r
2. 更高的 Gas 限制:执行层数据需放入数据块(blobs)。1 @% s4 b/ o7 t/ C8 K5 n
, J# X9 ~: J! h# I
届时,我们有机会统一以太坊三个层级的序列化格式:执行层、共识层、智能合约调用 ABI。- C$ b& L# e: q5 d5 s
: G% ~, D% P! y5 n
我提议使用 SSZ,因为 SSZ:* d5 J; d' e& x9 n$ _( I, T
# M& \" E+ }, U2 ]. Y! L! a 1. 易于解码:包括在智能合约内(因其基于 4 字节的设计和较少的边缘情况)。& w3 d( N# Y$ `2 Y
7 A9 m3 E8 Z' n5 A! q4 A. l
2. 已在共识层广泛使用。' K& C! l1 f$ p& o& K, s
: d- E( L8 K. i. e* Q 3. 与现有 ABI 高度相似:工具适配相对简单。# l8 Z# K! c; t3 E
5 m3 L! A/ X, m, w, ?4 ?7 c* y 已有向 SSZ 全面迁移的努力,我们应在规划未来升级时考虑并延续这些努力。& a6 j9 P% V. O* ?" ~$ P# ~- C
1 H5 R. x, O* H% s# Z. L 统一树结构 5 n/ I5 y4 P- { B3 Q2 A m 7 W9 J; ~; ^% ^ ` S5 s* S. x, M$ X& F% a
若从 EVM 迁移到 RISC-V(或其他可选的最小虚拟机),十六进制 Merkle Patricia 树将成为证明区块执行的最大瓶颈,即使在平均情况下也是如此。迁移 0 X7 D) l1 a" I6 ]$ w# h2 n9 V! X' A- F% J1 ?
到基于更优哈希函数的二叉树将显著提升证明器效率,同时降低轻客户端等场景的数据成本。 : _ r u* `" [- e* r: x B0 H, b0 P" Q5 |' e3 L
迁移时,应确保共识层使用相同的树结构。这将使以太坊的共识层与执行层可通过相同代码访问和解析。. n( O X! ?( M4 w; @
* ]1 @( v, @1 O. t; P4 `- ]/ P, W
从现在到未来 6 e% h' X; t$ q8 U $ c- N5 ^- G4 \( b: W& P( x1 W- C 简单性在许多方面类似于去中心化,二者均为韧性目标的上游。明确重视简单性需要一定的文化转变。其收益往往难以量化,而额外努力和放弃某些耀眼功 " e* e7 \, w2 ?/ \$ a) p) L- U 2 F! R, w$ u! A) O$ m能的成本却立竿见影。然而,随着时间推移,收益将愈发显著 — — 比特币本身就是绝佳例证。* Y5 }# L' o9 z
& F5 L2 V" Q5 {# E
我提议效仿 tinygrad,为以太坊长期规范设定明确的最大代码行数目标,使以太坊共识关键代码接近比特币的简单性。处理以太坊历史规则的代码将继续存- M. g% M* f0 j, g" {; g4 B
3 Y: j0 d9 k2 h) ]- W4 ?
在,但应置于共识关键路径之外。同时,我们应秉持选择更简单方案的理念,优先选择封装复杂性而非系统性复杂性,并做出提供清晰属性和保证的设计选择。 1 [* B5 z# p9 o0 u2 M& W5 v8 f# P# g* L! Q8 y5 t+ K5 R/ ?" i