详解 Optimism Bedrock 系列 1 - 概述

本文是 Onther 发布的“Optimism Bedrock Wrap-Up Series”的第一篇文章,概述了 Bedrock 升级,包括其组件以及在其层中部署的智能合约。Bedrock 升级旨在通过模块化设计、EVM 兼容性,实现快速交易速度、增强可扩展性和潜在的去中心化。

Bedrock 升级概述

Onther 旨在为当前对 Optimism 和以太坊生态系统的发展感兴趣的开发者提供有价值的信息。

图。Bedrock (来源:Optimism)

本文是 Onther 计划发布的“Optimism Bedrock Wrap-Up Series”系列文章的第一篇。它概述了 Bedrock 升级、其组件以及在其层中部署的智能合约。

考虑到该系列的互连性,我们建议按顺序阅读这些文章,以便获得连贯的理解。

系列 1. Bedrock 升级概述:它提供了 Bedrock 升级、其组件以及在其层中部署的智能合约的概述。 Optimism Bedrock 总结系列 1

系列 2. Bedrock 升级以来的主要变化: 在本节中,我们的目标是阐明 Bedrock 升级引入的重大变化,为全面理解奠定基础,从而顺利阅读本系列接下来的部分。

Optimism Bedrock Wrap-Up Series 2 Bedrock 升级的主要变化

系列 3. 存款/取款流程分析: 我们将对存款/取款流程进行逐步分析,揭示其各层中的核心代码逻辑。

Optimism Bedrock Wrap Up Series 3 存款/取款流程

系列 4. 区块推导: 一旦在 Layer 2(Optimism 主网)上生成区块,系统就会启动一个过程,将这些区块 Roll-up 到 Layer 1。随后,在区块推导阶段,仅使用已 Roll-up 的数据重建 L2 区块。我们将提供详细的步骤指导,并在此过程中进行代码检查。

Optimism Bedrock Wrap-Up Series 4 分析区块推导流程

系列 5. Optimism Bedrock 组件的角色和行为: 作为本系列的最后一部分,我们将全面检查 Op-Batcher 和 Op-Proposer 的角色和操作逻辑。

Optimism Bedrock Wrap-Up Series 5 Optimism Bedrock 的基本组件的角色和行为

介绍

Bedrock 升级(截至撰写本文之日,六个月前进行)标志着 Optimism 的 Layer 2 解决方案的变革性进步。“Bedrock”一词表示构成大陆地壳的一组岩石。这种比喻用于表达为构想的“SuperChain”奠定必要基础的概念,“SuperChain”是 Optimism 生态系统中的一个重要大陆。

图。Superchain(来源:Optimism

SuperChain 体现了 Optimism“将人们联系在一起”的基本价值观,并作为一个去中心化的区块链平台,由建立在 Optimism 的 OP Stack 之上的多个 L2 链组成。值得注意的是,Coinbase 的 Base 和 Binance 的 opBNB 等各种 L2 解决方案最近已集成到 OP 生态系统中,从而促进了持续的协作。

Optimism Bedrock 升级的终极使命

图. OP STACK 和逐层模块化结构 (来源:Optimism)

  1. 快速的交易速度: 目标是最大限度地减少与用户交易传输相关的延迟,从而确保便利性和可靠性。Bedrock 升级已显著将存款延迟从 10 分钟缩短至 3 分钟以内。
  2. 增强的可扩展性: 系统每秒处理大量交易的能力对于为用户提供低费用至关重要。在 Bedrock 升级之前,Optimism 在 Layer 1 上的智能合约中处理 Layer 2 交易结果。但是,Bedrock 通过将结果存储在 EOA 中并采用批量压缩来优化此过程,从而节省了 40% 以上的 Gas 费用。
  3. 模块化: Optimism 的设计理念围绕着模块化负责共识、执行和交易最终性的层。这种方法降低了复杂性,并有助于并行功能的实现。反过来,这使得在 Optimism 模块中直接实现复杂的软件成为可能,从而促进了各种 DApp 的多功能性和 Optimism 链上的结构简化(例如,OP Stack、Superchain)。
  4. EVM 兼容性: Optimism 致力于维护以太坊协议标准,这在其为 Bedrock 创建的 op-geth 客户端中可见。除了以太坊的“geth”客户端之外,还为 Rollup 功能添加了最少的逻辑。与以太坊 EVM 相比,目前 Optimism 中的 OVM 仅显示出较小的差异,总计约 1-2 千行代码。这种战略方法旨在简化主网开发者向 Optimism 生态系统的过渡,突出与以太坊客户端软件的最小差异(例如,L2geth、代码重用、推导)。
  5. 去中心化的潜力: 如果我们要指出 Optimism 目前存在的局限性,那就是 Sequencer 的中心化。目前,还没有 Roll-up 解决方案能够完全实现 Sequencer 的去中心化(网络的平稳运行归功于 Sequencer 的中心化)。作为回应,Optimism 正在积极计划通过引入多个实例来实现 Sequencer 的去中心化。一旦成功实施,这将开放参与网络的机会,任何感兴趣的人都可以成为 L2 区块生产者。

逐层组件

图。按 Bedrock 层组件之间的相关性(来源:Optimism)

OptimismPortal: OptimismPortal 是一个负责处理存款和取款的合约。

  • 对于存款,它向 Rollup-Node 启动一个存款请求交易(DepositTransaction 事件)。在此处存入的以太坊/ERC-20 代币在 L1 上经过锁定过程,然后通过存款交易在 L2 上铸造。
  • 对于取款,它负责从 L2 检索取款交易。在此过程中,它会监督取款验证过程中发件人(取款人,L2Sender)的取款状态,管理整个过程直到取款完成。
  • OptimismPortal 可以由 Guardian(有权暂时暂停存款和取款的地址)暂时暂停或恢复。

BatchInbox: BatchInbox 是 Sequencer 存储交易批次的 L1 地址。它用作 L2 上处理的所有交易批次的存储库,充当 L2 交易数据的存储。此处的批次可以被认为是“优化的交易”的集合。交易批次包括交易的完整详细信息,例如 L2 交易的 calldata 和时间戳。

  • BatchInbox 充当 Legacy Optimism 的 CanonicalTransactionChain (CTC) 合约的替代方案。与 CTC 合约相比,BatchInbox 采用 EOA 地址,从而通过避免执行 EVM 代码来降低 Gas 成本。

L2OutputOracle: L2OutputOracle 是一个存储在 L2 上生成的每个区块的输出根(状态根)的存储。Proposers 定期查询 L2 链的最新输出根并将其存储在此合约中。

  • L2OutputOracle 充当 StateCommitmentChain (SCC) 合约的替代方案。

L2 组件

Rollup-Node(OP-Node: Sequencer / Verifier): Rollup-Node 有两个主要角色,即充当负责区块创建的 Sequencer 和充当验证区块的 Verifier。

图. Rollup-Node 的两个角色 [验证器(蓝色),定序器(红色)](来源:Optimism)

Sequencer 模式: 必须考虑两种类型的交易:一种是来自 L1 的存款交易,每当发生存款时,都会通过 OptimismPortal 收到。另一种是不来自 L1 但在 L2 本身内生成的交易(例如,来自 L2 DApp 的交易或 L2 帐户之间的交易)。

  • 目前,这两种交易类型协同工作以在 L2 链上形成一个新区块。Sequencer 采用 Engine API 来传输与新区块相关的数据,并且 Execution Engine 最终生成该区块并将其合并到 L2 链中。

Verifier 模式: Verifier 将自己构建的链的输出根与 Sequencer 提交的 L2OutputRoot 进行比较。

  • 通过获取 L1 上的 Rollup 数据,Rollup-Node 独立生成一条链并根据 L2 链对其进行验证。在此验证过程中,Verifier 将自己本地生成的链的输出根与已经上传到 L2OutputOracle (L1) 的 L2OutputRoot 进行比较。

因此,Rollup-Node 以两种模式运行(定序器模式/验证器模式),分别理解这两个角色更直接。

Execution Engine (EE): 通过稍微修改以太坊的 Geth 客户端创建,它为 Rollup-Node 提供 Engine API。一旦 Rollup-Node 准备好创建一个区块,实际的区块就会在使用 Engine API 的 Execution Engine 上生成,Engine API 也称为 Engine JSON-RPC API — 执行客户端实现的一组方法。

Batch Submitter (Op-Batcher): 负责将一批交易提交到 BatchInbox 的 EOA 帐户。(详细信息将在本系列的第五部分中介绍。)

Output Submitter (Op-Proposer): 它将输出根(L2 中处理的交易的结果)提交给 L2OutputOracle(详细信息将在本系列的第五部分中介绍。)

*目前,Sequencer 同时充当 Batch Submitter 和 Output Submitter。为了实现去中心化,需要分离这些角色并使其可供公众访问。

部署在每一层的智能合约

L1 合约

OptimismPortal: 如上文 L1 组件部分所述,它既充当 L2 的入口,也充当 L2 的出口。它为层之间资产和消息的移动提供了一个低级 API。

L2OutputOracle: 与 L1 组件部分中的描述类似,当 Sequencer 发布 L2 输出根时,Verifier 会经历一个验证过程。

  • 如果 Verifier 本地生成的链的输出根与 Sequencer 提交的 L2outputOracle 中的输出根不匹配,则应随后启动故障证明。但是,截至目前,故障证明功能尚不受支持并且正在测试中。

仍然为 Legacy Optimism 用户存在的合约

  • L1CrossDomainMessenger: 一个管理层之间移动的消息的合约。
  • L1StandardBridge: 一个为在层之间传输以太坊或 ERC 代币提供标准接口的合约。

L2 合约

L1Block: 用户可以通过 L1Block 合约检索有关最新 L1 区块的详细信息。此合约中的信息每个 epoch 更新一次。一个 epoch 表示验证器在验证期间捆绑在一起的区块分组,定义了检查点之间的区块间隔。对于 Optimism,区块以每两秒一个的速度生成,因此我们将一个 epoch 设置为六个区块。

图. 区块 109844341 中的“L1BlockValues”信息(来源:optimistic.etherscan.io)

在来自 optimistic etherscan 的截图中,最左边的图片显示区块每 2 秒生成一次,最右边的图片显示了第 109844341 个区块(由 L1Block 合约生成)的 L1BlockValue。由此可见,sequenceNumber 是000…000,表示它是该 epoch 的第一个区块。第 109844347 个区块(即之后的第 6 个区块)将标志着下一个 epoch 的开始。

L1Block 合约的地址是 0x4200000000000000000000000000000000000015,你可以通过“getter”函数获得以下参数:

  • number: L2 上最新的 L1 区块的数量。
  • timestamp: 最新 L1 区块的时间戳。
  • basefee: 最新 L1 区块的基本费用。
  • hash: 最新 L1 区块的哈希值。
  • sequenceNumber: epoch 中 L2 区块的序列号(当有新的 L1 区块时,epoch 会发生变化)。

L1Block 合约的目的是:

  1. 计算在 L2 中处理交易时要使用的 L1 Gas 价格。
  2. 验证有关 Sequencer 提交的 L1 区块的信息。
  3. 确定特定的 L1 交易是否已在 L2 上成功处理。

最新的 L1 区块使用 2 个区块确认以 24 秒的延迟进行更新,以最大限度地减少 reorgs 的影响。

SequencerFeeVault: 一个存储 L2 上的交易费用(将传递给 Sequencer)的 vault。这是在 L2 上进行交易的默认 ETH 费用。

L2ToL1MessagePasser: 一个专门用于存储从 L2 发送到 L1 的消息的合约,用于从 L2CrossDomainMessenger 内部启动提款。

  • Legacy 合约地址: 0x4200000000000000000000000000000000000000
  • Bedrock 合约地址: 0x4200000000000000000000000000000000000016

仍然为 Legacy Optimism 用户存在的合约

  • L1BlockNumber: 一个提供最新的 L1 区块数量的合约。
  • L2CrossDomainMessenger: 一个用于从 L2 发送消息到 L1 的合约。
  • L2StandardBridge: 一个为在层之间传输以太坊或 ERC 代币提供标准接口的合约。
  • WETH9: 一个用于实现 Wrapped Ether 的标准合约。

结束语

总而言之,我们全面概述了 Bedrock 升级,强调了其在塑造 Optimism 生态系统中的关键作用。我们的探索深入研究了跨越不同层的复杂组件,阐明了它们的功能和互连。在 OP Stack 上运行的各种 L2 链之间正在进行的协作为持续发展和改进奠定了基础。

当我们深入研究本系列的后续部分时,我们将阐明 Bedrock 升级带来的重大变化和增强。

参考:

OP in Denver: Rollup Recap OP Labs 和 Optimism 基金会的乐观主义者们讨论了以太坊的扩展,这是一次超级棒的经历…

Announcing OPCraft: an Autonomous World built on the OP Stack 使用 OP Stack 构建一个完全链上的基于工艺的体素游戏。

Rollup Protocol Overview 了解 Optimistic Rollups 如何在高层次上运作。

文档

  • 原文链接: medium.com/tokamak-netwo...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
aaronlee94
aaronlee94
江湖只有他的大名,没有他的介绍。