本文是 Onther 发布的“Optimism Bedrock Wrap-Up Series”的第一篇文章,概述了 Bedrock 升级,包括其组件以及在其层中部署的智能合约。Bedrock 升级旨在通过模块化设计、EVM 兼容性,实现快速交易速度、增强可扩展性和潜在的去中心化。
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 生态系统中,从而促进了持续的协作。
图. OP STACK 和逐层模块化结构 (来源:Optimism)
图。按 Bedrock 层组件之间的相关性(来源:Optimism)
OptimismPortal: OptimismPortal 是一个负责处理存款和取款的合约。
BatchInbox: BatchInbox 是 Sequencer 存储交易批次的 L1 地址。它用作 L2 上处理的所有交易批次的存储库,充当 L2 交易数据的存储。此处的批次可以被认为是“优化的交易”的集合。交易批次包括交易的完整详细信息,例如 L2 交易的 calldata 和时间戳。
L2OutputOracle: L2OutputOracle 是一个存储在 L2 上生成的每个区块的输出根(状态根)的存储。Proposers 定期查询 L2 链的最新输出根并将其存储在此合约中。
Rollup-Node(OP-Node: Sequencer / Verifier): Rollup-Node 有两个主要角色,即充当负责区块创建的 Sequencer 和充当验证区块的 Verifier。
图. Rollup-Node 的两个角色 [验证器(蓝色),定序器(红色)](来源:Optimism)
Sequencer 模式: 必须考虑两种类型的交易:一种是来自 L1 的存款交易,每当发生存款时,都会通过 OptimismPortal 收到。另一种是不来自 L1 但在 L2 本身内生成的交易(例如,来自 L2 DApp 的交易或 L2 帐户之间的交易)。
Verifier 模式: Verifier 将自己构建的链的输出根与 Sequencer 提交的 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。为了实现去中心化,需要分离这些角色并使其可供公众访问。
OptimismPortal: 如上文 L1 组件部分所述,它既充当 L2 的入口,也充当 L2 的出口。它为层之间资产和消息的移动提供了一个低级 API。
L2OutputOracle: 与 L1 组件部分中的描述类似,当 Sequencer 发布 L2 输出根时,Verifier 会经历一个验证过程。
仍然为 Legacy Optimism 用户存在的合约
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”函数获得以下参数:
L1Block 合约的目的是:
最新的 L1 区块使用 2 个区块确认以 24 秒的延迟进行更新,以最大限度地减少 reorgs 的影响。
SequencerFeeVault: 一个存储 L2 上的交易费用(将传递给 Sequencer)的 vault。这是在 L2 上进行交易的默认 ETH 费用。
L2ToL1MessagePasser: 一个专门用于存储从 L2 发送到 L1 的消息的合约,用于从 L2CrossDomainMessenger 内部启动提款。
仍然为 Legacy Optimism 用户存在的合约
总而言之,我们全面概述了 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 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!