# OP Stack 小课堂#0 | 初识 OP Stack

By [Optimism 中文](https://paragraph.com/@optimismcn) · 2024-03-25

---

本文由 OP 中文力量成员 Cooper 创作，由 Marcus 进行整理

前言
--

当聊起 OP Stack, 势必会涉及到 Layer2, Rollup 等一系列名词。我将最大限度的在介绍OP Stack之前，先让读者朋友们对这些名词有个基本的概念，了解其含义。考虑到笔者的实力有限，因此不够准确的地方还请海涵斧正！

总的来说，需要提前了解的名词有：

*   Layer2
    
*   Rollup
    
*   Superchain
    

如果读者朋友对这些名词已经非常熟悉，或者你不喜欢这种先了解相关名词的阅读方式，可直接跳至文章第二节：什么是OP Stack?

### Layer2

Layer 2指基于底层[区块链](https://chain.link/education-hub/blockchain)（注：通常也称为“Layer 1网络”）的链下网络、系统或技术，目的是为了扩展底层区块链网络。Layer 2网络可以提升任何底层区块链的吞吐量以及其他性能。

Layer 2网络、系统或技术的核心价值是能够利用底层区块链的**安全性**。其交易数据必须以某种形式被底层区块链网络验证并确认。按照这个标准来看，侧链就不属于Layer 2，因为侧链通常会部署自己的共识机制和验证节点，因此拥有独立于底层区块链的安全机制。

一些区块链为了保障去中心化水平和安全性而牺牲了可扩展性，这类区块链可以利用Layer 2来提高交易吞吐量，并降低交易成本。Layer 2是解决可扩展性问题的方案之一，无需牺牲去中心化水平或安全性就能快速执行交易并实现可扩展性。

上面关于Layer的描述我认为非常好的总结了Layer2的技术定位及特点。其引用自ChainLink的文章，原文链接为：\[[https://blog.chain.link/what-is-a-layer-2-zh/](https://blog.chain.link/what-is-a-layer-2-zh/)\] 如果你想了解更多Layer2的技术细节，不妨从阅读这篇文章开始。

### Rollup

`roll up`翻译成中文，有卷、汇总、整理等意思。事实上这个名字也非常贴合其技术实现方式。Rollup通过将一组交易汇总并压缩成一个单一的交易，然后将其提交到区块链上，从而减少了Layer1上的交易数量和计算负担，达到为Layer1扩容的效果。

以笔者目前查阅到的资料来看，Rollup技术主要有两种类型：Optimistic Rollup和ZK-Rollup。Optimistic Rollup侧重于通过智能合约来验证交易，而ZK-Rollup则利用零知识证明技术来验证交易，从而提供更高的隐私性和安全性。

### Superchain

Superchain, 也可以说是超级链。是Optimism Collective对OP未来发展方向的远景规划。具有超强可扩展性的去中心化计算能力是发展超级链的原始动力。

超级链是一个 L2 链网络，称为 OP Chains，共享安全性、通信层和开源技术堆栈(未来也就是OP Stack)。然而，与多链设计不同，这些链是标准化的，旨在用作可互换的资源。这使得开发人员能够构建以整个超级链为目标的应用程序，并抽象出应用程序运行的底层链。

如果你想了解更多超级链的细节，不妨从这篇文档入手： [https://docs.optimism.io/stack/explainer](https://docs.optimism.io/stack/explainer)

什么是 OP Stack？
-------------

OP Stack 是为 Optimism 提供支持的一套软件——目前以 OP 主网背后的软件实现的形式出现，最终将以 Optimism 超级链及其治理的形式出现。它由Optimism Collective维护，但是正变得越来越社区化，相关权利和职责正逐步向社区下放。

随着超级链概念的出现，对于 Optimism 来说，轻松支持安全创建可在拟议的超级链生态系统中互操作的新链变得越来越重要。 因此，OP Stack 主要专注于创建一个共享的、高质量的、完全开源的系统，用于**创建新的 L2 区块链**。 通过协调共享标准，Optimism Collective可以避免在孤岛中重复构建相同的软件。

**OP Stack可以被视为软件组件，可以帮助定义 Optimism 生态系统的特定层，也可以充当现有层中的模块。** 尽管 OP Stack 当前的核心是运行 L2 区块链的基础设施，但 OP Stack 理论上可以扩展到底层区块链之上的层，包括区块浏览器、消息传递机制、治理系统等工具。

### 当前版本 - Bedrock

Optimism Bedrock 是OP Stack当前正在迭代开发中的版本。 Bedrock 版本提供了用于启动生产质量的 Optimistic Rollup 区块链的工具。 此时，OP Stack不同层的 API 仍然与堆栈中的 Rollup 配置紧密耦合。

### 未来规划

随着 Optimism 的发展，OP Stack 也会逐步发展。 现阶段，OP Stack 的 Bedrock 版本简化了部署新 L2 Rollup 的过程。 随着OP Stack工作的继续，插入和配置不同的模块应该会变得更加容易。 逐步形成OP Stack可以随超级链发展，包括允许不同链无缝互操作的消息传递基础设施。 最终，OP Stack会成为 Optimism所构思的那样。

### OP Stack 的逻辑层级

### 1\. Data Availability Layer

数据可用性层定义了基于 OP Stack 的链的原始输入的发布位置。 OP Stack链可以使用一个或多个数据可用性模块来获取其输入数据。由于OP Stack链源自数据可用性层，因此所使用的数据可用性模块对系统的安全模型具有重大影响。例如，如果无法再从数据可用性层检索某条数据，则可能无法同步链。

**Ethereum DA** 是目前 OP 堆栈中使用最广泛的数据可用性模块。使用以太坊 DA 模块时，源数据可以从以太坊区块链上可访问的任何信息中获取。这包括以太坊调用数据、事件和 4844 个数据 blob。

### 2\. Sequencing Layer

排序层决定如何收集 OP 堆栈链上的用户交易并将其发布到正在使用的数据可用性层模块。在 OP Stack的默认 Rollup 配置中，排序通常由单个专用排序器处理。派生层中定义的规则通常限制了顺序器在特定时间段内保留交易的能力。在未来的期望中，排序将是模块化的，这样链可以轻松选择和更改控制其当前顺序的排序器。

*   Single Sequencer 单定序器；OP Stack的默认定序器模块是单定序器模块，其中专门的参与者被赋予充当定序器的能力。 Single Sequencer 模块允许治理机制确定谁可以在任何给定时间充当 Sequencer。
    
*   Multiple Sequencer 对单定序器模块的一个简单修改是多定序器模块，其中任何给定时间的定序器都是从一组预定义的可能参与者中选择的。各个基于 OP Stack 的链将能够确定并定义可能的定序器集合的确切机制以及从集合中选择定序器的机制。
    

### 3\. Derivation Layer

派生层定义了如何处理数据可用性层中的原始数据以形成经过处理的输入，这些输入通过标准以太坊引擎 API 发送到执行层。

派生层还可以使用执行层定义的当前系统状态来通知原始输入数据的解析。可以修改派生层以从许多不同的数据源派生引擎 API 输入。派生层通常与数据可用性层密切相关，因为它必须了解如何解析任何原始输入数据。

**Rollup 模块**：

Rollup 模块完成从以太坊区块数据、Sequencer 交易批次、存款交易事件等中获取引擎 API 输入的功能。

**Indexer**：

索引器模块是一个还在提案中的派生层模块，当事务发送到数据可用性层模块（如以太坊 DA）上的特定智能合约中发出事件或修改存储时，该模块将派生引擎 API 输入。

### 4\. Execution Layer

执行层定义了 OP Stack 系统内的状态结构，并定义了改变该状态的状态转换函数。当通过引擎 API 从派生层接收到输入时，就会触发状态转换。执行层抽象为 EVM 修改或完全不同的底层 VM 打开了大门。

### 5\. Settlement Layer

结算层是外部区块链上的一种机制，它在这些外部链（包括其他 OP Stack 链）上建立 OP Stack 链状态的**视图**。对于每一条OP Stack链，在一条或多条外部链上可能存在一种或多种结算机制。结算层机制是**只读**，允许区块链外部的各方根据 OP Stack 链的状态做出决策。

“结算层”这个术语源于结算层机制通常用于处理以太坊和代币从区块链中提取的过程。这种提取系统首先涉及向某个第三方链证明目标区块链的状态，然后基于该状态进行提取。结算层本质上只是允许第三方链了解目标链的状态。

一旦交易在相应的数据可用性层上发布并最终确定，该交易也在 OP Stack 链上最终确定。如果不破坏底层数据可用性层，就无法再对其进行修改或删除。它可能尚未被结算层接受，因为结算层需要能够验证交易\_结果\_，但交易本身已经是不可变的。

*   Attestation-based Fault Proof 基于证明的故障证明。该机制使用optimistic protocol来建立 OP Stack 链的视图。一般来说，在OP的结算机制中，**提议者**实体可以提出他们认为是 OP Stack 链当前有效状态的建议。如果这些提案在一定时间段（“挑战期”）内没有失效，则该机制认为这些提案是正确的。特别是在证明机制中，如果预定义各方的某个阈值提供了与提案中的状态不同的有效状态的证明，则提案可能会无效。这对至少阈值数量的预定义参与者的诚实性提出了信任假设。
    
*   Fault Proof Optimistic Settlement 防错乐观解决方案。防错乐观解决机制与当今使用的基于证明的防错机制基本相同，但它用无需许可的故障证明过程取代了多重签名挑战者。正确构造的故障证明应该能够在分配的挑战期内使任何不正确的提案无效。这对防错结构的正确性提出了信任假设。目前，故障证明机制的开发工作仍在进行中。
    
*   Validity Proof Settlement 有效性证明和解。有效性证明结算机制使用数学证明来证明所提出的观点的正确性。如果没有有效的证明，提议的状态将不会被接受。这对有效性证明构造的正确性提出了信任假设。
    

### 6\. Governance Layer

治理层是指用于管理系统配置、升级和设计决策的通用工具和流程集。这是一个相对抽象的层，可以包含目标 OP Stack链和第三方链上的各种机制，这些机制会影响 OP Stack的许多其他层。

*   MultiSig Contracts 多重签名合约。它们是一组收到来自某些预定义参与者的签名阈值时，会执行操作的智能合约。这些通常用于管理基于 OP Stack 的系统组件的升级。目前，这是用于管理 OP 主网上桥合约升级的机制。多重签名合约系统的安全性取决于许多不同的因素，包括参与者的数量、阈值以及每个参与者的安全程序。
    
*   Governance Tokens 治理代币广泛用于分散决策。尽管治理代币的确切功能因具体情况而异，但最常见的机制允许代币持有者对项目必须做出的某些决策子集进行投票。投票可以直接进行，也可以通过委托进行。
    

以上是笔者对OP Stack各个层级的一个功能总结，预期让大家能够初步的认识到各个层级的作用。如果大家想了解各层级的更多技术细节，不妨从官方文档入手：[https://docs.optimism.io/stack/components](https://docs.optimism.io/stack/components)

此外，另一个有意思的事情是，OP Stack其实也非常贴合模块化区块链的实现思路。上述的分层，不仅仅是逻辑上的分层，OP Stack在实现上也将各个层级进行了分离，都是独立的实现。有关于OP Stack模块化的实现的内容，一个可选的学习资料为：

[![]({{DOMAIN}}/editor/youtube/play.png)](https://www.youtube.com/watch?v=jnVjhp41pcc)

总结
--

简单来说，OP Stack 是一整套用于构建 Layer2 链的技术栈。目前已经能让大家非常便捷的搭建起自己的 Layer2 私链。本文基于让大家了解什么是 OP Stack 为目标，向大家初步介绍了OP Stack是什么，有什么作用。同时，也介绍了 OP Stack的 当前实现都有哪些组件或者层级，每个层级都负责什么功能。如果能吸引到朋友们对 OP Stack 产生兴趣，我将感到非常高兴。

**找到我们**

OP 中文力量是由 GCC、LXDAO、PlanckerDAO，登链社区和 TraDAO 共同发起的 Optimism 中文开发者社区，是一个传播 Optimism 技术和公共物品理念的组织，旨在成为链接华语社区和 Optimism 生态的桥梁，促进 Optimism 生态和华语社区内的双向交流，促进公共物品的繁荣。

OP 中文力量是 GCC 中文力量计划旗下专注 OP 生态的中文社区，由 GCC 捐助孵化成立。

**关注 Twitter**: [https://twitter.com/OptimismChina](https://twitter.com/OptimismChina)

**加入 TG:** [https://t.me/optimism\_cn](https://t.me/optimism_cn)

**关注 Mirror:**

[https://mirror.xyz/optimismcn.eth](https://mirror.xyz/optimismcn.eth)

---

*Originally published on [Optimism 中文](https://paragraph.com/@optimismcn/op-stack-0-op-stack)*
