跳转到内容

Scroll — 字节码级 zkEVM

是什么

Scroll 是一条用零知识证明给以太坊主网”交作业”的 L2 链——把昂贵的主网交易先搬到便宜的 L2 上跑,跑完附一份”我没作弊”的数学证明发回主网,主网验完就接受新状态。

日常类比:主网像一个学校的总教务处——所有成绩都要它盖章才算数,但教务处一周只上班一天。Scroll 像校外的快速辅导班——学生在辅导班做完作业,老师不用把每张卷子带回教务处批,只需带一张”我们 1000 份作业全对”的密封证书;教务处验完证书就给所有人盖章。证书一过,分数立刻生效。

Scroll 的关键词是 zkEVM — “zero-knowledge EVM”。它把 EVM 每条字节码都翻译成可以用零知识证明覆盖的”算术约束”,所以你写的 Solidity 合约一行不改就能跑。

为什么重要

不理解 Scroll,下面这些事都没法解释:

  • 为什么有些 L2 提现要 7 天(arbitrumoptimism),Scroll 不用——因为 zk 证明不留挑战期
  • 为什么 zkEVM 比 ZK-Rollup 这个词更晚出现——专用 ZK 链不兼容 EVM,要把 EVM 整个塞进证明系统是 2022 年后的工程突破
  • 为什么 Scroll 跑 prover 要一柜 GPU——电路有几亿个约束,CPU 算到天荒地老
  • 为什么 EVM 兼容会分 Type 1 / Type 2 / Type 3——每一档对应的”和主网一致”程度不同,做证明的难度也不同

核心要点

Scroll 的设计可以拆成 三个关键决定

  1. bytecode-equivalent zkEVM 电路:每条 EVM opcode(ADD、SLOAD、CALL 等)都有对应的算术电路。合约不用改,编译产物也不用改,主网跑什么 L2 就跑什么。类比:以前的 ZK 链像”国际学校”——必须用它的语言;Scroll 像”装了同声传译的普通学校”——你说中文系统自动翻成证明语。

  2. zk-trie 替代 Merkle Patricia Trie:以太坊状态原本用 MPT(Keccak hash + 16 叉),keccak 在电路里巨慢。Scroll 改用 zk-trie(Poseidon hash + 二叉),证明友好但格式和主网不同——这是兼容性的一个小代价。

  3. 三层节点 + GPU prover:Sequencer 排序交易、Execution Node 跑 EVM、Rollup Node 攒批写主网;最重的”生成证明”交给独立的 GPU Prover 集群,由 Coordinator 调度。三层加起来叫 Scroll 架构。

三件事让 Scroll 既”和主网长得一样”又”能在合理时间出证明”。

实践案例

案例 1:把一份合约部署到 Scroll

合约源码不改一行,只换 RPC:

Terminal window
# 部署到主网
forge create MyContract --rpc-url https://eth.llamarpc.com --private-key $PK
# 部署到 Scroll mainnet
forge create MyContract --rpc-url https://rpc.scroll.io --private-key $PK

逐部分解释

  • forge createfoundry 的部署命令,主网和 L2 完全一样
  • 唯一差别是 --rpc-url——指向不同链的入口
  • 钱包、ABI、字节码都不变;这就是 bytecode-equivalent 的好处

案例 2:一笔交易在 Scroll 链路里走的全流程

你 → Sequencer(排序)→ Execution Node(跑 EVM,出新状态)
→ Rollup Node(攒一批 → 写主网 calldata)
→ Coordinator → Prover(GPU 算证明)
→ 主网 Verifier 合约(一次验证整批)

逐部分解释

  • Sequencer 1-3 秒给你”软确认”——这时只是 L2 内排好了序
  • Execution Node 真跑你的合约,更新 zk-trie 状态根
  • Rollup Node 把这一批交易压缩后写回主网(这一步交易”上链”但还没”被证明”)
  • Prover 集群算几十分钟到几小时,证明生成后主网验证,状态根才”硬确认”——这时才能安全提现

案例 3:从 Scroll 提现 ETH 回主网

你在 L2 调 withdraw → 这笔交易进 batch
→ batch 等 prover 出证明(数小时)
→ 主网 Verifier 合约验证 → 状态在 L1 更新
→ 你在 L1 调 claim → 收到 ETH

arbitrum 的对比一目了然:OR 是”先放行 → 等 7 天没人挑战”;ZK 是”等证明 → 放行”。OR 的 7 天是结构性的,Scroll 的几小时只受 prover 算力限制——证明一过就立刻安全。

踩过的坑

  1. 以为 zkEVM 完全等于 EVM:bytecode-equivalent ≠ 完全一致。Scroll 在历次主网升级里对 PUSH0、某些预编译、gas 计费有过临时差异;迁合约前要看官方升级公告,否则部署上去某条 opcode 报 panic。

  2. 以为 zk 提现立刻到账:证明生成本身要算几十分钟到几小时,主网验证 + finalize 还有窗口。比 OR 的 7 天快很多,但不是即时——新人常以为”按一下 withdraw 就到了”。

  3. 把 sequencer 当去中心化:Scroll 早期 sequencer 单点(项目方自营),它能审查或重排你的交易。zk 证明保证的是”状态算得对”,不保证”谁都能上车”——抗审查要等 sequencer 去中心化(在 roadmap 里)。

  4. zk-trie 不等于 MPT:状态树换了,eth_getProof 在 Scroll 返回的格式和主网 MPT 不同。靠 Merkle proof 在主网验证 L2 状态的 dapp(跨链桥、轻客户端)必须重新适配。

适用 vs 不适用场景

适用

  • 普通 DeFi / NFT / 游戏合约——EVM 兼容,gas 便宜 90%+
  • 需要快速终局性的应用(不能等 OR 7 天)——证明一过就安全
  • 主网级安全 + 低 gas 的散户高频交易、链上游戏

不适用

  • 需要即时确认(毫秒级)的场景——sequencer 软确认 1-3 秒已经是上限
  • 极端依赖某条主网 opcode 精确语义的合约——bytecode-equivalent 有少数边界差异
  • 要主网级抗审查的关键交易——sequencer 单点期间不行
  • prover 成本敏感的高频小额场景——单笔分摊证明费在 batch 不满时不便宜

历史小故事(可跳过)

  • 2021 年:Ye Zhang、Sandy Peng 等创立 Scroll,最初和以太坊基金会的 PSE 团队合作做 zkEVM 研究
  • 2022 年:发布 Pre-Alpha 测试网,跑通字节码级 zkEVM 的第一版电路(基于 Halo2)
  • 2023 年 2 月:Alpha 测试网上线,第一次把”完整 EVM + zk 证明”做到端到端
  • 2023 年 10 月:主网正式上线,是当时唯一一条 bytecode-equivalent 的 zkEVM L2
  • 2025 年:Euclid 升级把内部 prover 换成 OpenVM(基于 RISC-V zkVM 的通用证明系统),方向从”专用电路”转向”通用 zkVM”

学到什么

  1. zkEVM 是工程胜利:把整个 EVM 装进证明系统是上百万行代码 + 几亿约束的工程,不是单纯密码学突破
  2. OR vs ZK 是路线选择:OR 假设诚实 + 7 天反悔;ZK 每批附证明 + 几小时终局。安全模型不同,体验也不同
  3. bytecode-equivalent 是 EVM 兼容的最高梯度:开发者无感迁移,代价是电路复杂度暴涨
  4. GPU prover 是 ZK 链的隐藏工程:链上看不见,但没它整条链跑不动;这是 ZK 路线的真正成本中心
  5. 抽象 vs 兼容是反复权衡:zk-trie 牺牲了和主网的 proof 格式一致换证明性能,是 Scroll 在两难里挑了一边的典型例子

延伸阅读

关联

  • arbitrum —— Optimistic Rollup 代表,对比 zk vs OR 两条路线
  • optimism —— 另一条 OR,Cannon MIPS 欺诈证明 vs Scroll 的 zk 电路
  • go-ethereum —— Scroll 的 EVM 行为以 Geth 为基准对齐
  • zk-snark —— Halo2 是 Scroll 早期电路用的 zk-SNARK 体系
  • uniswap-v3 —— Scroll 上 TVL 最高的 DEX,是 zkEVM 实战压力测试主力
  • foundry —— 部署 / 测试合约的工具链,对 Scroll RPC 原生支持
  • remix-ide —— 浏览器 IDE,可直接连 Scroll RPC 部署合约

反向链接

  • arbitrum —— Arbitrum Nitro — Offchain Labs 的 Optimistic Rollup 客户端
  • foundry —— Foundry — Paradigm 出品的 Rust 合约工具链
  • go-ethereum —— Go-Ethereum (Geth) — 以太坊主流 Go 客户端
  • optimism —— Optimism — 以太坊 L2 旗舰栈,把交易搬到便宜车道再回主网结算
  • polygon-zkevm —— Polygon zkEVM — 用零知识证明给以太坊扩容
  • remix-ide —— Remix IDE — 浏览器内 Solidity IDE
  • uniswap-v3 —— Uniswap V3 — 集中流动性 AMM 核心合约
  • zk-snark —— zk-SNARK 零知识证明
  • zksync-era —— zkSync Era — Matter Labs 的 zkEVM L2