本文档是 L2 链衍生规范,描述了从 L1 数据推导 L2 区块的过程,这是 Rollup 节点的主要职责之一。内容涵盖了从 L1 区块中提取数据、构建批次、处理交易、以及最终生成 L2 区块的整个流程,还包括批量提交的格式、架构设计、以及如何在 L1 重组时重置管道等重要方面。本文档针对rollup节点。
本文介绍了Optimism Rollup中用于保证L1到L2交易(即Deposited transaction)的Gas机制。它详细说明了如何通过燃烧L1的Gas来购买L2上的Gas,以及如何通过EIP-1559类似的费用市场来限制和调节Gas的使用,同时解释了燃烧L1 Gas的必要性,并讨论了防止恶意攻击的机制。
本文档深入探讨了 Fault Proof(也称为欺诈证明或交互式游戏)的组成部分:program,vm,以及交互式的争议解决游戏。
本文档是 Optimism 项目的术语表,详细定义了 L1/L2、区块、交易、排序器、存款、提款、批处理提交、L2 链推导等核心概念。解释了这些概念在 Optimism rollup 中的作用,以及它们与以太坊主链的交互方式,例如排序器如何工作、存款和提款的流程、以及如何从 L1 数据推导出 L2 链。
本文档介绍了OP-Stack的超级链升级,包括协议版本格式、超级链目标、激活规则以及后Bedrock网络升级。协议版本用于标识对OP-Stack规范的支持程度,而超级链目标定义了跨OP-Stack链共享的激活规则和L1合约升级。文章还详细说明了Regolith升级,该升级对存款处理进行了细微更改。
本文档介绍了Optimism网络中的预部署合约,它们位于预先确定的地址,类似于预编译合约,但直接在EVM中运行。
本文档详细阐述了如何从L1数据中推导出L2链,这是rollup节点的核心任务之一。内容涵盖批量提交的各个方面,包括排序、批处理、线格式、架构、L1遍历、有效载荷属性推导,以及引擎队列的使用。同时还描述了在L1链重组情况下如何重置管道,以确保L2链的连续性和正确性。
本文档定义了争议游戏(Dispute Game)的接口,争议游戏用于在乐观rollup中,当对layer2状态的声明产生争议时,由多方参与进行仲裁。文档详细描述了DisputeGameFactory和DisputeGame两个核心接口,以及相关的类型定义,为不同证明系统(如欺诈证明、有效性证明、认证证明)的实现提供了灵活性。
DisputeGameFactory
DisputeGame
本文介绍了Optimism Rollup 的 SystemConfig 合约,该合约用于在L1上发出rollup配置更改的日志事件,这些更改会被L2的区块衍生过程获取并应用。文章详细说明了SystemConfig合约中包含的参数,如batcherHash、overhead、scalar、gasLimit以及unsafeBlockSigner,以及如何读写这些配置。
本文档描述了Optimism Rollup中L2输出根提案的规范。为了实现L2到L1消息传递的信任执行,需要将L2的状态同步到结算层L1。Proposer构建并提交L2状态的承诺(输出根)到L1上的L2OutputOracle合约。本文档详细介绍了L2输出承诺的构造方式,L2OutputOracle合约的接口,以及在面对L1重组时的安全考虑。