# 一文读懂Rollup

By [0xAllen](https://paragraph.com/@0xallen) · 2022-08-04

---

什么是Rollup？

Rollup其实就是一个**链上智能合约**加上**链下节点（区块生产者），Rollups 将执行层放在链下，计算和存储都在链下执行。其将大量链下交易数据压缩聚合成一个个**批次（batch），形成call data ，并在达成共识时将call data发布至以太坊主网。

Rollups 中所有资金都由主链上的智能合约持有。链上的智能合约来维护**状态根**：rollup的 _Merkle_ 根（里面包括含义、账户余额、合约代码等）。

任何人都可以发布一个**批次（batch）**，即一个高度压缩形式的交易集合，以及之前的状态根和新的状态根（处理交易\*后的 Merkle 根）。\*合约检查批次中的前一个状态根是否与其当前状态根匹配；如果是，它将状态根切换到新的状态根。

目前大部分项目中，提交批次的人是**排序者** （sequencer），也是Rollup中的链下节点（区块生产者），类似矿工节点的角色，其将用户提交的交易在链下打包处理，进行本地存储和执行用户提交的事务，并定期提交他们接收到的事务的默克尔根以及以太坊上产生的状态根。

\*\*排序者在以太坊上提交完整的事务数据来进行存储，但不能执行（call data），目标是获得[数据可用性（DA）](https://www.notion.so/1d8feff52e7b448688db2e3c66c3a2d8)。\*\*假设所有数据都永久存储在以太坊上，即使排序者消失了，新的排序者也可以从以太坊中检索所有Layer2相关的数据，重建最新的Layer2状态，并从他们的前任离开的地方继续。

rollup具有以下优势：

1.  Rollup 验证器难以作恶，不会破坏状态或窃取资金，数据可用性较强（与侧链不同，侧链安全性依赖于自身节点而不是以太坊）。
    
2.  无需用户活性假设，即使排序器/验证者因数据可用而停止合作，用户也始终可以从 Rollup 中检索资金（与 状态通道、Plasma 不同），极大地增强了用户体验。
    

Optimistic rollup
-----------------

Optimistic Rollups 假定所有交易从一开始就是有效的，并且不经验证就将它们发布到以太坊主网。

为了防止排序者欺诈，Optimistic Rollups 网络提供了一个**挑战期**(challenge period)，由网络**验证者**通过以太坊上的一个**欺诈证明**(fraud proof) 来质疑某笔交易的合法性。挑战期通常为七天。

**排序者和验证者**都必须运行一个以太坊完整节点（不是存档节点），一个完整的layer2节点，才能生成layer2状态。验证者运行的软件负责创建欺诈证明，排序者运行的软件负责捆绑用户事务并予以发布。

*   通过仅在怀疑存在欺诈时执行证明，Optimistic Rollups 显著提高了吞吐量并减少了延迟 (交易确认时间)。
    
*   大多数的 Optimistic Rollups 都具有 **EVM 兼容性。**
    
*   \*\*在挑战期期间，用户可以在 L2 生态系统内使用他们的资产，但无法将资产取回至 L1 链上。\*\*作为对 Optimistic Rollups 中较长的取款等待期的回应，一些快速取款方案正在崛起。比如，通过由社区驱动的流动性池，**Boba Network** 将退出等待期缩短到了几分钟。
    

参考阅读：[https://mirror.xyz/0xe14a62f8A5dA2100ddA3B59fA1d6cfc068435C45/lrqCNt6eAfarp69CG3MiwbDgoH36\_bkZdYJQVhFNPjY](https://mirror.xyz/0xe14a62f8A5dA2100ddA3B59fA1d6cfc068435C45/lrqCNt6eAfarp69CG3MiwbDgoH36_bkZdYJQVhFNPjY)

ZK Rollup
---------

ZK-Rollups 并不是假设所有交易在被证明有效之前是有效的，而是使用**有效性证明**(validity prroofs) 发布到以太坊主网，来立即验证交易。对于每个 Rollup 块，都会生成状态转换零知识证明 ，其中包括了有效性证明，并由主链合约进行验证。

用户和单个受信任的第三方都不需要在线监控 Rollup 区块以防止欺诈。

*   ZK 验证比单独验证每笔交易要便宜得多，并且将状态存储在链下比将其存储在 EVM 上要便宜得多。因此，可以极大地提高可扩展性（约 100-200 倍主网容量）并节省交易成本。
    
*   有效性证明是非常复杂和耗时的，因此与 Optimistic Rollups 相比，ZK-Rollups 存在延迟增加。目前，使用 ZK-Rollups 的交易可以在大约 10 分钟以内完成。
    
*   大多数 ZK-Rollups 目前并不兼容 EVM，但**ZKSync**最近已经在以太坊测试网络上部署了**兼容 EVM 的 ZK-Rollup 方案。**
    

ZK Rollup有多种技术方案：

![](https://storage.googleapis.com/papyrus_images/1bc9c7c808f1a5ce1b2fde4dcf68c40b365f1d60e21027310e91238a029b8fc2.png)

主要分为两大路线：

### 1\. **ZK-STARK（简洁透明的知识论证）**

**STARK 依赖哈希函数来保证安全，使用哈希函数意味着量子抗性。**

starkware采用的技术方案，也是目前估值最高的rollup项目。分为链上和链下两种方案，链上为starknet，链下方案为starkEX。

**（1）StarkEx**

StarkEx是为特定应用的ZK-Rollups设计的**Validium**解决方案，被衍生交易平台dYdX、web3游戏和NFT Marketplace Immutable X采用。Validium是一种扩展解决方案，采用与通用ZK-Rollups相同的有效性证明，**但将交易数据存储在链下**。采用 Validium的风险在于链下数据存储绕过了主网上的交易处理，不具有[数据可用性](https://www.notion.so/1d8feff52e7b448688db2e3c66c3a2d8)，数据可用性管理器可能会控制用户的资产，从而引发安全问题。但是与通用 ZK-Rollups相比，它**显着增强了可扩展性**。

**（2）StarkNet**

StarkNet是StarkWare推出的通用rollup，StarkNet Alpha已上线，暂不支持EVM，Cairo是StarkNet的编程语言。

7月13日，starkware公布了starknet的经济模型，并计划于9月开始使用，starknet将去中心化运营。token初始数量100亿枚，将会分发给StarkNet 生态系统的核心贡献者，包括 StarkWare 和 StarkWare 的投资者（17%）、核心贡献者如StarkNet 软件开发合作伙伴（32.9%）和基金会（50.1%）。基金会部分中有9%会回馈给社区（community rebates）。

**token后续会持续增发，新的铸币和用户的交易费用将会有一部分分发给智能合约开发者**（根据这些合约的用户支付的 L1 和 L2 费用，按比例分配）**和核心开发者，具体机制未定。**

其token主要作用包括：

\*\*(i) 治理：\*\*对于对 StarkNet 的活跃性、安全性和维护至关重要的协议的所有更改，都需要直接或通过委托进行投票。

\*\*(ii) 在 StarkNet 上支付交易费用：\*\*目前，StarkNet 中的费用以以太（ETH）支付。但发币后预计费用将仅使用原生 StarkNet token支付。为了支持良好的用户体验，自动化和去中心化的链上机制将允许用户以 ETH 支付费用。

**(iii) 参与 StarkNet 的共识机制：对 StarkNet 的活跃性和安全性至关重要的某些服务可能需要质押 StarkNet token。这些服务可能包括**排序、在达到 L1 最终性之前达成临时 L2 共识、STARK 证明服务和数据可用性供应等。预计这些服务将在 2023 年实现去中心化。

### 2\. **ZK-SNARK（简洁的非交互式知识论证）**

**SNARK 依赖椭圆曲线来保证安全性，2012年诞生，dash、zcash等使用的技术。**

**（1）zkSync**

最知名的项目是zkSync。它提供链下Validium 解决方案zkPorter和链上通用rollup zkSync。其团队Matter labs于2022年2月在公共测试网上推出了zkEVM，这是第一个与EVM兼容的 ZK-Rollup。

[**zkPorter**](https://medium.com/matter-labs/zkporter-a-breakthrough-in-l2-scaling-ed5e48842fbf) 将数据可用性——重建状态所需的基本交易数据——放在链下而不是以太坊上。相反，zkSync 代币质押者使用权益证明 (PoS) 来保护[数据可用性](https://www.notion.so/1d8feff52e7b448688db2e3c66c3a2d8)。这实现了更高的可扩展性（数万 TPS）和与侧链相当的超低交易费用（在几美分的范围内）。

**（2）Polygon Hermez**

它是Polygon 于2021年8月以 2.5 亿美元收购 Hermez形成的新项目。

Polygon Hermez的矿工角色称为**协调者（coordinator）**，这些人通过生成 zk-proof 来证明链下交易的有效性。协调者将交易捆绑打包，将所有的事务请求汇总在一个单元中，每次 rollup 会执行数千条事务，然后再生成 zk-proof，再通过以太坊上的智能合约验证此 zk 证明。

Hermez 网络**通过拍卖过程**选择下一个协调者。基本上任何人都可以使用 MATIC 代币出价，出价最高的人将赢得在 10 分钟内处理尽可能多的交易的权利，直到选择下一个协调员。这是一个非常有效的过程，因为它要求协调员在这 10 分钟内尽可能多地进行交易，以使获得的回报超过出价。

如果协调者竞标失败，MATIC 代币将被退回原钱包，而那些竞标成功的资金，将有以下三个用途：

*   30% 永久销毁
    
*   40% 用于由以太坊基金会管理的捐赠账户
    
*   30% 用于网络激励，以帮助推动 Hermez 网络的进一步采用。
    

同时，Hermez 团队也正在开发 zkEVM 即 Hermez 2.0。

**ZK-STARK和ZK-SNARK的对比：**

![](https://storage.googleapis.com/papyrus_images/498d057c5523a68ca637627e55f3ee0cf04f3b546177f6995a1a9b4e05b08d1e.png)

SNARK 的证明规模更小，这意味着链上数据存储更少，最终用户支付的 gas 更少。尽管 SNARK 对开发人员更加友好，但 STARK 提供了一些独特的优势，例如会更加透明，不需要受信任的设置，可扩展性更好，而且是 “量子安全” 的，在未来会有更大的潜力。这些优势也曾让 Vitalik 称 STARK 其实是 “更新、更耀眼” 的技术。

### ZK EVM进展

[有关zkEVM，你需要知道的一切](https://www.odaily.news/post/5180714)

[The different types of ZK-EVMs](https://vitalik.ca/general/2022/08/04/zkevm.html)

Gas fee 对比
----------

💬前情：[以太坊gas费用计算](https://www.notion.so/875ffab896674b91ad790f1803fc55e4)

Layer2上的费用主要包含在L1上发布call data的费用以及L2运行Sequencer的费用。而这两部分费用又可以被拆解成为固定成本和可变成本。具体的费用模型如下：

![](https://storage.googleapis.com/papyrus_images/cf65af2c622a9e81c9004e413f1993aff05554a5c65d094f8b11e35348254376.png)

_固定成本（L1）：_

*   验证成本（仅在zk rollups的情况下）=gas范围，通常基于rollup提供者
    
*   状态写入成本=20,000 gas
    
*   以太坊基础交易成本=21,000 gas
    

_可变成本：_

*   每笔交易以gas的形式将call data发布到以太坊，在以太坊上发布call data所需的gas费是非0字节固定16 gas，0字节固定4 gas
    
*   L2 gas fee=通常相当便宜
    

因此，在Layer2上的总成本=固定成本+（交易规模\*call data所需gas），可以看到，这个公式中唯一的变量就是**交易规模**。

根据以上费用模型，理论上来说，\*\*交易规模（batch size）越大，用户的per transaction费用越低。\*\*交易越多，成本将呈曲线型递减，这是Rollup天然的优势，用户越多越便宜。并且Rollup的交易地板价依赖于ETH主网calldata费用，由于EIP 4488可以将calldata以“blob”的形式发布，将非0字节数据的gas由16gas降至3gas，较大程度降低Rollup主网的交易成本，0字节也能适当降低。

理论上来说，Optimistic Rollups 应该有着几乎无成本的交易。与 ZK-Rollups 不同，Optimistic Rollups 不存在繁重的后端计算或数据压缩 (这会进一步增加交易成本)。通常情况下，Optimistic Rollups 运营商会承担运行欺诈证明的成本。然而，将未压缩的数据发布回以太坊会增加交易成本。此外，由于欺诈证明尚未完全部署在这些解决方案上，因此目前 Optimistic Rollups 上的交易成本高于预期。

![](https://storage.googleapis.com/papyrus_images/3db0e16feb393278cd147e1d0e187bbcaabc4eda9ce0faa0368f9753508a41a1.png)

[https://vitalik.ca/general/2021/01/05/rollup.html](https://vitalik.ca/general/2021/01/05/rollup.html)

[https://l2fees.info/](https://l2fees.info/) 2022.7.12

**一文了解Layer2的四大解决方案交易成本对比**

[https://w3hitchhiker.mirror.xyz/7dwD76ZZIlR7ep731K6y9vTTuXGHOojxWSnkXKzqPzI](https://w3hitchhiker.mirror.xyz/7dwD76ZZIlR7ep731K6y9vTTuXGHOojxWSnkXKzqPzI)

**ZK rollup与OP rollup的优劣势对比**
-----------------------------

### **zk的优势：**

**1) 安全性更高**

ZK Rollup 提交的批次无需验证，减少了对验证者等第三方的依赖，用密码安全取代了博弈论的经济安全——你相信纯数学而不是激励参与者。

**2) 资本效率更高**

在 OP中，任何资产的本地提款都需要很长时间（最好的情况：1 周）。这是一个安全参数，如果安全性没有指数级降低，就无法避免。

对于FT，这个问题可以通过流动性提供者来缓解。为了补偿资本机会成本，向用户收取费用以绕过等待期。这对于小金额的取款是可行的，但对于**专业交易者会带来巨大的成本**。对于需要定期在 L1 和 L2 之间转移大量流动性（例如数十亿美元）的机构来说，这种解决方案效率不高，因为流动性提供者不太可能让这么多资金闲置。

**3) NFT 的用户体验**

NFT 的原生提现无法加速——流动性提供者解决方案不适用，因为 NFT 是独一无二的。因此，要提取 NFT，用户必须等待 1 周或更长时间。

在 zkSync 中，任何提款都会在 15 分钟到 3 小时之间完成，当交易活动较多时，时间会更快。

**4) 交易成本更低**

ZK Rollups交易成本更低，因为它需要在链上发布的数据量最少（没有签名和交易参数）。

对于一些常见的用例，zk的成本节省更要显着一个数量级。具体来说，ZK Rollups 只需要将最终的更改发布到状态，并且由于许多事务涉及相同的存储槽，因此可以摊销此成本。例如，同一区块中的所有交易和预言机更新交易都具有零数据可用性成本。

此外，zk rollup具有链下方案（Validium），可以将成本进一步降低，可扩展性进一步加强，而op rollup从根本上说不能具有这样的扩展链外数据可用性，因为验证者无法在没有公共数据的情况下验证每笔交易的有效性。因此，他们不可能为喜欢超低费用而不是安全性的用户提供这样的混合系统。

### op rollup的优势：

**1）智能合约的通用化支持更好**

相比zk，op项目已经是EVM compatible的，以太主网生态可以快速迁移到layer2上，使得生态的建设与繁荣更快更容易。zk虽然也有evm，但开发更难，速度更慢。

**2）性能更高**

![](https://storage.googleapis.com/papyrus_images/95633bafd9f003ecd4e834b7618702c072e1ad49d85ed639f785f10aa0ab164b.png)

排序器的去中心化
--------

对于op-rlp和zk-rlp，sequencer可能会出现不同的风险。op的sequencer有发布虚假交易数据的风险，所以需要验证者定期检查，保证交易数据为真（fraud proof）。

zk-rlp通过zk-proof保证sequencer上传的所有数据一定为真，sequencer没有能力发布虚假交易（所以大部分zk-rollup的sequencer都比较集中，甚至可以一台高性能服务器来完成）。

但是sequencer可以审查交易，改变正常的交易顺序，或者单个sequencer的宕机，也会影响所有layer2交易的进行。Arbitrum的sequencer就在1月份有过宕机，下线了大约 10 个小时。

**所以从长期来看，sequencer非常有可能变成“去中心化”的。**

v神在2021年1月的论文中讨论过\*\*谁可以提交批次（batch）：\*\*有许多思想流派。一般来说，大家都认可，提交批次的人需要提供大笔押金；如果该用户曾经作恶，提交欺诈的批次（例如，具有无效的状态根），该押金将被扣掉一部分，作为对提交欺诈证明者的奖励。但除此之外，还有很多可能性：

*   **完全无政府状态**
    
    任何人都可以随时提交一个批次。这是最简单的方法，但它有一些重要的缺点。特别是，存在多个参与者将生成并尝试并行提交批次的风险，并且只能成功包含其中一个批次。这导致在生成证明和/或在将批次发布到链时浪费大量精力。
    
*   **集中式排序器（sequencer）**
    
    有一个单一的参与者，他可以提交批次（提款除外：通常的技术是用户可以先提交提款请求，然后如果排序器不处理该提款，则下一个批处理，则用户可以自己提交单个操作批处理）。这是最“有效的”，但它依赖于中心角色的活力。
    
    目前，optimism和Arbitrum都采用中心化排序者，就是项目官方，即所有手续费收入都属于项目方。optimism这部分收入目前被项目方在分配为[追溯性公共产品资金](https://www.notion.so/685f9390f74a4eb897e085330f4eb11b)。
    
    ZKSync也采用中心化的排序器，是项目基金会。但相比op，zk的排序器无需信任。但zksync也在探索排序器的去中心化道路，打算通过引入一个独立的共识机制来实现它，该机制具有两个不同的角色：验证者和守护者。[**zkSync 愿景中的去中心化路线图**](https://medium.com/matter-labs/introducing-zk-sync-the-missing-link-to-mass-adoption-of-ethereum-14c9cea83f58)
    
*   **排序器拍卖**：举行拍卖（例如每天）以确定谁有权成为第二天的定序器。这种技术的优点是它筹集的资金可以由e.g. rollup 控制的 DAO来进行分配。（参见：[MEV 拍卖](https://ethresear.ch/t/mev-auction-auctioning-transaction-ordering-rights-as-a-solution-to-miner-extractable-value/6788)）
    
*   **从 PoS 集合中随机选择**
    
    任何人都可以将 ETH（或者可能是 rollup 自己的协议代币）存入 rollup 合约，并且每批的排序者从其中一个存款者中随机选择，被选中的概率与数量成正比存入。这种技术的主要缺点是它会导致大量不必要的资金锁定。
    
    StarkWare计划通过权益证明领导者选举来对 STARK 压缩交易进行排序和证明。虽然该机制是自动化的，但它依赖于网络上节点运行的功能良好的协议软件以及底层以太坊区块链的有效性和持续活跃性。因此，基金会还将充当该协议软件的持续开发、文档和发布的资源，特别是在它与错误修复和效率改进相关时。预计2023年实现。
    
*   **DPoS 投票**
    
    通过拍卖来选择一个排序器。但如果它们表现不佳，token持有者可以投票将其踢出并举行新的拍卖以取代它们。

---

*Originally published on [0xAllen](https://paragraph.com/@0xallen/rollup)*
