跳到主要内容

Optimism 架构

· 阅读需 4 分钟
Tian Pan
Community Hacker

Optimism 是一种 EVM 等价的乐观汇总(optimistic rollup)协议,旨在扩容 Ethereum。扩容 Ethereum 意味着提升以太坊网络能够处理的有效交易数量。Optimistic rollup 是一种第 2 层可扩展性技术,能够在不牺牲安全性或去中心化的前提下增加 Ethereum 的计算和存储容量。EVM Equivalence 表示完全遵循以太坊黄皮书中描述的状态转移函数,即协议的正式定义。

乐观汇总通过将多个交易打包成单个交易来工作,该交易随后由以太坊网络上的智能合约进行验证。此过程称为 “rolling up”,因为各个交易被合并为一个更大的交易并提交到以太坊网络。术语 “optimistic” 指系统默认交易有效,除非被证明无效,从而实现更快、更高效的交易处理。

整体架构

Optimism Architecture

op-node + op-geth

汇总节点可以以验证者或排序者模式运行:

  1. 验证者(亦称 verifier):类似运行以太坊节点,它在本地模拟 L2 交易,不受速率限制。它还能让验证者通过重新推导输出根并与排序者提交的根进行比较,从而验证排序者的工作。如果出现不匹配,验证者可以执行错误证明
  2. 排序者(sequencer):排序者是特权角色,接收来自 L2 用户的交易,依据这些交易生成 L2 区块,并通过批处理器提交给data availability provider。它还会向 L1 提交输出根。目前整个系统只有一个排序者,这也是人们批评 OP 堆栈去中心化程度不足的原因。

op-batcher

批处理提交者,也称为batcher,负责将 L2 排序者的数据批量提交到 L1,以供验证者使用。

op-proposer

提议者生成并提交 L2 输出检查点到以太坊上的 L2 输出预言机合约。待结算期结束后,这些数据即可用于提款。

批处理器和提议者都向 L1 提交状态。为何要分离? 批处理器将交易数据批量收集并提交到 L1,而提议者则提交对 L2 状态的承诺(output roots),从而最终确定 L2 账户状态的视图。二者解耦后可以并行工作,提高效率。

contracts-bedrock

供 L2 与 L1 交互的各种合约:

  • OptimismPortal:L2 交易的入口,这些交易最初是 L1 状态中的智能合约调用。
  • Batch inbox:批处理提交者向其提交交易批次的 L1 地址。
  • L2 output oracle:存储L2 输出根的智能合约,用于提款和错误证明。

Optimism components

如何存款?

如何提现?

对 Optimism 文档的反馈

理解 OP 堆栈可能会因多种因素而变得困难。其中一个因素是大量组件在代码和文档中出现多次,并且名称略有不同。例如,“op-batcher” 与 “batch‑submitter”、以及 “verifiers” 与 “validators” 常被交替使用,导致用户难以准确把握每个组件的具体功能。

另一个挑战是架构持续演进,导致部分设计元素随时间被废弃,而文档未能及时更新以反映这些变化。这会让用户基于过时或不准确的信息进行开发,进一步增加困惑。

为克服这些挑战,建议仔细阅读所有可用文档,保持概念在不同位置的一致性,并随时关注 OP 堆栈的最新变动。必要时进行额外调研或与其他用户、开发者协作,以便全面理解并有效使用这一复杂系统。