Rollup 原理详解
Rollup 原理详解
   
💡 Rollup 是以太坊扩容的核心技术方案。本课深入解析 Optimistic Rollup 和 ZK Rollup 两大流派的工作原理,对比它们在安全模型、性能和 EVM 兼容性上的差异,并探讨数据可用性的关键挑战。
欢迎关注我的推特:@bhbtc1337
进入微信交流群请填表:表格链接
文章开源在 GitHub:Get-Started-with-Web3
目录
- [什么是 Rollup](# 什么是 - rollup)
- [Optimistic Rollup 原理](#optimistic-rollup - 原理)
- [ZK Rollup 原理](#zk-rollup - 原理)
- [Optimistic vs ZK 详细对比](#optimistic-vs-zk - 详细对比)
- [数据可用性问题](# 数据可用性问题)
- [Validium 和 Volition 模式](#validium - 和 - volition - 模式)
- [总结](# 总结)
- [延伸阅读](# 延伸阅读)
什么是 Rollup
Rollup(卷叠)是一种 Layer 2 扩容方案,核心思想用一句话概括:** 把计算搬到链下,把数据留在链上 **。
想象一个类比:你在公司做项目,如果每个细节都要请示 CEO(以太坊主网),效率会非常低。Rollup 的做法是 —— 你在自己的办公室(L2)独立完成工作,只把最终的工作报告和关键证据(交易数据和证明)提交给 CEO 审核。
具体来说,Rollup 的工作流程如下:
1. 用户在 L2 上提交交易
↓
2. Rollup 排序器(Sequencer)收集交易,打包成批次(Batch)
↓
3. 排序器在 L2 上执行这些交易,更新 L2 状态
↓
4. 将交易数据 + 状态证明提交到以太坊 L1
↓
5. L1 上的 Rollup 合约验证 / 存储数据
↓
6. 一旦 L1 确认,L2 交易获得以太坊级别的安全保障
** 为什么这能扩容?**
- ** 计算压缩 **:L1 不需要重新执行每笔交易,只需验证证明或等待挑战期
- ** 数据压缩 **:Rollup 对交易数据进行高效编码,例如一笔 ETH 转账在 L1 上需要约 110 字节,而 Rollup 批量提交只需约 12 字节
- ** 批量摊销 **:固定的 L1 提交成本被批次内所有交易分摊
目前 Rollup 有两大技术流派:Optimistic Rollup 和 ZK Rollup,它们的区别在于如何向 L1 证明 L2 状态的正确性。
Optimistic Rollup 原理
核心理念:乐观假设 + 欺诈证明
Optimistic Rollup 的名字来源于它的核心假设 ——** 乐观地假设所有提交的状态都是正确的 **,除非有人提出异议。
这就像法律系统中的 "无罪推定"—— 你被假定为无罪,直到有人拿出证据证明你有罪。
工作流程详解
排序器提交状态根到 L1
│
▼
┌─────────────────────────────┐
│ 7 天挑战窗口开始 │
│ │
│ 任何人都可以提交欺诈证明 │
│ │
│ ├── 无人挑战 → 状态被确认 ✅ │
│ │ │
│ └── 有人挑战 → 触发裁决 ⚠️ │
│ ├── 挑战成功 → 状态回滚 │
│ └── 挑战失败 → 状态确认 │
└─────────────────────────────┘
** 关键角色:**
- ** 排序器(Sequencer)**:收集用户交易、排序、执行并提交状态到 L1
- ** 验证者(Validator/Challenger)**:监控排序器提交的状态,发现错误时提交欺诈证明
- **L1 裁决合约 **:在链上重新执行有争议的交易步骤,判定谁是对的
欺诈证明的具体机制
当验证者发现排序器提交了错误的状态时,会触发交互式证明过程:
步骤 1: 验证者指出 "从第 N 步到第 M 步的状态转换是错的"
步骤 2: 二分查找 —— 双方不断缩小争议范围
步骤 3: 最终定位到单个执行步骤
步骤 4: L1 合约重新执行这一步,判定对错
示例:
排序器声称: State_100 → [执行 1000 笔交易] → State_200
验证者声称: State_100 → [执行 1000 笔交易] → State_201
通过二分:
范围 1-1000 → 范围 500-1000 → 范围 750-1000 → ... → 第 873 步
L1 重新执行第 873 步,得出正确结果
** 为什么需要 7 天挑战期?**
这是一个安全边际。虽然大多数欺诈可以在几分钟内被发现,但 7 天的窗口确保:
- 即使大部分验证者暂时离线,仍有足够时间发现和响应
- 在极端网络情况(如以太坊 L1 拥堵)下仍然安全
- 只需要 ** 一个 ** 诚实的验证者就能保证安全 —— 这就是所谓的 **1-of-N 信任假设 **
** 缺点 **:从 L2 提款到 L1 需要等待 7 天挑战期结束。不过第三方流动性桥可以提供 "快速提款" 服务(收取一定手续费)。
ZK Rollup 原理
核心理念:零知识证明 + 有效性证明
ZK Rollup 采用完全不同的策略 —— 不是乐观假设,而是每次提交状态时都 ** 附带一个数学证明 **,证明状态转换是正确的。
"零知识证明" 这个名字听起来神秘,但核心概念并不复杂:
** 零知识证明 **:向别人证明你知道某个信息,但不透露这个信息本身。
经典类比:假设你是色盲,我要向你证明两个球颜色不同,但不告诉你具体是什么颜色。
- 你把两个球藏在背后,随机(或不)交换它们,然后拿出来问我 "你换了吗?"
- 我每次都能正确回答。重复多次后,你就可以确信这两个球确实不同 —— 即使你不知道颜色。
ZK Rollup 工作流程
1. 排序器收集并执行 L2 交易
↓
2. 证明者(Prover)生成 ZK 证明
・输入:旧状态 + 交易列表
・输出:新状态 + 有效性证明(ZK-SNARK 或 ZK-STARK)
↓
3. 将新状态根 + ZK 证明 + 压缩交易数据提交到 L1
↓
4. L1 验证合约验证 ZK 证明
・验证计算量很小(O (1) 或 O (log n))
・验证通过 → 状态立即确认 ✅
・验证失败 → 状态被拒绝 ❌
** 关键优势:提交即确认 **
ZK Rollup 不需要挑战期,因为数学证明本身就保证了正确性。这意味着:
- 从 L2 提款到 L1 可以在证明被验证后立即完成(通常几分钟到几小时)
- 安全性基于数学,而非经济博弈
ZK 证明的两大流派
| 特性 | ZK-SNARK | ZK-STARK |
|---|---|---|
| 全称 | Succinct Non-interactive Argument of Knowledge | Scalable Transparent Argument of Knowledge |
| 证明大小 | 极小(约 200-300 字节) | 较大(约 45-200 KB) |
| 验证时间 | 极快(恒定时间) | 较快(对数时间) |
| 可信设置 | 需要(一次性仪式) | 不需要(透明) |
| 量子抗性 | 无 | 有 |
| 代表项目 | zkSync, Scroll, Polygon zkEVM | StarkNet, StarkEx |
**ZK 证明生成的挑战 **:
生成 ZK 证明是计算密集型操作。证明一个包含数千笔交易的批次,可能需要:
- 强大的 GPU/FPGA/ASIC 硬件
- 数分钟到数十分钟的计算时间
- 大量内存(数十到数百 GB)
这也是为什么 ZK Rollup 的技术实现比 Optimistic Rollup 更复杂、发展更慢。
Optimistic vs ZK 详细对比
| 维度 | Optimistic Rollup | ZK Rollup |
|---|---|---|
| ** 安全模型 ** | 欺诈证明(1-of-N 信任假设) | 有效性证明(数学保证) |
| ** 提款时间 ** | 7 天挑战期 | 即时(证明验证后) |
| **EVM 兼容性 ** | 优秀(接近原生兼容) | 改善中(zkEVM 各有不同) |
| ** 计算成本 ** | L2 执行便宜,L1 只在挑战时计算 | ZK 证明生成成本高 |
| **L1 数据成本 ** | 较高(需要完整交易数据用于欺诈证明) | 较低(状态差异 + 证明即可) |
| ** 技术成熟度 ** | 较成熟(2021 年开始大规模使用) | 快速追赶中 |
| ** 主要项目 ** | Arbitrum, Optimism, Base | zkSync, StarkNet, Scroll, Polygon zkEVM |
| ** 适合场景 ** | 通用 DeFi/dApp | 高频交易、支付、注重快速终局性的场景 |
关于 zkEVM 的兼容性分级
Vitalik 提出了 zkEVM 的兼容性分类:
Type 1: 完全等价于以太坊(最慢的证明速度)
└── 目标:Scroll, Taiko
Type 2: 完全等价于 EVM(稍快)
└── 目标:Scroll, Polygon zkEVM
Type 2.5: 等价于 EVM,但 Gas 成本不同
└── 大部分 zkEVM 的实际状态
Type 3: 接近 EVM 等价(更快的证明速度)
└── 可能需要少量代码修改
Type 4: 高级语言等价(最快的证明速度,但需要转译)
└── 目标:zkSync Era (Solidity → Yul → zkEVM)
└── StarkNet (Cairo 原生)
Type 编号越小越兼容,但证明生成越慢。随着硬件和算法进步,Type 1 zkEVM 正在变得越来越可行。
数据可用性问题
Rollup 将交易数据发布到 L1,但这些数据的存储方式至关重要。
为什么数据可用性(DA)很重要?
数据可用性确保任何人都可以:
- 验证 L2 状态的正确性
- 在排序器故障时重建 L2 状态
- 强制将资金从 L2 提取到 L1(逃生舱机制)
如果数据不可用,用户的资金可能被永久锁定在 L2 上。
Calldata vs Blob(EIP-4844)
在 EIP-4844 之前,Rollup 将数据存储在以太坊交易的 calldata 中:
EIP-4844 之前:
Rollup 交易 → calldata(永久存储在以太坊状态中)
成本:每字节 16 Gas(非零字节)
问题:与其他以太坊交易竞争同一个 Gas 市场
EIP-4844 之后:
Rollup 交易 → Blob(临时存储,约 18 天后自动删除)
成本:独立的 Blob Gas 市场,远低于 calldata
好处: Rollup 数据不再与 L1 交易竞争区块空间
**Blob 的关键特性 **:
- ** 临时存储 **:Blob 数据在约 18 天后从共识层删除(但保留承诺值)
- **KZG 承诺 **:使用 Kate-Zaverucha-Goldberg 多项式承诺方案,可以在不下载全部数据的情况下验证数据的可用性
- ** 独立费用市场 **:Blob Gas 有自己的 baseFee 和供需动态
EIP-4844 每个区块支持最多 6 个 Blob(目标 3 个),每个 Blob 约 128 KB。未来的 Full Danksharding 计划将 Blob 数量提升到每个区块 64 个甚至更多。
成本影响实测
Arbitrum 上一笔 Uniswap 交换的成本分解:
EIP-4844 之前:
L2 执行费: $0.02
L1 数据费: $0.40 (占 95%)
总计: $0.42
EIP-4844 之后:
L2 执行费: $0.02
L1 数据费: $0.005 (占 20%)
总计: $0.025
降幅:约 94%
Validium 和 Volition 模式
除了标准的 Rollup,还有两种变体模式,它们在数据可用性上做出了不同的选择:
Validium
**Validium = ZK 有效性证明 + 链下数据 **
标准 ZK Rollup:
执行:链下 ✅
证明: ZK 证明提交到 L1 ✅
数据:发布到 L1 ✅ (最安全但最贵)
Validium:
执行:链下 ✅
证明: ZK 证明提交到 L1 ✅
数据:存储在链下(由数据可用性委员会 DAC 管理)⚠️
** 优点 **:
- 极低的交易成本(不需要在 L1 发布数据)
- 高吞吐量
- 适合游戏、社交等对安全性要求稍低的场景
** 缺点 **:
- 数据可用性依赖 DAC 的诚实性
- 如果 DAC 集体作恶或下线,用户可能无法提取资金
- 安全性低于标准 Rollup
** 代表项目 **:StarkEx(dYdX v3, Immutable X, Sorare)
Volition
**Volition = 用户自主选择数据存储位置 **
Volition 模式:
用户 A: "我的交易很重要" → 数据发布到 L1 (Rollup 模式)
用户 B: "我只是玩游戏" → 数据存储在链下 (Validium 模式)
每个用户(甚至每笔交易)可以自行选择安全级别:
- 高价值 DeFi 操作 → 选择 Rollup 模式,享受完整的 L1 安全性
- 低价值游戏操作 → 选择 Validium 模式,享受更低的费用
** 代表项目 **:zkSync Era(支持 Validium 模式)、StarkNet(规划中)
模式对比
| 特性 | Rollup | Validium | Volition |
|---|---|---|---|
| 数据位置 | L1 链上 | 链下 (DAC) | 用户选择 |
| 安全级别 | 最高 | 中等 | 灵活 |
| 交易成本 | 较高 | 最低 | 取决于选择 |
| 适用场景 | DeFi、高价值操作 | 游戏、NFT | 混合应用 |
| 信任假设 | 仅信任 L1 | 信任 DAC | 用户自定义 |
总结
- **Rollup 的核心原理 ** 是 "链下执行,链上验证"—— 在 L2 处理交易,将数据和证明提交回 L1 以继承其安全性
- Optimistic Rollup 采用 "乐观假设 + 欺诈证明" 模型,7 天挑战期确保安全,EVM 兼容性好,目前生态最成熟
- ZK Rollup 用数学证明保证正确性,无需挑战期即可确认,但证明生成成本高、zkEVM 兼容性仍在演进中
- ** 数据可用性是核心挑战 **——EIP-4844 引入 Blob 将 Rollup 数据成本降低约 94%,Full Danksharding 将进一步扩容
- Validium 和 Volition 在安全性和成本之间提供了更多选择,适合不同场景的灵活需求
延伸阅读
闯关测验
完成 5 道题目,需要 全部答对 才能通关下一章节
如果这节课对你有帮助,欢迎支持作者继续创作 ☕
感谢作者 · Buy Me a Coffee