Euclid Upgrade

概览

此次升级包含五个主要变化:

  • 迁移至 OpenVM Prover。
  • 迁移至 MPT 状态承诺。
  • 优化 Rollup 处理流程。
  • 支持 EIP-7702 与 RIP-7212。
  • 达成 Stage-1 阶段准备。

这些变化将带来更低的费用、更高的吞吐量、更强的安全性、更好的兼容性,以及 Scroll 用户与开发者能享受到的更多先进功能。

时间线

  • Scroll Sepolia
    • 阶段一:2025 年 3 月 11 日
    • 阶段二:2025 年 3 月 13 日
  • Scroll 主网
    • 阶段一:2025 年 4 月 16 日
    • 阶段二:2025 年 4 月 22 日

功能详情

OpenVM Prover

Scroll 是 EVM 字节码兼容的 halo2 zkEVM 的早期先驱之一。随着 ZK 技术的快速发展,通用的 RISC-V zkVM 现在也变得可行。在 Euclid 升级中,我们将弃用 halo2 电路,转向构建于 OpenVM 之上的新 Prover。

新的 OpenVM Prover 带来诸多好处. 代码更易于理解与审计;可在多个模块中复用代码;可大幅降低证明成本与延迟;还支持验证任意复杂交易,从而取消限制 sequencer 吞吐量的电路容量检查器模块。

MPT 状态承诺

目前 Scroll 使用的是 zk 友好的状态承诺结构 zktrie。通过 OpenVM prover,现在可以实际地证明 Ethereum 的状态结构:Merkle-Patricia Trie (MPT)。因此我们将弃用 zktrie,改为采用 MPT。

MPT 能提升 sequencer 性能,并为依赖 L2 状态证明的 dApp 提供更好兼容性。

优化的 Rollup 处理流程

Euclid 将推出一系列优化,显著降低数据可用性(DA)开销,从而为用户带来更低的费用。

关键优化包括:

  • 将 blob 验证从合约代码转移到 zk 电路中;
  • 摊销消息队列提交成本;
  • 将 L2 区块头数据从 calldata 转移到 blobs;
  • 在单笔交易中提交多个 blobs。

预计整体可将批次提交成本减少高达 90%。

此外,Scroll L2 节点将弃用当前的 Clique(基于权威证明的共识机制),转为从 L1 的系统配置合约中读取 L2 区块签名者权限。

强大的智能账户

Euclid 将支持 EIP-7702RIP-7212。这与 Ethereum 的 Pectra 升级 保持一致,确保了高度兼容性。这些功能也为用户与开发者带来全新体验:如为现有账户添加智能合约功能、使用 passkey 授权签名、享受新标准所带来的 UX 改进。

Stage-1 阶段

Euclid 引入了关键的安全机制,使 Scroll 可达到由 L2BEAT 定义 的 Stage-1 阶段。

  • 强制交易纳入机制可提升抗审查能力。用户可直接通过 L1 发送交易,强制 sequencer 将其包含。
  • 无许可批次提交机制防止活性故障。在极少数情况下,若 sequencer 停止提交或完成批次,任何人都可接管操作。

这些机制强制 sequencer 履行职责,提供重要的安全保障。

此外,Scroll 已将控制权交由 安全委员会,由 12 名声誉良好的成员组成,采用 9/12 多签机制。Euclid 将是安全委员会执行的第一个升级。

节点运营商

第一阶段更新
  • 节点运营商需迁移至新的 MPT 版本 l2geth。这需要完全重新同步(从网络或快照开始)。稍后我们将发布节点版本和快照。请查看 节点状态迁移指南
  • zktrie 节点将继续运行,但将不再验证区块头中的状态根。建议在 Euclid 升级前迁移至 MPT 节点。
第二阶段更新
  • 节点运营商需知悉第一阶段引入的“无需许可的批次”。尽管不太可能在实际中触发,一旦触发将需要手动恢复操作。我们将在下个节点版本中提供详细文档。

Dapps 与索引器

第一阶段更新
  • 状态承诺结构从 zktrie 切换为 MPT。
  • 所有依赖 zktrie 证明的 Dapp 需迁移至 MPT。
  • 批次版本为 v5 和 v6(与 v4 格式相同)。
第二阶段更新
  • 批次头和 blob 数据将采用新的编码格式(批次版本 v7)。
  • 批次承诺 calldata 将不再包含区块头。需要此信息的项目应从 L1 获取并解码 blob。
  • 一笔交易可能包含多个批次。索引器需支持处理同一 L1 交易中的多个批次。
  • 在无需许可模式中,使用 commitAndFinalizeBatch 一步原子提交并终结批次。
  • 函数签名更新如下:
    • 升级前:commitBatchWithBlobProoffinalizeBundleWithProofrevertBatch
    • 升级后:commitBatchesfinalizeBundlePostEuclidV2commitAndFinalizeBatchrevertBatch
  • committedBatches 数组将变得稀疏。
  • 消息队列合约迁移为 L1MessageQueueV2,其消息哈希方式不同。
  • 不安全的 L2 区块不再包含签名或自定义标记(ExtraData 字段)。

资源

随时了解最新的 Scroll 新闻
路线图更新,虚拟和现场活动,生态机会等等
感谢您的订阅!

资源

关注我们