Verkle 树是什么?状态树重构与无状态客户端的路线图 图 1
Verkle 树是什么?状态树重构与无状态客户端的路线图 · 图 1

以太坊的状态(账户余额、合约存储)存在一棵 Modified Merkle Patricia Trie 里,每个证明都要沿着树的形状逐级出示节点(结构原理见 什么是 Patricia Trie?以太坊状态树怎么存)。这棵树工作得很好,但它的证明尺寸随树高与分支路径浮动。Verkle 树是替换它的多年设想:让证明更接近恒定大小,为无状态客户端铺路。

数据结构:从逐格出示到向量承诺

Verkle 树把 Merkle 树“哈希层层上垒”的方式换成多项式向量承诺:每个内部节点是一组值的承诺,证明某格(或几格)的值只需出示该承诺下的小规模-opening,不必重放整条路径上的兄弟节点哈希。对以太坊最关心的一维状态来说,效果直观——包含证明不再随树的大小与形状涨,路径上的“沿途带兄弟”变成“按常数级承诺核算”。Merkle-Patricia Trie 的兄弟路径式证明在轻客户端、跨链桥、储备核验里服役多年(默克尔证明的应用面见 跨链桥是怎么被攻破的?案例里的共同结构邻近与 储备证明默克尔树怎么查? 类专题),换树意味着这些系统的验证代码要整体重写,这也是讨论它时最常出现的一句话:概念清晰,工程量巨大。

为什么绑着无状态客户端

以太坊路线图里,Verkle 的出现场景是无状态化:执行交易的人(未来的无状态验证者)不常驻状态库,交易随身带 witness,验证者对着最新状态承诺核对 witness(状态可丢弃与复活的思想谱系见 状态过期(State Expiry)是什么?账户会不会到期)。这条链路的瓶颈正是证明:若每格证明携带整条路径,witness 尺寸抵消无状态的全部收益;证明接近恒定,witness 才能被交易“随身带”。因此以太坊的路标文档长期把 Verkle 列为路线图组件,同时明确其非承诺属性——具体进展以其当前路标与已定级的 EIP 为准,本文不给出启用时间表。

为什么一再延期

第一是迁移问题:一棵跑着数百万账户的树要在线换骨架,历史上从有序存储到 MPT 的整理已属大工程,换承诺方案的风险等级更高;第二是替代路径的竞争:状态静态租金、无状态的其他实现思路、历史过期类方案(见 EIP-4444 历史过期是什么?节点为什么可以不存全部历史)分流了工程优先级;第三是承诺方案本身的选型波动:向量承诺的参数选择、抗量子考量都会触发重新评估。结论要诚实地两句话:学界对 Verkle 的收益没有争议,工程界对它“值不值得现在付迁移风险”没有共识。

快速问答

  • “现在能用上吗?“以太坊主网的状态承诺仍是 Patricia Trie(以当前官方文档为准);研究网或客户端实验的进度请以官方仓库为准,不要把演示环境读成现状。
  • “它和 KZG 什么关系?“KZG 是另一种多项式承诺(以太坊用它的方向是 blob 验证,见 以太坊 Blob 数据费怎么理解?);两者同属向量承诺思路但参数与信任设置不同,状态树最终采用哪种承诺方案,以官方提案文本为准。
  • “比特币有对应话题吗?“比特币生态的压缩累加器研究(如 UTXO 集合承诺类提案)解决类似痛点但路线独立,两者不宜混谈。
  • “对我的钱有影响吗?“属于节点与协议内部数据结构演进,账户余额与交易语义不变;它改变的是“证明你是谁的状态”的方式与成本。

常见误区

  • 误区一:把 Verkle 读成“以太坊要换数据库”。它换的是状态承诺结构,存储布局是另一层工程。
  • 误区二:把路线图当发布时间表。路标文档自述为非承诺性质,引用进度只引用路标当前页与 EIP 状态字段。
  • 误区三:认为换树自动带来轻客户端爆发。轻客户端还依赖同步协议与分叉选择的可验证性(见 Gasper 分叉选择是什么?LMD-GHOST 与 Casper FFG 怎么分工),数据结构的证明成本只是其中一环。

小结

Verkle 树的故事是“正确的数据结构,昂贵的换树时机”:证明接近恒定对无状态是真收益,但迁移风险与替代路线把它压在路线图上一再排队。它教会读者的通用一课:区块链的底层承诺结构是地基级资产,任何“更好”都要先过“迁移安全”这一关。

风险提示:本文不构成投资建议。路线图与提案状态持续变化,请以官方文档为准。