什么是 Optimistic Virtual Machine (OVM)?
作者 Alchemy
乐观虚拟机(Optimistic Virtual Machine,OVM)是运行在乐观 Rollup 上的智能合约的执行环境。Optimistic rollups是 layer 2(L2)扩容方案,通过链下执行帮助提升 Ethereum 的吞吐量并降低延迟。Rollups 之所以被称为"混合扩容方案",是因为它们虽然在链下执行交易,但会将重建链状态所需的数据发布到 Ethereum 上。
Optimistic Virtual Machines(OVMs)对乐观 Rollup 的功能至关重要。OVM 使开发者能够在 L2 Rollup 上运行去中心化应用,其体验与在 Ethereum 上运行没有明显差异。
本指南将说明 OVM 的含义,以及它与 EVM、zkEVM 等其他虚拟机的区别。我们还会介绍 Optimism 和 Arbitrum 等主流乐观 Rollup 所采用的 OVM 设计的基本架构。
什么是乐观虚拟机?
Optimistic Virtual Machine(OVM)是一种兼容 EVM 的虚拟机,用于在 layer 2(L2)协议上运行通用计算。
OVM"乐观地"执行交易,也就是说它不强制校验交易的有效性,而是依赖 L1 链来仲裁关于状态转换正确性的争议。这类争议被称为欺诈证明(fraud proofs)。
我们可以拆解这一定义的几个关键组成部分来理解它。
EVM 兼容性
Ethereum Virtual Machine(EVM)是一台"去中心化的全球计算机",使程序能够在 Ethereum 区块链上执行。EVM 由成千上万台独立计算机(节点)组成,任何人都可以调用其提供的计算资源来运行软件(例如智能合约)。
"EVM 兼容"意味着某个系统被设计为可以运行为 EVM 编写或编译的程序。Optimistic Virtual Machine 之所以兼容 EVM,是因为它支持 Ethereum 黄皮书中规定的 EVM 指令集(opcode)。这使得 OVM 无需对代码做重大改动即可执行 Ethereum 智能合约。
乐观执行
虚拟机也可以作为状态机运作,根据输入在不同状态之间转换。在区块链中,共识协议管理状态转换,并制定指导状态转换函数的规则。例如,Ethereum 状态更新的规则由 EVM 定义,并由该网络的工作量证明(PoW)共识来强制执行。
OVM 依赖"乐观执行"模型——协议在接受状态转换之前不会检查其是否有效。这提高了效率,因为在 layer 1(L1)区块链(如 Ethereum)上,就状态更新的有效性达成共识会拖慢处理速度。通过默认假设所有交易都有效,OVM 能够更快地推进。
不过,为保证安全性,OVM 设计允许任何人对状态转换的有效性提出异议——由 L1 链充当裁判。这一过程依赖"欺诈证明",我们将在后文详细说明。
L2 上的通用计算
如果一台虚拟机(VM)支持通用计算,那么在给定正确指令和足够资源的情况下,它可以执行大多数任务。由于 OVM 能够执行任意逻辑(即图灵完备),开发者可以用它来运行各种类型的智能合约。
此外,OVM 运行在 layer 2 区块链上,这是一种运行在基础区块链(此处为 Ethereum)之上的协议。L2 协议是父链的延伸,由 L1 区块链上的智能合约管理。更重要的是,L1 链保证了 L2 OVM 中状态转换的正确性,以及执行背后数据的可用性。

OVM 与 EVM 有何不同?
OVM 与 EVM 类似,二者都用于执行计算。但 OVM 本质上只是 EVM 的一个接口。
EVM 是用于在 L1 上处理交易的虚拟机,但由于每次计算都必须由网络中的所有节点重新执行才能被接受,L1 虚拟机的处理速度较慢。同时,由于要处理的交易数量庞大,而节点每次只能处理少量交易,这也使得成本高昂。
OVM(运行在 L2 上)使用户能够使用 L1 EVM,而无需直接更新后者的状态。相反,OVM 在"链下"(即 L1 链之外)执行交易,但使用链下数据来保证 layer 1 上将会发生的结果。
举个例子:
假设 Alice 在乐观 Rollup 上有 2 ETH,向 Bob 发送 1 ETH。
聚合器(aggregator)将该交易提交给 layer one 上的 Rollup 合约,如果没有被质疑,该交易将作为 Ethereum 上一笔已打包交易的一部分被纳入其中。
通过这种方式,我们保证了在 Rollup 上向 Bob 支付 1 ETH 的交易将通过 Ethereum 主链的共识,并作为后者状态的一部分被最终确定。
这一保证基于以下事实:
- OVM 使用 EVM 的规则来指导交易的执行。如果乐观 Rollup 正确执行了一笔交易,它将在 L1 上被接受。
- 聚合器会在 L1 上发布交易数据,使任何人都能够在交易执行不正确时对其提出质疑。
Bob 和 Alice 可以选择从 Rollup 中提取资金,也可以继续进行交易。
无论哪种方式,他们都能在不在 L1 上执行任何交易的情况下,享受到 EVM 带来的好处。
OVM 与 EVM 之间的其他区别包括:
- 是否强制校验有效性
- 即时最终性
- 交易速度
强制校验有效性
OVM 不强制校验状态转换函数的有效性。例如,恶意的运营方可以把 Alice 的余额转给自己,并将该交易提交到 L1。如果该交易未被质疑,OVM 会直接接受它。
相反,EVM 上的每一次状态转换都必须遵循网络的共识规则才能被接受。
例如,上述场景就不符合这些规则,因为发送方的签名密钥与其公钥不匹配(这是判断交易有效性的标准之一)。
即时最终性
EVM 保证即时最终性。这意味着一旦某个状态转换在网络上被接受,它就是永久性的,不能被更改或撤销。
OVM 无法保证即时最终性,因为它不强制校验交易的有效性(如果最终确定无效交易,会破坏链的完整性)。
相反,只有当 OVM 状态的更新被 L1 链接受之后,它才是最终确定的。
交易速度
如前所述,由于设计上的差异,OVM 的处理能力高于 EVM。单个节点(排序器,sequencer)可以直接写入链,而无需等待其他节点的批准。
这与 EVM 不同,在 EVM 中,除非某笔交易已经被其他对等节点验证并接受,否则节点无法写入链上。这就降低了 EVM 能够处理的交易数量。
OVM 与 zkEVM 有何不同?
如前所述,OVM 主要专注于执行,并依赖 layer one 的 EVM 来强制执行状态更新的规则。因此,在 OVM 中执行的交易只是被提交到 L1,而没有任何关于其有效性的证明。这提高了可扩展性,但也增加了无效交易在 L1 上被最终确定的风险,特别是在没有人对其提出质疑的情况下。
zkEVM(Zero-Knowledge Ethereum Virtual Machine)通过生成密码学证明来解决这一问题,该证明可以证实链下计算的正确性。这为 L1 提供了关于状态更新有效性的强力保证。
zkEVM 与 OVM 一样兼容 EVM,也能够运行智能合约。但它与 OVM 在以下几个方面有所不同:
- 近乎即时的最终性
- 客观证明
- 复杂度
我们来进一步探讨这几点。
1. 近乎即时的最终性
由于有效性证明是在链上验证的,状态转换会立即被最终确定。这消除了在 L1 上最终确定 L2 交易时所需的延迟。
2. 客观证明
零知识证明用于保证虚拟机计算的正确性。这消除了对主观证明(即等待挑战期结束)或欺诈证明来判定交易有效性的需求。
3. 复杂度
zkEVM 比 OVM 更难实现,因为为多个计算步骤生成有效性证明的成本很高。OVM 不需要预先验证链下计算,只在必要时才使用欺诈证明,因此不会受到这种负担的影响。这使得它们比 zkEVM 更容易实现。

乐观虚拟机是如何工作的?
与 EVM 一样,Optimistic Virtual Machine 作为执行计算的运行环境发挥作用。不过,OVM 还需要考虑计算的证明问题,因为乐观 Rollup 依赖欺诈证明来检测无效的状态转换。
执行
OVM 提供了部署和执行合约、监控余额,以及智能合约平台必须执行的其他任务的功能。OVM 接收由 L2 链上某节点发送的交易形式的输入。这些输入会使 OVM 改变其状态并产生输出,例如触发事件或处理支付。
关于 OVM 中执行的其他细节包括 gas、字节码和交易。
Gas
"Gas"指的是在 EVM 中执行程序所需的计算资源。与 EVM 一样,OVM 使用 gas 的概念来限制每笔交易的执行步骤数。
交易发送方必须设置 gas 上限,以指定他们愿意为一笔交易花费多少 gas。这可以防止恶意交易无限运行并耗尽所有网络资源。Gas 费用还用于补偿 L2 节点为执行交易所提供的计算资源。
字节码
字节码指的是 Optimistic Virtual Machine(OVM)能够解释以执行函数的底层指令。用高级、兼容 EVM 的语言(例如 Solidity)编写的智能合约,在部署前必须先编译为字节码。字节码本身作为一系列 opcode 执行,对交易输入执行相应操作。
除少数差异外,OVM 在字节码层面与 EVM 兼容。这意味着你可以将编译好的 EVM 字节码部署到 OVM 中,只需做很小的改动。
交易
OVM 中的交易运行方式与 EVM 类似。交易可以由外部拥有账户(EOA)或合约账户发起。来自 EOA 的交易可以是以下任意一种:
- 资产转移(例如 Alice 向 Bob 发送 5 ETH)
- 合约创建(例如 Bob 向网络发送一笔以编译后的字节码作为数据负载的交易)
- 智能合约执行(例如 Alice 支付购买 5 个 UNI 代币)
同样,合约账户也可以发起交易(称为"消息调用"),接收方可以是 EOA 或另一个合约。合约也可以通过合约创建交易在 OVM 中创建新的合约。
欺诈证明
如前所述,OVM 依赖欺诈证明机制来检测并撤销无效的状态转换。为使欺诈证明生效,OVM 的状态被哈希为 Merkle 树,其根哈希存储在 layer 1 上的 Rollup 合约中。Merkle 树及其根哈希使节点能够对 OVM 状态的不同部分作出声明。
例如,Rollup 运营方在通过执行交易发起状态转换后,需要在提交 Rollup 区块时发布新的状态根。状态根相当于在说:"这一系列交易在执行后,会将虚拟机从旧状态(由旧状态根引用)转换为新状态(由新状态根引用)。"
然而,Rollup 合约无法得知该状态转换是否有效(该系统是"乐观的")。为了防止节点在 OVM 中执行无效的状态更新,Rollup 使用了欺诈证明。
什么是欺诈证明?
欺诈证明只是一种主张,认为某笔交易若被正确执行,会导致与区块生产者所计算的状态根不同的结果。这之所以可行,是因为任何监控 L2 链的人都可以下载提交给 Rollup 运营方的交易,用自己保存的 Rollup 状态副本重新执行这些交易,并独立计算出状态根。
假设 Alice 在 OVM 的旧状态中余额为 5 ETH(由根哈希"0x67989898…"进行密码学指纹标记)。如果她转出 4 ETH,Rollup 就会进入一个新状态(由根哈希"0x7879056…"进行密码学指纹标记)。
如果该交易无效(例如签名不正确),那么它应当回滚,从而使虚拟机的状态保持不变。
然而,假设一个恶意的运营方应用了这个无效更新(也许是将 Alice 的 ETH 转入自己的钱包),他们可以发布这个虽然不正确、但已生效的新状态根,以最终确定该交易。
因此,质疑方的职责就是发布正确的状态根,并宣告该 Rollup 区块无效。这相当于在说:"如果这笔交易被_正确_执行,将会得到一个不同的状态根。"
在基于 OVM 的 Rollup 中证明欺诈的两种方式是什么?
在基于 OVM 的 Rollup 中,证明欺诈通常有两种方法:重新执行交易和二分协议(bisection protocol)。
1. 重新执行交易
在这种方式中,OVM 被"容器化"到运行在 L1 链上的一个智能合约中。该智能合约充当一个沙盒环境,使我们能够在 EVM 内重放某笔 OVM 交易,从而得到正确的状态根。具体做法是提供其他与上下文相关的输入,例如状态和存储,以及有争议的交易本身。
在前面提到的恶意运营方的例子中,该交易将会回滚——使状态根保持不变。计算出的状态根必然会与质疑方的状态根相匹配,从而揭露该恶意运营方并阻止无效的状态转换。

2. 二分协议
二分协议是欺诈证明的另一种方法,旨在最大限度地减少 L1 链在欺诈证明过程中需要完成的工作量。之所以称为二分协议,是因为其设计上的独特之处:
- 该过程始于质疑方对某个断言(assertion)提出异议(Rollup 区块被称为"断言",因为它们是可被质疑的)。
- 断言方随后将有争议的断言划分为两个_相等_的断言,由质疑方选择他们希望质疑的部分。
- 在质疑方选定了另一个要质疑的断言后,断言方再次进行划分。
- 这一过程持续进行,直到双方争议的对象缩小到 OVM 中单个计算步骤的执行结果。
- 此时,断言方需要提供一份单步证明,证明该有争议的执行步骤是正确的。
- 如果断言方未能提交该证明,或 L1 合约认定该证明无效,断言方就输掉这场质疑。
与重新执行交易不同,二分协议无需在链上重新执行整个区块或交易,而这样做成本高昂。它还使得无需为每笔交易发布状态根成为可能,而在通过重新执行交易来证明欺诈时,发布状态根是必需的。
二分协议目前用于 Arbitrum,其他乐观 Rollup(例如 Optimism)也计划采用用于欺诈证明的二分协议。

结语
Optimistic Virtual Machine 是通过将计算转移到链下 Rollup 来扩容 Ethereum 的关键所在。借助 OVM,开发者可以在 L2 链上部署智能合约,而不必面对困扰 Ethereum 的高昂 gas 费用和缓慢的处理速度。此外,欺诈证明机制意味着 OVM 能够提供与 Ethereum 主网上的 EVM 相同的安全保证。
Alchemy 支持在使用 Optimistic Virtual Machine 的乐观 Rollup 上进行构建,包括 Optimism 和 Arbitrum。
立即注册 Alchemy 免费账户,开始构建超快速、可扩展、兼容 EVM 的应用。
相关概览
Rollups2026年8月13日
什么是 ZK rollup?关于零知识证明与 rollups-as-a-service(RaaS)的完整指南
ZK rollup 的工作原理,与 optimistic rollup 的对比,以及 rollups-as-a-service 究竟能帮你省去哪些工作。
Rollups2026年8月11日
ZK-rollup 项目:完整指南
几年前排在 ZK-rollup 榜单前列的大多数项目已经消失。而它们当初押注的证明技术,如今却处于历史最佳状态。
2025年9月18日
rollups 的商业模式(rollup 经济学 2.0)
人人都在谈论 rollups 是 Ethereum 的未来,但对企业而言,推出自己的 rollup 在经济账上是否划算?

构建区块链应用
Alchemy 将最强大的 Web3 开发者产品和工具与资源、社区及专业支持结合在一起。