Verkle 树:以太坊迈向无状态客户端的关键技术

·

Verkle 树(Vector commitment + Merkle tree 的缩写)是一种新型数据结构,能把以太坊节点从“必须保存超大体量状态数据”的束缚中解放出来,同时具备验证区块所需的全部功能。它以极小的带宽代价,把计算复杂度转移到密码学证明上,为无状态客户端扫平最大的技术障碍。

为什么选择无状态架构

以太坊节点每 12 秒就要完成一次区块验证。传统模式下,同步节点必须把完整的 状态 trie 存本地硬盘,耗时、占盘、耗内存,还让节点入门门槛居高不下。若想让手机、嵌入式设备,甚至浏览器插件都能直接验证区块链,就必须:

  1. 把“需要的数据”而非“全部数据”传递给客户端;
  2. 保证这小包数据(即 witness)足够小,12 秒内能飞完整个 P2P 网络。

这正是无状态客户端(stateless clients)的核心诉求。Verkle 树通过全新的树结构 + 多项式承诺,把 witness 体积从数百 KB 压缩到不足 10 KB,最直观地解决了“大区块伴生大见证”的难题。

👉 想了解下一轮技术迭代如何影响你的链上体验?

见证(witness)到底是什么?

验证区块本质上是把区块里的交易重新跑一遍,计算执行后 新的根哈希。节点要能确认根哈希匹配,就要“读到”所需的状态片段。见证 = 片段 + 证明:

若无法快速下载完整 witness,节点大概率会错过下一块,形成“快网赢、慢网输”的中心化倾向。普通 Merkle 见证需要遍历大量兄弟节点、哈希层、分支路径,数据量巨大。Verkle 树通过“变浅树层 + 多项式承诺”,消除了路径冗余,使见证固定 400~500 字节即可覆盖整个证明需求。

Polunomial Commitment:让见证体积跟叶子多少无关

Verkle 树的杀手锏是将“多点验证问题”表达为“单多项式在某点的取值”。也就是说,不论你要访问 1 个还是 5,000 个叶子,证明始终是一条固定大小的多项式承诺:

结果:witness 结构只有 48 B 承诺 + 48 B 证明,几乎与区块内交易数量、状态大小脱钩。

👉 抢先体验如何用更低硬件门槛连接以太坊未来网络

Verkle 树的“瘦身”结构

Verkle 树为 key 分配 32 B,拆成 31 B stem(主干) 与 1 B suffix(后缀)。由此形成两类节点:

与传统 64 层深的十六叉 Merkle trie 相比,Verkle 树的深度仅 5~6 层。深度压缩意味着任何两个叶子到达根节点的公共前缀更短,做证明时只需公开极少量的“树边”信息,进而大幅减少见证字节。

举个小例子

原来 Merkle trie 需要 log₁₆(2²⁵⁶) ≈ 64 层,每层还要带上 15 个兄弟哈希;Verkle 树仅需 log₂₅₆(2²⁵⁶) = 1 层密码多项式即可满足完整性,省下的 63 层节点及其兄弟哈希全部舍弃。

FAQ:关于 Verkle 树你关心的 5 个问题

Q1:Verkle 树上线后主网 Gas 会降低吗?
A:短期内不会直接影响 Gas,但节点 IO 下降后,将来可通过后续提案(EIP-4444、PBS 等)整体降低数据可用性成本,最终用户费用会间接受益。

Q2:普通钱包是否需要额外信任第三方来提供 witness?
A:不需要。见证基于公开密码学证明,任何节点都能本地验证;钱包可将轻量级 witness 由区块自身携带,不引入新信任。

Q3:现有应用升级难度大吗?
A:对 dApp 开发者基本零改动。底层 trie 形态切换对 EVM 透明,合约仍可按以往方式读写状态。

Q4:Verkle 树对 MEV 有影响吗?
A:由于共享 witness 体积极小,可能被优先用于构建器和验证者间传递:MEV 效率更高,竞争可能加剧,但不会破坏共识安全。

Q5:测试网普通人能参与吗?
A:可以。Verkle Gen Devnet 6 已在线运行,开发者可部署合约、提交交易,社区也欢迎志愿者运行节点收集反馈。

当前进度与参与方式

若你还在用家用级宽带就能跑全节点时,说明 Verkle 树带来无状态架构已进入倒计时。现在就动手体验,你将是下一代去中心化验证网络的共同建造者。