zk-Rollup 架构对比 — Linea / zkSync Era / Scroll / Polygon zkEVM
4 大主流 zk-Rollup 架构、底层 proof system、execution layer 兼容度
日期: 2026-12-21 方向: ZK工程 / 电路开发 阶段: Phase 4 - ZK电路开发实战 (Day 223-243) 标签: #ZK #zk-Rollup #zkEVM #Linea #zkSync #Scroll #Polygon-zkEVM
今日目标
| 类型 | 内容 |
|---|---|
| 学习 | 4 大主流 zk-Rollup 架构、底层 proof system、execution layer 兼容度 |
| 实操 | 抓真实合约地址 / TVL / Prove 时间 / DA 方案,整理对比表 |
| 产出 | zkrollup_compare.md(详尽对比表 + 决策树) |
背景
zk-Rollup 是 Vitalik 三大 L2 蓝图之一(Optimistic / zk / Validium)。zk-Rollup 用 ZK proof 证明 batch 内所有 tx 的状态转换合法,链上无需重放 tx,理论上可以用极少 gas 实现完整 EVM 安全性。
但 EVM 不是 ZK 友好的:原生用 keccak/SHA、各种 unfriendly opcodes、动态 storage。把 EVM 完全 ZK 化是个巨大工程,2023-2024 才出现真正的 zkEVM mainnet。
4 大 zk-Rollup 架构总览
1. Linea(ConsenSys)
| 维度 | 详情 |
|---|---|
| 上线 | 2023-08 主网 |
| zkEVM Type | Type 2.5(接近 Ethereum,部分 opcode 修改) |
| Proof system | PLONK + lookup(自研 Vortex + Linea-prover) |
| DSL | gnark (Go-based) |
| Hash | MiMC + custom |
| Curve | bn254 |
| L1 verifier | 0xd19d4B5d358258f05D7B411E21A1460D11B0876F (Linea zkEVM) |
| Bridge | 0xd19d4B5d358258f05D7B411E21A1460D11B0876F |
| TVL(参考) | ~$1B |
| Prove 时间 | ~10 min / batch(数百 tx) |
| 终结性 | Hard finality once L1 verified (~30 min) |
2. zkSync Era(Matter Labs)
| 维度 | 详情 |
|---|---|
| 上线 | 2023-03 主网 |
| zkEVM Type | Type 4(zkEVM-equivalent 接口,bytecode 不同) |
| Proof system | Boojum(FRI + Plonky2-style + final SNARK wrap) |
| DSL | 自研(zkSync VM 优化的 LLVM IR) |
| Hash | Poseidon |
| Curve | bn254 (final wrap) + Goldilocks (inner) |
| L1 diamond proxy | 0x32400084C286CF3E17e7B677ea9583e60a000324 |
| Bridge | 0x32400084C286CF3E17e7B677ea9583e60a000324 |
| TVL | ~$700M |
| Prove 时间 | ~10-15 min / batch |
| 特色 | Native AA (4337 集成)、自定义 paymaster |
3. Scroll
| 维度 | 详情 |
|---|---|
| 上线 | 2023-10 主网 |
| zkEVM Type | Type 2(bytecode-equivalent,目标 Type 1) |
| Proof system | Halo2 + KZG (PSE fork) |
| DSL | Halo2 (Rust) |
| Hash | Poseidon |
| Curve | bn254 |
| L1 verifier | 0xa13BAF47339d63B743e7Da8741db5456DAc1E556 (ScrollChain) |
| Bridge | 0x6774Bcbd5ceCeF1336b5300fb5186A12DDD8b367 |
| TVL | ~$200M |
| Prove 时间 | ~5-10 min / batch(GPU prover) |
| 特色 | 与 PSE 共享研究,最忠实于 EVM |
4. Polygon zkEVM
| 维度 | 详情 |
|---|---|
| 上线 | 2023-03 主网 (beta) |
| zkEVM Type | Type 3(bytecode-equivalent + 一些 opcode 调整) |
| Proof system | Plonky2 + 包装为 Groth16/PLONK |
| DSL | PIL (自研) + zkASM |
| Hash | Poseidon-Goldilocks → 最终 wrap 到 bn254 |
| Curve | Goldilocks (inner) + bn254 (final) |
| L1 verifier | 0x2b3DA61c64F2C5e09B7b4E8E4C0F8e5fE7DAfBF1 (PolygonZkEVMBridge: 0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe) |
| TVL | ~$100M |
| Prove 时间 | ~30 min / batch(recursion 深) |
| 特色 | recursion 深度大但最终 proof 小(~5 KB) |
详细对比表 / Detailed Comparison
| 维度 | Linea | zkSync Era | Scroll | Polygon zkEVM |
|---|---|---|---|---|
| Type | 2.5 | 4 | 2 → 1 | 3 |
| Bytecode-equiv | 部分 | 否(重新编译) | 是 | 大部分 |
| EOA 地址兼容 | 是 | 否(不同 derivation) | 是 | 是 |
| Solidity 编译器 | solc | zksolc (LLVM-based) | solc | solc |
| Hash in EVM | keccak (但 ZK 内贵) | keccak | keccak | keccak |
| Opcodes 完整度 | ~95% | ~85% (PUSH0 等不同) | ~98% | ~95% |
| 支持 4337 | 标准 | Native AA | 标准 | 标准 |
| Self-destruct | ✗ | ✗ | ✗ | ✗ |
| Prover 硬件 | CPU + GPU | GPU | GPU (RTX 4090+) | CPU + GPU |
| Prover 时间 | 10 min | 10-15 min | 5-10 min | 30 min |
| DA | calldata (current) → blob | calldata → blob | blob (EIP-4844) | blob |
| TPS(实际) | ~30 | ~30 | ~30 | ~25 |
| Fees vs L1 | ~30× cheaper | ~30× | ~30× | ~25× |
| Decentralization (sequencer) | centralized | centralized | centralized | centralized |
| Decentralization (prover) | centralized | centralized | centralized | centralized |
| Open source proof code | partial | yes | yes (full) | yes |
真实合约地址 / Real Mainnet Addresses
Linea
- L1 Bridge / L1MessageService:
0xd19d4B5d358258f05D7B411E21A1460D11B0876F - PlonkVerifier:
0xB67d0BD4B66B65d9e75E70Cb4E5A5da7C838d3e7(近似,不同版本不同) - Token Bridge:
0x051F1D88f0aF5763fB888eC4378b4D8B29ea3319
zkSync Era
- DiamondProxy (L1):
0x32400084C286CF3E17e7B677ea9583e60a000324 - L1 ERC20 Bridge:
0x57891966931Eb4Bb6FB81430E6cE0A03AAbDe063 - Validator (Proof submitter):
0x3527439923a63F8C13CF72b8Fe80a77f6e572092
Scroll
- ScrollChain:
0xa13BAF47339d63B743e7Da8741db5456DAc1E556 - L1MessageQueue:
0x0d7E906BD9cAFa154b048cFa766Cc1E54E39AF9B - L1ETHGateway:
0x7F2b8C31F88B6006c382775eea88297Ec1e3E905
Polygon zkEVM
- PolygonZkEVMBridge:
0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe - PolygonZkEVM:
0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2 - PolygonRollupManager (after 2024 fork):
0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2
Proof System 深度对比
Linea: Vortex + Wizard-IOP
- 自研 stack:业务电路用 gnark (Go),IOP 部分用 Wizard-IOP(PLONK 风格 + lookup)。
- 最终 proof 是 PLONK,链上 ~600k gas verify。
- 创新点:fast prover(GPU + 优化的 MSM),目标 4 sec/batch。
zkSync Era: Boojum
- 内层:Plonky2-style FRI(Goldilocks)
- 外层:包装成 PLONK on bn254 上传 L1
- prover 完全 Rust + GPU
- 优势:FRI 不需要 trusted setup,inner proof 快
Scroll: Halo2 + KZG (PSE fork)
- 全 Halo2 stack,与 PSE 共享 ZkEVM 研究
- KZG ceremony 用 EF Powers of Tau 2023
- prover GPU (cuda) 优化
- 优势:研究透明,最接近 EF 的 zkEVM benchmark
Polygon zkEVM: Plonky2 + PIL
- 业务约束用 PIL(Polynomial Identity Language,类似 Halo2 列)
- 内层 Plonky2 (Goldilocks + FRI)
- 外层包装到 Groth16 (bn254) 上链
- 特色:deep recursion,最终 proof 极小
DA(Data Availability)方案对比
| Rollup | 上 EIP-4844 之前 | 之后 |
|---|---|---|
| Linea | calldata | blob |
| zkSync Era | calldata | blob |
| Scroll | calldata → blob (其中之一最早) | blob |
| Polygon zkEVM | calldata | blob |
EIP-4844(2024-03)后所有主流 zk-Rollup 切换 blob,每条链 cost 降 ~10×。
zkEVM Type 1-4 简介(详细见 Day 235)
| Type | EVM 兼容度 | 性能 | 例子 |
|---|---|---|---|
| Type 1 | 完全 EVM-equivalent(含 keccak in ZK) | 极慢 | Taiko, EF zkEVM (research) |
| Type 2 | EVM-equivalent (bytecode level) | 慢 | Scroll, Linea (近似) |
| Type 3 | 几乎兼容,少数 precompile 不同 | 中 | Polygon zkEVM |
| Type 4 | 高级语言兼容(Solidity → 自定义 bytecode) | 快 | zkSync Era, Starknet |
选型决策树 / Selection Tree
你要部署 DApp 到 zk-Rollup?
├── 需要完全 bytecode-equivalent(直接搬合约)
│ ├── 最忠实 → Scroll
│ └── 性能优先 → Linea
│
├── 可以接受重新编译 / Solidity 兼容
│ ├── 想要 Native AA → zkSync Era
│ └── Polygon 生态 → Polygon zkEVM
│
└── 跨多个 → 用 LayerZero / Stargate / Across
真实工程问题 / Real Engineering Pitfalls
Linea — keccak ZK化代价
Linea 的 keccak 在 Wizard-IOP 内每个 hash 约 140k 约束。一个 tx 平均 5-10 keccak(log topics、calldata)。所以 batch 大小有上限。
zkSync Era — Solidity 兼容性陷阱
zkSync 用 zksolc (LLVM),与 solc 编译产物不同:
- 没有 PUSH0 (EIP-3855)
- create2 字节码不同(地址不同)
- selfdestruct disabled
- delegatecall 部分 deviate
真实事件:2023 年某 Aave fork 部署到 zkSync 时,bytecode 比对失败,需要重新审计。
Scroll — Prover 资源
Scroll prover 需要 RTX 4090 ($1500) 或 A100,单 batch 占满 GPU 5-10 min。普通节点不能 prove,目前完全中心化。
Polygon zkEVM — Recursion 深度
由于 wrap 多层,Polygon zkEVM 的 final SNARK 需要 ~30 min 证明,最慢的之一。但 final proof ~5 KB,gas 低。
产品视角 / PM Perspective
Linea 的 PM 卖点
- ConsenSys 生态(MetaMask + Infura + Truffle 默认推荐)
- 与 Linea Voyage 大型空投活动结合
- 适合面向以太坊用户的 DApp
zkSync Era 的卖点
- Native AA:DApp 可以做 gasless / paymaster / multi-call,UX 大幅改善
- ZK Stack 可让任何团队 fork 自己 L3
- 偏向 mass adoption(消费级 DApp)
Scroll 的卖点
- 最忠实 EVM,开发者迁移零成本
- 与 EF zkEVM 研究紧密
- 偏向硬核以太坊原生项目
Polygon zkEVM 的卖点
- Polygon 品牌 + agg layer(CDK 生态)
- 跨 Polygon CDK chains 的 unified bridge
- 偏向企业级跨链应用
关键速查
| Rollup | RPC | Chain ID |
|---|---|---|
| Linea | https://rpc.linea.build | 59144 |
| zkSync Era | https://mainnet.era.zksync.io | 324 |
| Scroll | https://rpc.scroll.io | 534352 |
| Polygon zkEVM | https://zkevm-rpc.com | 1101 |
面试题
-
Q: 4 大主流 zk-Rollup 中谁最快/最便宜? A: 「最快」要看维度:(a) Prove 时间 — Scroll/Linea
5-10 min;(b) finality 到 L1 — 都需 30 min1 hour 包含 prove + L1 confirmation;(c) UX 速度 — sequencer 端 ~1 sec confirm,与 OP rollup 持平。「最便宜」目前都在 ~30× cheaper than L1,差异 < 20%。 -
Q: zkSync Era 的 Type 4 设计有什么 trade-off? A: 优势:自定义 bytecode 可以 ZK-friendly(减少约束)、native AA、可以做 Solidity 之外的语言。劣势:合约不能 1:1 移植(地址、bytecode hash 都变),审计要重做,与 Etherscan 等工具集成需特殊适配。
-
Q: 为什么 Polygon zkEVM 用 Plonky2 + 包装为 PLONK? A: Plonky2(Goldilocks 域)prover 极快,但 verifier 不能直接在 EVM 上验证(Goldilocks 不是 EVM 原生)。所以最后 wrap 一层 PLONK on bn254,让 EVM precompile 可以 verify。这是「快 prover + EVM 兼容」的折中。
-
Q: zkEVM 比 OP rollup 强在哪? A: (a) 没有 7 天 challenge period,几小时内 final;(b) 没有 1-of-N honest validator 假设,cryptographic 安全;(c) 状态根直接是 ZK proven。劣势:prove 慢、prover 中心化、工具复杂、迁移成本高。
明日预告
Day 235 — zkEVM Type 1-4 详细分类。Vitalik 提出的分类法,深入对比每一类的设计取舍。