4 Q* V8 ^) j9 h3 f0 y7 ~# } 以太坊的目标是成为全球账本:存储人类文明资产与记录的平台,服务于金融、治理、高价值数据认证等领域。这需要两方面的支持:可扩展性与韧性。Fusaka 硬分叉 $ |6 D T7 I l6 V9 ^7 d. C : X. e1 j1 B+ a c2 R6 L- V计划将 L2 数据的可用空间增加 10 倍,而当前提议的 2026 年路线图也计划为 L1 层带来类似的大幅提升。与此同时,以太坊已完成向权益证明(PoS)的过渡,客户端多样# H5 T0 J. F' ~; a' N$ v, @
, z+ S9 W$ Q- V: j
性迅速提升,零知识(ZK)验证、量子抗性研究也在稳步推进,应用生态日益稳健。 $ p3 z4 J9 M! d3 B( p3 _" R9 U 6 x5 ~/ b$ ], R% v) b3 V 本文旨在聚焦一个同样重要却易被低估的韧性(乃至可扩展性)要素:协议的简单性。 ' f7 i( m' W: b' y0 ~1 x - W0 y* p# ~; u6 e' K 比特币协议最令人赞叹之处在于其优雅的简洁性:# d9 X+ ~7 K4 [6 ]
; L! i! r' b5 {2 d! Q% ^+ K
+ W1 e2 Y4 B8 d1 J$ m
1. 存在一条由区块组成的链,每个区块通过哈希与前一区块相连。. Q8 N9 q4 R3 u; m
9 p: i2 ^( K3 X" Z 2. 区块的有效性通过工作量证明(PoW)验证,即检查哈希值的前几位是否为零。 ; m; S; f) A3 H6 ^/ {/ g9 u. d4 k
3. 每个区块包含交易,交易花费的币要么来自挖矿奖励,要么来自之前的交易输出。 5 q( o) m* q8 R; ]: ~6 b; A! A; |7 l u* c9 j
仅此而已!即便是一个聪明的高中生也能完全理解比特币协议的运作,而一个程序员甚至可以将其作为业余项目编写一个客户端。: _6 D* M- e# f6 p9 J
, V4 Y. @2 F% a 协议的简单性为比特币(以及以太坊)成为可信、中立的全球基础层带来了诸多关键优势: 3 b6 Y% `3 d: K2 T! z: |! m) b5 d t/ z! l* F3 }6 a h
1. 易于理解:降低协议的复杂性,让更多人能够参与协议研究、开发和治理,减少技术精英阶层主导的风险。$ M+ J% i: @ s$ Y
& o7 g$ d9 [! P% B
2. 降低开发成本:简化协议大幅降低创建新基础设施(如新客户端、证明器、开发者工具等)的成本。 ) \) S' k4 [7 ^7 C& C/ ?1 B$ a& @" @2 X
3. 减少维护负担:降低长期协议维护的成本。0 `& A# h3 c' x: I& O' _ P
" G7 t7 ~* V& A- C4 I/ H' X 4. 减少错误风险:降低协议规范及实现中发生灾难性错误的可能性,同时便于验证不存在此类错误。 0 e" |. k/ K2 ?4 o& x5 S, I " j: {3 a0 P/ v! W: [, j0 \+ F | 5. 缩小攻击面:减少协议的复杂组件,降低被特殊利益集团攻击的风险。 + T+ p* O! z6 k: O# ~$ x% m5 H- R5 X- S* B
历史上,以太坊(有时因我个人的决策)常常未能保持简单,导致开发成本过高、安全风险增加以及研发文化的封闭性,而这些复杂性追求的收益往往被证明是虚幻的。. |# w: P6 C- A) {( M+ ?
3 i0 d7 P2 v/ \) ~0 Z1 I
本文将探讨五年后的以太坊如何接近比特币的简单性。6 K ] g3 M( f, I0 E
9 D' a4 Z. ~ b3 ?7 H2 T 简化共识层 9 H9 ]9 J+ I! r7 v# z. M0 J; F i8 D T! @9 e , h- y* `$ G5 a) g p& g8 D4 m2 B: a6 `! o. j" p) ?0 z, G
新的共识层设计(历史上称为 “信标链”)旨在利用过去十年在共识理论、ZK-SNARK 开发、质押经济等领域的经验,构建一个长期最优且更简单的共识层。7 M$ D! X% y) x l$ q. `2 d
& Q$ ~- b4 S! A% h8 i+ E, L' r 简化执行层5 P, x! ]2 O; A' q% u6 B+ ^8 k
8 V4 | g8 T8 | EVM 的复杂性日益增加,且许多复杂性被证明无必要(部分因我个人决策失误):256 位虚拟机过度优化了如今已逐渐过时的特定密码学形式,预编译 & E; h( T4 T$ W# U# ?: {0 }6 W7 Z+ m. L
(precompiles)为单一用例优化却鲜被使用。( \% o9 r* a' j @" z8 N
. Q; C+ r* v/ Y5 c7 R3 R
逐一解决这些问题效果有限。例如,移除 SELFDESTRUCT 操作码耗费巨大努力,却仅带来较小收益。近期关于 EOF(EVM Object Format)的争论也显/ }! B! f3 ]3 d
* x4 o- y; K) c+ z8 v1 U. g1 _示出类似挑战。 : _- m# L# g X0 A& n: _ c7 j4 ]+ q" T
我最近提出一个更激进的方案:与其对 EVM 进行中等规模(但仍具破坏性)的更改以换取 1.5 倍的收益,不如向一个更优、更简单的虚拟机过渡,以 - {. L- n3 \/ g2 ] ( ^. o4 }5 u( _7 O实现 100 倍的收益。类似于 “合并”(The Merge),我们减少破坏性变更的次数,但使每次变更更具意义。具体而言,我建议将 EVM 替换为 RISC-V,或 / Y& K1 v" }. V! u ; O% f" G4 w( f% f以太坊 ZK 证明器使用的另一种虚拟机。这将带来: L% [! s) E, o; `8 {
5 Y4 [/ z; W/ r! @$ W1 `
1. 效率大幅提升:智能合约执行(在证明器中)无需解释器开销,直接运行。Succinct 的数据显示在许多场景下性能可提升 100 倍以上。/ K5 T" ?3 \ K4 W8 b0 T
7 x8 l9 B' i$ v( e
2. 简单性大幅改进:RISC-V 规范相比 EVM 极其简单,替代方案(如 Cairo)同样简洁。 " U, A/ ?4 H/ e3 ]( p# b ' i! J, T0 W) |' U4 |# C0 a 3. 支持 EOF 的动机:如代码分区、更友好的静态分析、更大代码大小限制等。; q2 l. o6 _ o& S5 K; p, j: b, N
/ I9 }; B) T' \! [# I
4. 更多开发者选择:Solidity 和 Vyper 可添加后端以编译到新虚拟机。若选择 RISC-V,主流语言开发者也能轻松将代码移植到该虚拟机。, l _; L& i4 w( q( f
9 J. ~/ U" a5 L4 g- w 5. 移除大部分预编译:可能仅保留高度优化的椭圆曲线操作(量子计算机普及后连这些也将消失)。) |6 B B( z( Z
8 Y- V5 `2 G9 M1 [% x
主要缺点是,与已准备就绪的 EOF 不同,新虚拟机的收益需较长时间惠及开发者。我们可通过短期实施高价值的 EVM 改进(如增加合约代码大小限制、 ' d0 X7 O# v# |+ S, Q& H$ n2 \8 ]! y3 [
支持 DUP/SWAP17–32)来缓解这一问题。1 [" a, Q+ R, I. |" n( E, h2 a
: _6 g: p" S0 F1 p: G5 x C 这将带来更简单的虚拟机。核心挑战在于:如何处理现有的 EVM? : s3 t; t$ J) K2 u * S# U- _& Y) Z% k 虚拟机过渡的向后兼容策略( K: ?& ~" w5 v* R- Z
. U0 e+ v1 m. X% c
简化(或在不增加复杂性的前提下改进)EVM 的最大挑战在于如何平衡目标实现与现有应用的向后兼容性。 M ^; f1 P# @8 Y' O0 s. q* p1 {" i9 t& H- w7 f
首先需要明确:以太坊代码库(即使在单一客户端内)并非只有一种定义方式。4 D8 N, Q% a4 s& k
& ~) Z. Q! G7 y; ~+ }. |" K7 S4 q
目标是尽量缩小绿色区域:节点参与以太坊共识所需的逻辑,包括计算当前状态、证明、验证、FOCIL(分叉选择规则)及 “普通” 区块构建。8 o, _: o: t, v. i0 m e- ?) f
- v% a2 p5 q5 e, Z% f 橙色区域无法减少:若协议规范移除或更改某执行层功能(如虚拟机、预编译等),处理历史区块的客户端仍需保留相关代码。但新客户端、ZK-EVM 或 ( M4 y- Z) Z' e; t ( Q! p- C( t0 A: Y; |形式化证明器可完全忽略橙色区域。- }" n3 q3 p' J' [
/ n2 P6 g$ i" U) R! l
新增的HS区域:对理解当前链或优化区块构建非常有价值,但不属于共识逻辑。例如,Etherscan 及部分区块构建者支持 ERC-4337 用户操作。若我们 8 P' z u6 m2 M$ X2 ~/ H7 t: N) A2 u- N7 t/ h) H4 Y
用链上 RISC-V 实现替换某些以太坊功能(如 EOA 及其支持的旧交易类型),共识代码将显著简化,但专用节点可能继续使用原有代码进行解析。 " a/ W. U; k3 s! U( i0 J* u 9 Z- j7 A' P( k0 \/ g! W5 g" A 橙色和HS区域的复杂性是封装复杂性,理解协议的人可跳过这些部分,以太坊实现可忽略它们,这些区域的错误不会引发共识风险。因此,橙色和HS区 & X. t" `+ G: x2 ?8 @0 H ; i9 d( C" I' B+ W+ X5 T! w域的代码复杂性远比绿色区域的复杂性危害小。# [/ F: e& y* ^
- M5 b% d2 S5 |( u ?8 Z
将代码从绿色区域移至HS区域的思路,类似于苹果通过 Rosetta 翻译层确保长期向后兼容的策略。' i& O8 Z0 z5 ]) ? X! f. F
9 w+ {7 d4 I2 r e& j! M
1. 要求新预编译提供链上 RISC-V 实现:让生态系统逐步适应 RISC-V 虚拟机。 } t6 H' K4 t ^
6 w% z, N: ]* L
2. 引入 RISC-V 作为开发者选项:协议同时支持 RISC-V 和 EVM,两种虚拟机的合约可自由交互。3 o+ K: V, B0 W+ o
6 `3 y4 v a/ Q 3. 替换大部分预编译:除椭圆曲线操作和 KECCAK(因需极致速度)外,用 RISC-V 实现替换其他预编译。通过硬分叉移除预编译,同时将该地址的代码2 t% X) u4 X7 R0 P
7 m* D8 t6 |! o: l, s
(类似 DAO 分叉)从空更改为 RISC-V 实现。RISC-V 虚拟机极其简单,即使在此止步也净简化协议。" b% B' Z. F3 ^- v1 R- l- C# _ ]
& v$ [* s1 u5 y7 `' b; T9 [4 |
4. 在 RISC-V 中实现 EVM 解释器:作为智能合约上链(因 ZK 证明器需要已进行)。在初始发布数年后,现有 EVM 合约通过该解释器运行。 " j u' {, I( E! L' Y |; Z) m) h* S5 P X n& {( \
% |1 T5 p# ?* y4 r1 b c 完成第 4 步后,许多 “EVM 实现” 仍将用于优化区块构建、开发者工具和链分析,但不再是关键共识规范的一部分。以太坊共识将 “原生地” 仅理解 RISC-V。 8 w/ t! l6 F4 `; {0 C2 I7 \- K 0 Z1 e4 i: f- L 通过共享协议组件简化: {' c% l. C! J3 I
5 f' ~' m% `; }+ Z) n/ k# K
降低协议总复杂度的第三种方式(也最易被低估)是尽可能在协议栈的不同部分共享统一标准。不同协议在不同场景下做相同的事情通常毫无益处,但这种" ]* f& R& J' q8 |( T; t5 h$ F
2 W$ |1 s" p1 z2 o, `1 h5 W模式仍常出现,主要是因为协议路线图的不同部分缺乏沟通。以下是几个通过共享组件简化以太坊的具体示例。( @+ A" S) c. \8 ?) F2 G4 R
2 H$ j# Y+ r- d 统一纠删码, T/ [' H: \! G
- l' s# g& Q$ m0 j1 o+ d: h7 M' M/ ?, b/ m, P( A
我们在三个场景中需要纠删码: 2 N! r! @1 I2 b% }0 V2 N9 y; C L
1. 数据可用性采样:客户端验证区块已发布。 % u. |' I# c, i: [9 u' V8 v; c1 ?% i3 M) q: W9 b
2. 更快的 P2P 广播:节点接收 n/2 个片段后即可接受区块,在延迟与冗余间取得平衡。6 x& t) S* n) p& G) {9 K
5 b4 J# N# K; I5 D* _
3. 分布式历史存储:以太坊历史数据分片存储,每组 n/2 个片段可恢复其余片段,降低单一片段丢失风险。9 ]8 P9 q1 N3 `9 D
% F8 L7 y0 |5 P% m" |2 x
若在三种场景中使用同一纠删码(无论是 Reed-Solomon、随机线性码等),将获得以下优势:6 _1 p2 O! o6 w! B
2 L" Y2 Z8 M, H$ R; F
1. 最小化代码量:减少总代码行数。 ; @( V5 A: P6 Q* d! t+ X' ]; ~& e6 G* K
2. 提高效率:若节点为某场景下载部分片段,这些数据可用于其他场景。 , t8 c u+ g$ b( ^/ a! u0 y1 z8 s( |8 S$ @9 [
3. 确保可验证性:所有场景的片段均可根据根验证。1 v8 \6 {7 ]2 O7 w8 O( M, G9 q* \
3 u1 O0 ^0 }. _
若使用不同纠删码,至少应确保兼容性,例如数据可用性采样的水平 Reed-Solomon 码与垂直随机线性码在同一域操作。' y" u' T8 ^# H
" B2 [0 c$ N. w3 z 统一序列化格式- X. N6 O+ ]4 d l% ~ Y* Z& D
+ _+ M# L2 r: p2 [3 }% U
7 J6 Z& ?( h1 ~* J, K3 D4 p/ K 以太坊的序列化格式目前仅部分固化,因数据可按任意格式重新序列化和广播。例外是交易签名哈希,需规范格式进行哈希。未来,序列化格式的固化程0 _/ ^$ f+ N5 B5 P3 U
" x# g* `& b) L1 G
度将因以下原因进一步提高:, O: U# ~4 D$ J$ F9 w% L5 h
5 z. Q" _% A: ^: h
1. 完全账户抽象(EIP-7701):交易完整内容对虚拟机可见。 3 P: ^1 o2 n: ~6 ?/ v8 V $ J# V& E) Y1 N8 L% u5 d 2. 更高的 Gas 限制:执行层数据需放入数据块(blobs)。 8 a3 Q6 ^" [4 d7 }& B: k8 |6 [2 @ q3 \ A! M2 k0 {/ v2 T: x s) v" v
届时,我们有机会统一以太坊三个层级的序列化格式:执行层、共识层、智能合约调用 ABI。 ( A( K& ?+ e7 c b, g) K, e8 o / m8 J' q0 k/ V+ l: T 我提议使用 SSZ,因为 SSZ:5 Z" d9 g+ Q2 X$ v* w. |- ?0 z% V
: n( C; k" j- w+ R, I
1. 易于解码:包括在智能合约内(因其基于 4 字节的设计和较少的边缘情况)。& `. n4 Q- F# B# s! u i" X7 |# |
% N5 ^3 z1 q t: Z 2. 已在共识层广泛使用。4 L' Z% p/ @4 X& a/ n1 {6 q6 a
: i, G' c( E1 [3 Q
3. 与现有 ABI 高度相似:工具适配相对简单。& ~, H6 B5 |8 |' h' Q! n8 V2 D( t
$ p) U- I7 F& J7 l 已有向 SSZ 全面迁移的努力,我们应在规划未来升级时考虑并延续这些努力。- p* ?. ^4 ]+ r7 i
3 C, w4 D( d. N& D+ _+ C X
统一树结构 / E3 A) Z; f* ^: c. o* E 1 W7 A' S9 W j3 `4 N 7 t: s( l# Y% F; V- O* S; [, U 若从 EVM 迁移到 RISC-V(或其他可选的最小虚拟机),十六进制 Merkle Patricia 树将成为证明区块执行的最大瓶颈,即使在平均情况下也是如此。迁移 1 k* X1 o) G* ^% o : J7 w$ T2 L8 ^! p$ a到基于更优哈希函数的二叉树将显著提升证明器效率,同时降低轻客户端等场景的数据成本。. J+ L ?: Z2 T2 [# }
# z; |5 k2 g- R% Y" T' c 迁移时,应确保共识层使用相同的树结构。这将使以太坊的共识层与执行层可通过相同代码访问和解析。$ i4 a* O& v/ n" y