扩容技术 / 主题阅读

ZK-rollup状态根提交机制:Merkle树哈希与链上合约更新

ZK-rollup通过维护链下Merkle树来追踪账户余额等状态,操作员需计算新的状态根哈希值并提交至以太坊主网合约,合约在验证有效性证明后更新链上状态。

默克尔树在加密货币中的原理示意图
主题资料配图,非新闻现场照片 · 配图:加密货币背后的密码学之 merkle tree - 知乎

链下状态追踪与Merkle树结构

ZK-rollup在链下维护一个Merkle树,用于记录Layer 2账户的余额等状态信息。操作员在执行交易后,会更新账户数据并重建Merkle树,从而生成新的状态根。这个状态根是链下状态的加密摘要,代表了当前Layer 2网络的完整状态。为了确保状态更新的正确性,操作员必须证明新状态根是由正确的交易执行产生的。

链上合约的状态根提交

操作员将计算出的新状态根提交至部署在以太坊主网的ZK-rollup合约中。该合约负责存储rollup区块并监控状态更新。合约本身并不执行交易逻辑,而是作为验证者,等待操作员提供的有效性证明。只有当合约验证通过证明后,才会接受新的状态根,并将其作为rollup的规范状态根,从而完成链上状态的更新。

批量根与交易证明

除了状态根,操作员还会创建一个包含批次内所有交易的Merkle树,并提交其根值(批量根)。这允许用户通过提供交易详情、批量根以及Merkle证明来验证特定交易是否包含在批次中。这种机制结合状态根提交,确保了链上数据的完整性和可验证性,防止恶意操作员篡改链下状态。

资料与延伸阅读

你可以通过以下原始资料核对文中概念,并继续深入阅读。

  1. Zero-knowledge rollups | ethereum.org ↗
  2. 配图:加密货币背后的密码学之 merkle tree - 知乎 ↗
← 更多扩容技术文章返回顶部 ↑