本文介绍了Optimism的OP Stack容错证明机制,重点介绍了其多重证明架构如何通过集成强大的容错证明机制来增强Layer2的安全性和可靠性,从而实现准确的状态转换和高效的争议解决。文章还探讨了容错证明程序 (FPP)、容错证明虚拟机 (FPVM, Cannon) 和争议游戏协议,以及多重证明架构,这些共同增强了系统的强大性。
Tokamak Network 旨在为当前对 Optimism 和 Ethereum 生态系统的发展感兴趣的开发者提供有价值的信息。
来源:Oplabs 链接
本文是 Tokamak Network 计划发布的 3 篇文章“OP Stack 欺诈证明完整版本系列”的第一篇。本文介绍了 Optimism 的欺诈证明程序,详细介绍了其多重证明架构如何通过集成强大的欺诈证明机制来提高 Layer 2 的安全性和可靠性,以实现准确的状态转换和高效的争议解决。
💡 鉴于该系列的互连性,我们建议按顺序阅读这些文章,以便获得连贯的理解。
系列 2. Cannon 的欺诈证明系统: 在本文中,我们概述了
Cannon
(Optimism 的 FPVM),它通过链下执行和链上验证来确保 Layer 2 状态转换的完整性。MIPS.sol
、MIPSEVM
和PreimageOracle
等关键组件协同工作,以实现高效的争议解决。[LINK](https://learnblockchain.cn/article/17376) ]系列 3. 欺诈争议游戏 (FDG) / 二分游戏: 在本文中,我们探讨了 Optimism 的欺诈证明系统如何使用链上 (
MIPS.sol
) 和链下 (MIPSEVM
) 组件来解决 Layer 2 状态争议。我们介绍了提议者和挑战者的角色、PreimageOracle
的数据管理以及确保完整性和安全性的激励结构。此外,我们解释了二分游戏,它将争议分解为单个指令以进行精确验证。[LINK](https://learnblockchain.cn/article/17377) ]
图. “升级提案:欺诈证明”提案的截图(来源:gov.optimism.io 链接)
Optimism (OP) Stack 通过引入欺诈证明进行了重大升级,旨在提高 Optimism 网络的安全性与可靠性。此升级名为“升级提案:欺诈证明”,于 2024 年 6 月 10 日 在 OP Mainnet 上启动,此前已获得治理部门的批准。
💡 可能的最大提款延迟:7 + 3.5 + 9 = 19.5 天
L2OutputOracle
已被删除,并由 OptimismPortal
和 DisputeGameFactory
取代。OptimismPortal
将指向 DisputeGameFactory
合约,而不是 L2OutputOracle
合约。rootClaim
证明提款,而不是引用 L2OutputOracle
合约中的输出。OptimismPortal
智能合约正在改变其方法。L2OutputOracle
来查找包含其提款的确切输出。OptimismPortal
合约来确定 respectedGameType
,并使用此信息从 DisputeGameFactory
查询具有正确 GameType
的最新 DisputeGame
合约列表。GameType
将允许无需许可的提案(任何人都可以提交提案),因此不再强烈保证提案是有效的。欺诈证明,也称为错误证明或交互式游戏,是在区块链系统中使用的一种机制,尤其是在 Layer 2 Rollup 中,用于验证状态转换的正确性。它们通过结构化流程检测和解决争议,从而确保 Layer 2 网络上数据和计算的有效性和安全性。欺诈证明通过提供一种挑战和验证状态转换的方法来增强 Rollup 的安全性和完整性。
欺诈证明程序 (FPP) 负责生成欺诈证明。它识别声明的后状态与从前状态和见证数据导出的实际状态之间的差异。本质上,它验证输出提议者提出的状态转换的正确性。
欺诈证明虚拟机 (FPVM, Cannon) 是一种专门的虚拟机,用于执行欺诈证明程序。它提供了一个安全且确定性的环境来运行 FPP,确保网络中的所有参与者都可以一致且可验证地进行欺诈证明。
争议游戏协议 是一种解决对状态转换存在分歧的机制。当挑战者发现差异并提交欺诈证明时,将触发争议游戏协议。该协议涉及一系列交互和验证,以评估欺诈证明的有效性。如果证明有效,则会拒绝不正确的状态转换,从而确保区块链的完整性。
💡 这三个组件中的每一个都可以以不同的方式实现,这些不同的实现可以组合成各种证明栈,从而有助于解决争议时的证明多样性。
图. Op-stack 中的角色和数据流
Layer 1(以太坊):基础层,包含存储交易数据和状态更改的区块序列。
Layer 2(Optimism): Layer 2 从 L1 读取标头、交易和收据。这些 L1 元素将转换为 Layer 2 可以处理的有效负载属性。
Rollup:排序器负责对交易进行排序(收据)。
Batcher:一个收集交易并将其批量提交到 Layer 1 的实体。此过程有助于确保 Rollup 系统中的效率和成本效益。
Verifier:一个通过验证 Layer 2 是否完全从 Layer 1 派生来确保排序数据的准确性和一致性的实体。验证者检查批量交易和计算,提交证明或验证以确认 L2 上的状态转换正确地反映了 L1 上的状态转换。如果在验证过程中发现任何问题,验证者还会提醒挑战者解决这些差异。
输出提议者:一个专门的验证者,负责处理来自 Layer 1 的数据并推导出 Layer 2 的相应结果。然后,输出提议者将这些结果发回 L1,断言“这是在处理后从 Layer 1 推导出的结果。”
挑战者:如果验证者不同意输出提议者所做的状态或声明,它将承担挑战者的角色。挑战者会监控 L1 上输出提议者所做的不正确声明。如果检测到不正确的声明,挑战者会提交反提案以更正它,从而确保排序数据的完整性和正确性。
单个节点可以同时执行验证者和挑战者的角色。这意味着一个节点可以验证交易,同时挑战其他验证者的验证结果。此系统旨在增强网络的安全性和公平性。验证者和挑战者角色的分离或并发执行为网络参与者提供了各种激励,有助于减少不正确的验证,并维护网络的完整性。因此,虽然同一节点可以同时履行这两个角色,但重要的是要理解每个角色根据具体情况发挥不同的作用。
💡 欺诈证明对于维护 Rollup 流程的完整性至关重要,它确保输出提议者所做的任何不正确声明都由挑战者识别和更正。单个节点可以同时执行验证者和挑战者的角色,这意味着一个节点可以验证交易,同时挑战其他验证者的验证结果。
图. 状态转换和争议过程
约定的前状态:这是网络中每个人都同意的初始状态。它是状态转换的起点。
见证数据:从 Layer 1 派生的新数据,包括标头、交易和收据,这些数据被输入到 Layer 2 系统进行处理。
有争议的后状态:已由挑战者声明并需要验证的输出状态。此状态是将见证数据应用于约定的前状态的结果,并且需要进行质疑和验证。
状态转换程序 (FPP): 此程序采用约定的前状态并应用见证数据以在本地环境中生成下一个状态。该过程包括以下几个步骤:
验证过程:
图. 多重证明架构的自我定制模型
多重证明架构是由 Optimism 开发的一个框架,旨在增强 Layer 2 解决方案的安全性和可靠性。此架构集成了多种欺诈证明机制,允许根据特定需求自由混合搭配和自定义各种组件。通过利用这些适应性强的组件,多重证明架构可确保 L2 状态转换的准确性和可验证性,从而为 Layer 2 操作提供一个强大且值得信赖的环境。这种灵活性使用户可以定制架构以满足不同的需求,从而提高系统的安全性和效率。
角色: 充当 Layer 2 环境中的协调器。
其他版本: Magi
是 Optimism OP Stack 的一个新rollup客户端,用 Rust 编写,旨在通过提供现有 Op-node
客户端的替代方案来增强网络安全性和弹性。它充当共识客户端,向执行客户端提供新区块以推进链,并旨在提高 rollup 网络中的客户端多样性和去中心化。Magi
目前正处于早期开发阶段,正在寻求贡献以改进同步速度和数据可用性等功能,最终目标是成为一个强大、可用于生产环境的客户端。
角色: 基于以太坊的 Go 客户端 (Geth),Op-geth
主要处理交易的执行和验证。
💡 总而言之, Op-node
和 Op-geth
协同工作以确保 Layer 2 中的状态转换被正确排序和执行。 Op-node
协调整个过程,而 Op-geth
执行执行 EVM 操作和验证交易的关键任务。
角色: 在 Optimism 的欺诈证明系统中充当欺诈证明虚拟机 (FPVM)。
其他版本: Asterisc
(RISC-V) 是 OP Stack 的一个实验性欺诈证明 VM,它使用 RISC-V 程序来创建交互式欺诈证明,与 Cannon
兼容,但专为更广泛的未来应用而设计。它包括一个基于 Go 的 RISC-V 模拟器 (rvgo) 和一个用于链上执行的 Solidity/Yul 镜像 (rvsol),支持 32 位和 64 位指令集,但为了简单和确定性而避免了复杂的操作。Asterisc
专注于极简性、安全性和一流的 Golang 支持,使其成为 Cannon
的一个更简单、面向未来的替代方案,目前已完成约 80%。
图. Op-program 服务器/客户端和 FPVM 的交互流程
角色: 通过 RPC 与 Layer 1 和 Layer 2 交互的服务器组件。
功能: 充当 PreimageOracle
服务器,为欺诈证明计算提供必要的预映像数据。
角色: 生成执行跟踪。
功能: 从外部服务器收集数据以允许跟踪重现。这些跟踪用于创建可验证的链上欺诈证明,从而确保虚拟机的执行完整性。
Solidity 实现:
Cannon
包括 MIPS 的 Solidity 实现。Go 实现:
Cannon
还包括 MIPS 的 Go 实现。使用 Cannon:
①. 从 L1 开始初始化:
②. 同步输入:
③. 导出 L2 区块输入:
图. 推导管道中与数据流相反的执行优先级。
Op-node
推导管道处理同步的输入。该管道处理耦合的 L1 和 L2 输入,以生成创建新 L2 区块所需的数据。此派生数据包括构建有效 L2 区块所需的所有信息,确保状态转换的准确性和完整性。💡 推导管道:排序器生成 L2 区块,批量提交者压缩并将生成的 L2 区块信息发送到 L1。基于发送到 L1 的信息重建 L2 链的过程称为“区块推导”。这使验证者能够对排序器生成的区块执行健全性检查。 更多详细信息
④. 处理 L2 区块输入:
⑤. 计算 L2 区块输出:
💡 FPP 基于交互式二分游戏,促进了从前状态到后状态的状态转换。它涉及:
“升级提案:欺诈证明”是 Optimism (OP) Stack 的一项重大进步,它通过确保正确的状态转换和高效的争议解决来提高网络安全性和可靠性。主要变更包括调整了挑战期限、彻底修改了提款流程,以及用
OptimismPortal
和DisputeGameFactory
替换了L2OutputOracle
。欺诈证明程序 (FPP)、欺诈证明虚拟机 (FPVM,Cannon
) 和争议游戏协议以及多重证明架构的集成,巩固了系统的稳健性。此升级增强了开发者和用户之间的信任,从而加强了 Optimism 作为领先 Layer 2 解决方案的地位。
https://www.youtube.com/watch?v=RGts3PSg4F8
- 原文链接: medium.com/tokamak-netwo...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!