> For the complete documentation index, see [llms.txt](https://bitvm.gitbook.io/doc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bitvm.gitbook.io/doc/bitvm/base-knowlege/optimistic-rollups.md).

# Optimistic Rollups

> 英文原文：<https://www.nervos.org/knowledge-base/what_are_optimistic_rollups>
>
> 中文来源：[https://medium.com/@NervosCN/](https://medium.com/@NervosCN/%E5%85%B3%E4%BA%8E-optimistic-rollups-%E4%BD%A0%E9%9C%80%E8%A6%81%E7%9F%A5%E9%81%93%E7%9A%84%E9%83%BD%E5%9C%A8%E8%BF%99%E9%87%8C-3e3706f33218)

## 什么是Optimistic rollups？

Optimistic rollups 是 Layer 2 扩展解决方案，旨在从其构建的底层 Layer 1 区块链中卸载一些交易处理，以提高交易吞吐量。它们之所以被称为“optimistic”，是因为它们假设第 2 层上的所有交易在默认情况下都是有效的，并且只有在验证者在争议期间质疑其有效性时才会验证交易。

Optimistic rollups 在链下执行交易，然后将许多交易进行打包，然后再将它们提交到基础链。与 ZK-Rollups 或状态通道等其他 2 层扩展解决方案相比，Optimistic Rollups 的优势包括相对简单和较低的交易成本，这是以延长争议期或取款时间为代价的。

与零知识相比，Optimistic Rollups 的另一大优势是它们更全面，并且可以像它们所构建的底层区块链一样支持智能合约。对智能合约的原生支持意味着开发人员可以相对轻松地在 2 层网络上部署他们现有的去中心化应用程序，并且只需进行少量代码调整。

虽然存在多种通过 2 层网络扩展区块链的不同方法，但 Optimistic rollups 是最流行的解决方案。

## 什么是 2 层网络？ <a href="#a928" id="a928"></a>

Layer 2 是一个通用术语，用于扩展解决方案，这些解决方案在远离主区块链的单独网络或“层”上处理交易，但也借用或利用主链的安全性。最后一部分是 2 层扩展解决方案（如状态通道和 rollup）与其他扩展解决方案（如侧链）之间最关键的区别在于，后者连接到 1 层网络但具有自己的安全机制。

区块链利用 2 层网络进行扩展，因为它们的交易吞吐量非常有限，这意味着它们在高需求时会变得拥挤，从而导致用户的交易费用非常高。寻求在链上扩展的区块链必须牺牲去中心化、安全性或两者兼而有之，这对许多人来说通常是不可接受的权衡。出于这个原因，许多 1 层区块链最近开始采用更加分层的方法来扩展，这意味着利用例如 Nervos 或以太坊的 rollup，或者像比特币的闪电网络这样的状态通道。

## Optimistic Rollups 如何运作？ <a href="#fada" id="fada"></a>

如前所述，Optimistic rollups 是一种 2 层扩展解决方案，旨在通过将交易和计算移出主链、减少拥挤，并在基础链上实现更快、更便宜的交易，从而帮助提高区块链网络的吞吐量和效率。

<figure><img src="https://miro.medium.com/v2/resize:fit:1400/1*47MHf5eiR0ENghywksZdpw.jpeg" alt="" height="394" width="700"><figcaption></figcaption></figure>

为此，Optimistic rollups 在底层 Layer 1 部署了一个特定的智能合约，称为 rollup 合约，该合约负责管理 rollup 的状态，跟踪用户余额，处理存款、取款和争议解决。在 Optimistic rollups 中，交易由“排序者”或“操作员”在链下收集和聚合，他们将多个交易捆绑在一起成为一个“rollup 块”。该块包含新帐户状态的摘要和加密证明（Merkle 树根）。之后，定序器通过提供 Merkle 树根和称为“calldata”的附加数据将汇总块提交给主链，这些数据将用于稍后验证 rollup 块的有效性。

这里需要注意的是，术语“optimistic”来自这样一个事实，即协议假设提交的rollup块在默认情况下是有效的，而不检查每笔交易。这减少了链上计算量，从而减少了 2 层的 gas 费。为了确保 rollup 的安全性或交易的有效性，采用了一种称为“欺诈证明”的机制。如果有人认为 rollup 块中提交的交易无效，他们可以提交“欺诈证明”来质疑它。 “欺诈证明”包含验证者认为欺诈的特定交易的详细信息。

在验证者提交对特定交易有效性提出争议的欺诈证明后，rollup 合约将在链上验证有问题的交易。如果交易确实无效，则 rollup 块将被恢复，挑战者将获得奖励。因此，负责无效块的定序器将受到惩罚。

最后，用户必须向 rollup 合约提交取款请求，才能将资金从 2 层提取到 1 层。合约将验证用户在 rollup 上是否有足够的资金，并相应地更新他们在主链上的余额。

### *1.进入 Rollup*

要将数字资产转移到 Optimistic rollup，用户必须将他们的资金锁定在桥接智能合约中。该智能合约将存款信息从 1 层传输到 2 层，随后在 2 层创建相应的数字资产表示。例如，如果用户想将 1 个 ETH 从以太坊转移到 Arbitrum，他们会将 1 个 ETH 锁定到以太坊上的桥接智能合约中，并在 2 层接收 10 个新铸造的包装 ETH 代币。

<figure><img src="https://miro.medium.com/v2/resize:fit:1400/1*vSgVQdxVxt_HpsGgsHCyIg.jpeg" alt="" height="394" width="700"><figcaption></figcaption></figure>

Sequencer 负责创建 rollup 区块并连接 Layer 2 和 Layer 1 之间的交易信息，然后将 Layer 2 资产表示分配给 Layer 2 上用户的钱包地址。用户在 Layer 1 和 Layer 2 上的钱包地址自动同步。 Layer 1 上的原始资产在用户提取之前一直处于锁定状态，同时他们可以自由地与 rollup 上相应的新铸造资产进行交易。

### *2.使用 Rollup*

一旦用户进入 rollup，他们就可以开始使用包装资产进行交易处理。为此，用户签署交易并将其提交给定序器，定序器在将交易分批发送到 1 层之前假定交易有效。Rollup 智能合约即用于此目的，它利用了前状态和后状态根。前状态根表示交易执行前的 rollup 状态，后状态根表示交易执行后的 rollup 状态。Rollup 合约验证当前状态根是否与前状态根匹配，并在收到来自定序器的后状态根提议后，将前状态根替换为后状态根作为当前状态根。

*3.退出 Rollup*

要从 Rollup 中提取资产，用户必须向桥接智能合约提交提取请求。虽然转账看似简单，但与存款相比需要更长的时间才能完成。当用户提交取款请求并提供 Merkle 证明，证明他们的交易是当前 rollup 状态根的一部分时，取款过程开始，如前一节所述。

用户从 sequencer 获得此证明，然后 sequencer 将用户的取款请求包含在下一批要处理的交易中。但是，提款不是即时的；用户必须等待 7–14 天，这段时间被称为争议期（或挑战过程）。在此期间，任何检测到 rollup 状态之间存在差异的实体都可以对提款过程提出异议，并断言当前批次的交易无效。这些实体称为验证者或验证者，如果他们的欺诈声明被证明是准确的，他们可以获得奖励。在大多数情况下，没有争议索赔，这意味着用户可以在争议期结束后解锁他们在 Layer 1 上的原始资产。

## Optimistic Rollup 的例子 <a href="#f29a" id="f29a"></a>

最受欢迎的 Optimistic rollup 项目是建立在以太坊上的 [**Arbitrum**](https://arbitrum.io/) 和 [**Optimism**](https://www.optimism.io/) Layer 2 网络。

Arbitrum 和 Optimism 是相似的。Arbitrum 在用户想要退出 rollup 时部署多轮欺诈证明，而 Optimism 仅使用单轮欺诈证明。

Arbitrum 的多轮防欺诈允许验证者仅对特定交易而不是整批交易提出挑战。在进行多轮欺诈证明时有一个权衡，因为多轮会减慢 1 层的交易最终确定性。但与此同时，多轮欺诈证明的交易费用也比单轮欺诈证明低。
