跳到正文

Verkle 树

Verkle 树结合高分支树结构与向量承诺,以生成紧凑的状态见证,并伴随证明、迁移和密码学方面的权衡。

更新于

仅供教育参考,不构成投资建议;投资可能产生损失。

直接答案

Verkle 树是一种内部节点使用向量承诺的认证键值树,名称由“向量承诺”和“Merkle 树”组合而来。它把许多值承诺到一个根,但与普通的哈希 Merkle 树不同,可以证明承诺位置上的子节点而无须列出所有兄弟值。

这一性质支持高分支树和多打开证明聚合,使状态见证比等价的 Merkle-Patricia Trie 见证更小。见证仍须包含执行所需的值及其关联到已认证状态根的密码学证据。

紧凑见证可让节点用随区块提供的见证重新执行区块,而无须在本地保存全部当前状态。“无状态”不表示无人保存状态或不再需要共识;数据必须可用,验证者也必须取得规范且足够最终的根。截至 2026-08-22,以太坊路线图仍称 Verkle 测试网在运行且客户端工作尚未完成,EIP-6800 的状态为 Stagnant。

工作原理

协议先确定键值编码、向量承诺方案和空节点规则。每个内部节点对有序的子节点向量作出承诺,逐层向上形成约束状态位置与内容的根承诺。

证明者在每层打开相关位置;对多个键,多重证明可以聚合打开证明并复用共享路径。验证者取得键、值、路径承诺和证明,先对可信根验证,再执行或核验状态转换。

EIP-6800 的以太坊设计使用 32-byte 键:31-byte stem 加 1-byte suffix,内部节点宽度为 256。stem 相同的值可共享更多证明材料。这是该提案的布局,不是所有 Verkle 树的定义。更宽的树路径更短,但承诺、更新和验证需要专门的椭圆曲线运算及预计算。

示例

假设一个 31-byte stem 包含 256 个可能的 suffix 位置。若区块读取同一 stem 下的 2 个值,见证可复用共享路径并聚合打开证明,而不用携带 2 套独立的 Merkle 兄弟哈希;验证者仍须检查两个键、两个值、证明和协议选定的根。

值改变后,其 suffix 组承诺和直到根的所有受影响祖先都要更新。旧根证明即使对旧状态仍有效,也不能证明新根下的值。节省程度取决于访问模式;紧凑证明不等于零带宽、零证明成本或数据可用性保证。

风险

实现错误可能破坏绑定性或拒绝诚实证明。键派生、字节序、位置绑定、域分离、曲线点验证、标量转换,以及空位置与已存储零的区别都必须一致,并用测试向量和跨客户端测试核验。

小证明不能解决数据可用性和活性。提议者扣留值或见证时,无状态验证者无法执行区块;错误的根认证或最终性逻辑也会接受错误历史。证明生成本身还可能成为资源瓶颈或审查点。

迁移运行中的链会改变状态布局、同步、证明格式、数据库、Gas 计量和历史状态证明假设。提案、开发网或基准并不等于生产就绪。相关椭圆曲线承诺也通常不被视为后量子安全;紧凑性不代表所有威胁模型下都更安全。

常见误区

误区 1: Verkle 树只是子节点更多的 Merkle 树

高分支会缩短路径,但关键差异是向量承诺能打开选定子节点而不列出全部兄弟值。

误区 2: 任何工作负载的 Verkle 证明总大小都是常数

打开证明可以精简和聚合,但状态见证仍随访问值、不同路径和协议元数据增长。

误区 3: 无状态验证意味着没有参与者保存状态

它只表示验证者可用见证代替完整本地状态;仍须有人保存或重建并交付数据。

误区 4: 以太坊主网已经使用 Verkle 树保存执行状态

引用资料描述研究、规范和测试网;截至核查日,路线图仍列有大量客户端工作,EIP-6800 仍是 Stagnant。

相关主题

来源

导航

搜索知识库...