Rollup 把「计算搬到链下、结算留在链上」:交易在 L2 上批量执行、压缩后提交到 Layer1,L1 只负责验证「提交的结果是真的」并记录最终状态。它的价值主张是——把 L1 的执行吞吐放大几十倍,同时继承 L1 的安全性。
本文按「分层架构 → 执行层 → 结算层交互 → Optimistic 欺诈证明 → ZK 有效性证明 → DA 与批次 → gas/退出期 → 选型 → 架构演进」展开,最后给速查表。
前置:/layer2-scaling/(Layer2 扩容全景)、/ethereum-evm-solidity/(EVM 执行模型)、/consensus-mechanisms/(共识与最终性)。
目录
- 1. Rollup 分层:执行、结算与数据可用性
- 2. 执行层:EVM 兼容与状态管理
- 3. 结算层:与 Layer1 的交互流程
- 4. Optimistic Rollup:欺诈证明
- 5. ZK Rollup:有效性证明与 zkEVM
- 6. 数据可用性层与批次提交
- 7. Gas 成本与退出期
- 8. 选型:Optimistic vs ZK
- 9. 架构演进与互操作
- 10. 速查表与一句话记忆
- 延伸阅读
1. Rollup 分层:执行、结算与数据可用性
模块化视角:一条 Rollup 链由三层职责拼成:执行层(跑交易、算状态)、结算层(在 L1 确认最终状态)、数据可用层(交易数据公开可检索)。
| 层 | 承担者 | 职责 | 信任假设 |
|---|---|---|---|
| 执行 | 排序器/L2 节点 | 排序、执行 EVM、维护 L2 状态 | 可作恶,需证明兜底 |
| 结算 | Layer1 合约 | 验证状态根、处理存取款 | L1 共识 |
| DA | Layer1 或独立 DA | 存储批次数据、供挑战者取用 | 需可访问性 |
核心安全命题:L2 状态根提交到 L1 后,「这个根对不对」由证明系统(欺诈证明或有效性证明)保证——这是 Rollup 两种流派的分水岭。
记忆:「执行在链下、结算在链上、数据在链上/DA 层」——Rollup 的所有架构分歧都围绕「谁来验证执行结果」和「数据放在哪里」两个问题展开。
2. 执行层:EVM 兼容与状态管理
执行层 = 一条跑着 EVM(或类 EVM)的链:排序器收交易、按序执行、维护 L2 的世界状态(Merkle Trie:账户余额 + 合约存储 + nonce),每区块产出新状态根。
兼容层次:
□ EVM 等价:字节码级兼容(OP 主网、Arbitrum),DApp 零改动
□ EVM 等价+:接近但 gas/预编译有差异(zkSync、Starknet 类)
□ 非 EVM:自定义执行环境(Fuel、MoveVM)
排序器(Sequencer)职责:接收交易 → 给用户软确认 → 打包成批次提交到 L1 → 拥有 L2 的 MEV 顺序权力。提交的不只是交易列表,还有执行后的 stateRoot。
记忆:执行层是「账本本身」,结算层是「账本的公证处」——L2 节点算状态,L1 只认最终根,二者靠「批次 + 状态根」对齐。
3. 结算层:与 Layer1 的交互流程
结算层 = 部署在 L1 上的 Rollup 合约,管理存款、提款与状态确认:
用户存款:L1 向 Bridge 存 ETH → 事件发出 → L2 账户入账
用户提款:L2 发起 → 状态根含此笔 → L1 核对证明 → 释放资产
L1 合约核心函数(简化):
contract Rollup {
bytes32 public stateRoot;
function submitBatch(bytes32 newStateRoot, bytes calldata txs,
bytes32 daCommitment) external {
// 记录批次 + 状态根(Optimistic 需挑战期后生效)
}
function proveWithdrawal(bytes32 hash, bytes calldata proof) external {
// 校验提款包含在已确认状态根中,然后释放资金
}
}
提款两种通道:标准通道(Optimistic 等 7 天挑战期 / ZK 近即时);快速桥(第三方 LP 垫资即时拿钱,LP 收差价)。
记忆:结算层是 Rollup 的「海关」——存款进、提款出、状态根盖章,所有跨 L1/L2 的资产流动都必须经过它的校验。
4. Optimistic Rollup:欺诈证明
Optimistic 的信任假设:默认提交的批次「是对的」,给一段挑战期,期间任何人可指出错误并出示欺诈证明(Fraud Proof):
批次提交 → 默认接受 → 挑战期(如 7 天)
└─ 发现错误者提交欺诈证明
→ 逐轮交互验证(bisection)
→ 属实 → 撤销批次、罚作恶者、奖励挑战者
为什么叫「Optimistic」:假设乐观(批次正确),用惩罚威慑作恶——出块便宜、TPS 高;但提款要等挑战期。
交互式欺诈证明(Arbitrum Bisection 示意):挑战者声称「第 N 条交易执行错误」→ 双方不断二分缩小争议区间 → 定位到单条指令 → 在 L1 用单步执行器重放 → 输者保证金被罚、赢者获得奖励。
记忆:欺诈证明把「验证执行」变成「可疑才验证」——平时零验证开销,出错时逐条指令重放定责,惩罚机制让作恶成本远大于收益。
5. ZK Rollup:有效性证明与 zkEVM
ZK Rollup 的信任假设:提交批次时附上有效性证明(Validity Proof)——用 zk-SNARK/STARK 向 L1 证明「状态根确实是这批交易执行的结果」:
执行 → 生成证明 → 提交 [新状态根 + 证明] → L1 合约验证 → 通过即接受(无需挑战期)
zkEVM 的层次:把整个 EVM 执行变成可证明电路,难度递增:
| 层次 | 说明 | 代表 |
|---|---|---|
| L1 等价 | 证明原生 EVM 字节码 | 与 L1 逐指令等价 |
| 类 EVM | 证明接近 EVM 的语言 | zkSync Era(早期) |
| 编译器路线 | 高级语言编译为自定义电路 | Starknet(Cairo) |
代价:生成证明需大量计算(GPU 集群),STARK 证明以分钟计——这是 ZK 的主要瓶颈。
记忆:有效性证明 = 每次提交都「当场验真」——没有挑战期、提款近即时,但代价是昂贵且慢的证明生成。
6. 数据可用性层与批次提交
为什么数据必须可用:挑战者/重建节点需要 L2 交易数据重建状态——数据丢失 = 无法挑战 = 信任崩溃。
批次数据放哪:
□ 全链上(calldata):每批交易压缩后写入 L1 calldata(最贵、最安全)
□ Blob(EIP-4844):写入 blob 侧通道,L1 不执行只承诺(便宜)
□ 独立 DA 层(Celestia 等):数据写到别的链(最便宜但信任跨链)
批次提交成本:单笔 L2 成本 ≈ 数据发布成本 / 批内交易数;压缩(签名聚合、字段裁剪)把 ~100 字节压到 ~15 字节,批越大均摊越低。
决策:批次数据放哪 = 安全与成本的权衡——主网 Rollup 优先 Blob(继承 L1 安全、成本可控);追求极致便宜再考虑独立 DA 层,但要接受多一层信任依赖。
7. Gas 成本与退出期
Gas 成本对比:
| 维度 | L1 | L2(calldata) | L2(Blob) |
|---|---|---|---|
| 普通转账 | 高(约 $1-5) | 中 | 低(约 $0.01-0.1) |
| DeFi 交互 | 极高 | 中 | 低 |
L2 上 gas 的两层结构:L2 内部 gas(执行合约消耗)+ L1 数据 gas(每字节按 L1 价格付费)——所以 L1 base fee 飙升时 L2 也跟着贵。
退出期:Optimistic 需 7 天挑战期(快速桥绕过);ZK 验证证明即可提款,分钟级(受证明生成延迟影响)。
记忆:L2 便宜的本质是「把 L1 的执行费换成数据费」——L1 越堵 L2 越贵;退出期则是证明系统对提款速度的定价。
8. 选型:Optimistic vs ZK
| 维度 | Optimistic | ZK |
|---|---|---|
| 验证方式 | 欺诈证明(可疑才验) | 有效性证明(每次验真) |
| 提款速度 | 7 天挑战期 | 分钟级 |
| 成本 | 低(无证明开销) | 高(证明生成成本) |
| EVM 兼容 | 高(字节码级) | 中(zkEVM 各层次) |
| 成熟度 | 高(Arbitrum/OP 主网久) | 快速追赶 |
选型决策树:要「立即提款 + 秒级最终性」→ ZK;要「最低成本 + 现成 EVM 生态」→ Optimistic;团队懂电路 → ZK,纯 Solidity 团队 → Optimistic;资产规模大追求 L1 级安全 → 成熟方案双轨。
决策:没有「更好」只有「适配」——短平快 DApp 用 Optimistic,高频交易/强最终性需求选 ZK,多数团队先 Optimistic 跑量、再按需迁移 ZK。
9. 架构演进与互操作
架构演进方向:去中心化排序器(Espresso/Radius)、Based Rollup(排序权还给 L1 提议者)、递归证明(ZK 叠加,L3/L4)、标准互操作(共享桥、原子跨 L2 交易)。
互操作问题:流动性碎片化(资产分散多个 L2 → 聚合器)、消息传递(L2 A → L2 B 需中继 + 证明)、原子性(一笔交易跨多个 L2 全成或全败,难)。
模块化全家桶示例:应用 → 去中心化排序器 → EVM 执行 → ZK 递归证明 → 结算到 L1 → 数据到 Blob/Celestia → 跨链走统一桥。
展望:Rollup 正从「单链扩容」走向「模块化互联网」——执行、排序、证明、DA、结算各自专业化,互操作成为下一阶段主战场。
10. 速查表与一句话记忆
| 概念 | 要点 |
|---|---|
| 三层架构 | 执行 / 结算 / 数据可用性 |
| 执行层 | L2 节点跑 EVM,排序器出块 |
| 结算层 | L1 合约确认状态根、处理存取款 |
| Optimistic | 欺诈证明 + 挑战期(7 天) |
| ZK | 有效性证明,提款近即时 |
| zkEVM | EVM 执行变成可证明电路 |
| DA | calldata / Blob / 独立 DA 层 |
| 成本 | 数据发布成本均摊到批内交易 |
| 演进 | 去中心化排序、based rollup、互操作 |
一句话记忆:Rollup = 执行搬链下(L2 账本) + 结算留链上(L1 公证) + 数据公开(DA)——Optimistic 用「怀疑才验证 + 挑战期」省钱,ZK 用「每次证明 + 近即时提款」买安心;成本、延迟、兼容性三项权衡里选型。
延伸阅读
- /layer2-scaling/ — Layer2 扩容全景
- /ethereum-evm-solidity/ — EVM 与执行模型
- /consensus-mechanisms/ — 共识与最终性
- /cross-chain-bridges/ — 跨链桥与互操作
- /blockchain-mev-pbs/ — 排序器与 L2 MEV
- [[blockchain-web3]] — 区块链 Web3 专题
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。