原文:《WAGMi Ventures以太坊生态专题(二)5分钟了解Optimism发展历史与未来方向》
作者:0xMoonda
以太坊作为单片区块链在用户与应用发展到一定体量后,受区块链「不可能三角」的制约,缺点日渐凸显。为解决困境衍生出链上扩容与链下扩容两个方向。Optimism 是一种链下扩容解决方案,将交易数据放在链上,在链下运行计算,增加以太坊 TPS 的同时降低 gas 费用。虽然交易发生在 Optimism 上,但数据会发送至以太主网进行验证,因此这种方案不会牺牲以太坊的去中心化程度与安全性。同时 Optimism 在 EVM 兼容度方面的进展较为显著,是目前 L2 中唯一实现 EVM 等效性的 rollup。
Optimism 是如何解决以太坊扩容问题的?
Optimism 网络中有两种节点:sequencer 与 verifier。sequencer 与 verifier 都会运行 L2Geth,L2Geth 是由 Optimism 创建的改良版轻量级 Geth(基于 Go 语言开发的以太坊客户端)。所以,Optimism 网络与以太坊网络非常相似。上线之初,Optimism 只有一个由团队管理的 sequencer,计划在稳定运行后进行去中心化。
网络的运行流程大致如下:
- 用户将交易发送至 sequencer,sequencer 会对在 L2 中的交易副本进行处理;
- 处理完成后,sequencer 将交易数据与更新后的 L2 stateRoot 提交至 L1;
- 上面提到的其它节点开始处理 L2 副本中的交易;
- 为确保提交至 L1 的新 stateRoot 的正确性,verifier 会将其新的 stateRoot 与 sequencer 提交的 stateRoot 进行对比;
- 若存在差异,便会进入欺诈证明(Fraud Proof)流程,即在 L1 中执行 L2 的交易,确保 stateRoot 结果的真实性;
- 若欺诈证明的 stateRoot 结果与 sequencer 提交的 stateRoot 结果不同,那么 sequencer 的初始质押会被削减,前一笔交易的 stateRoot 会被删除,sequencer 将重新计算失去的 stateRoot;
- sequencer 完成去中心化后,若其质押被削减,会有新的 sequencer 将其取代。
交易
在 Optimism 中有两种交易类型至关重要:L2 中两个地址间发生的交易、L1 与 L2 之间的跨链交易
L2 交易流程
- 用户将交易发送至 sequencer,若为有效交易,sequencer 会立即将其添加至 L2(注:此时只有 sequencer 将此交易添加至其 L2 的副本当中)。L2 的块大小仅为 1 笔交易,因此新的区块与交易会被立即添加到链中,在 L2 中矿工无需争夺挖掘新区块,sequencer 取代了矿工的角色;
- sequencer 向 L2 添加交易后,会调用 L1 合约并将所有数据发送至 L1,数据包含所有 L2 交易以及执行交易后的 L2 的新 stateRoot;
- L1 将交易数据与 stateRoot 保存至另一个专为存储而设计的合约中;
- 一旦交易数据成功在 L1 上存储,verifier 就会把交易储存在其在 L2 的副本中。
若 sequencer 在对某一特定用户进行审查,那么该用户可提交数据并自行调用合约。然后,sequencer 会在特定时间范围内强制处理该笔交易。若 sequencer 未执行,那么其质押可能会被削减。
上面阐述了 verifier 核实 sequencer 发布至 L1 数据的过程。verifier 也可选择直接从 L2 进行数据同步,也就是说 verifier 可以在数据被发送至 L1 之前直接从 sequencer 获得新的数据。从 L2 直接同步可以减少延迟,但这种方法不能保证 sequence 仍会将此交易发送至 L1。
跨链交易
为方便调用其它链上的合约或者将 token 从一条链发送至另一条链,跨链在 Optimism 的地位不可忽视。由于涉及多链,其整体流程与 L2 交易略有不同。
L1 -> L2 交易
Optimism 从 L1 至 L2 交互的速度很快,只需 sequencer 将信息发送至 L2。用户将交易数据发送到 L1 的 bridge 合约中,合约会在一定时间范围内将交易添加至 sequencer 必须发送至 L2 的交易队列中,然后 sequencer 会将该交易发送至 L2。
举个例子,如果用户想将 L1 的 10 ETH 发送至 L2 的地址进行交互,流程如下:·用户向 L1 中的 bridge 合约发送 10 ETH;·bridge 合约将 ETH 在 L1 中锁定;·bridge 合约同时将用户的交易添加到 sequencer 必须添加至 L2 的交易的队列中;·sequencer 开始处理此笔交易,ETH 被成功存入用户的 L2 地址。
L2 -> L1 交易
L2 至 L1 的交易相对复杂,L1 必须确保交易后的 L2 stateRoot 具备有效性。用户将交易发送至 L2 的指定合约,然后中继器进行读取并将交易发送至 L1。Optimism 应用 JavaScript 服务运行中继器,使用 sequencer 和 verifier 与 L2 进行交互。
举个例子,如果用户想将 L2 的 10 WETH 转回至 L1,流程如下:·用户将 10 WETH 发送至 L2 的 bridge 合约;· bridge 合约销毁 WETH 并将交易信息发送至 L2ToL1MessagePasser 的智能合约中,合约记录了需要从 L2 发送至 L1 的交易数据;·中继节点从 L2ToL1MessagePasser 读取交易数据,等待欺诈证明窗口(7 天)完成,然后将交易发送至 L1;·交易在 L1 中进行处理,用户此时可从首次发送至 L2 时锁定 ETH 的 bridge 合约中取出 ETH。
欺诈证明窗口为 verifier 预留了充足的时间来证明 sequencer 发布的 stateRoot 对这个交易来说是否准确。
L1 中存储的交易与 stateRoot
由于每笔交易的数据与 stateRoot 的结果必须保存至 L1 中,那么降低数据所占空间对于降低系统存储成本来说至关重要,以下过程阐述了 L2 数据是如何被保存至 L1 的:
- sequencer 获取多个 L2 连续交易的 calldata 并将它们组合为一个批次;
- sequencer 将这个批次发送至 CanonicalTransactionChain 合约中;
- 智能合约对每笔交易的 calldata 进行散列处理,为这些哈希值创建默克尔树;
- CanonicalTransactionChain 合约收到该批次的默克尔根并将其发送至专门用于存储的合约中。
上述过程将交易汇总,创建了默克尔树,保存了默克尔根。stateRoot 的存储方式与以上流程类似,只不过汇总 stateRoot 的合约变为 StateCommitmentChain。在这种情况下,L2 的交易在 L1 中的状态更改是将新的默克尔根添加至用于存储的合约中,这种方式要比将每笔交易都保存至存储合约中更为高效。
欺诈证明(Fraud Proof)
欺诈证明是 Optimism 生态中非常重要的部分,其主要目的是保证 sequencer 输出结果的真实性。若 sequencer 将虚假的 stateRoot 发布至 L1,那么 verifier 就可以启动欺诈证明程序并在 L1 上执行对应的 L2 交易。然后将欺诈证明的 stateRoot 结果与 sequencer 提交至 L1 的 stateRoot 进行比较。若结果不同,sequencer 的质押会被削减,前一笔交易的 stateRoot 会被清除并重新进行计算。因此,所有的 L2 交易可以保证在 L1 中完成运行。
欺诈证明可以由任何人发起,但通常是由 verifier 发起的,因为它们会检查 sequencer 提交的每个 stateRoot 的有效性。欺诈证明的整个流程由 Optimism 提供的一套 L1 合约管理,使用合约时,用户可以在 L1 中重新执行 L2 的交易,生成正确的 stateRoot。如果生成的 stateRoot 与 sequencer 发布的 stateRoot 不匹配,合约就会削减 sequencer 的质押,还会删除上一笔交易所对应的 stateRoot。
Optimism 的出现极大地提高以太坊网络的可扩展性,在吞吐量不变的基础上,降低了 gas 成本。L1 网络中的以太坊全节点承担着处理交易的职责,由于网络包含节点的数量众多,使计算成本变得非常昂贵。Optimism 将交易交由一小组节点(sequencer 与 verifier)处理,使交易的计算从 L1 中脱离出来,而交易的 calldata 仍在 L1 上得以保留,这样为 L1 上的节省了大量区块空间,使其可以处理更多交易。
Optimism 的技术更新与进展
Optimistic Virtual Machine(OVM)
OVM 是一个功能完善且与 EVM 兼容的执行环境,是专为 Optimism L2 的使用而创建的,通过 Web3 API 与以太主网交互。总体来看,OVM 与 EVM 其实非常相似,但进行了优化与改进,方便修改或删除上下文相关的操作码(如 TIMESTAMP 或 ORIGIN)。操作码在不同的链执行时,输出的结果不同。但在 OVM 中进行优化后,所有的交易都可以在不同的链上重新执行,输出相同的结果。OVM 本质上是一个沙盒环境,可使 L2 交易在其它链上被重新执行与确定。这样 verifier 就可以创建欺诈证明并在 L1 上重新执行交易,输出正确的 stateRoot。
Optimism Bedrock
Bedrock 是由 Optimism 设计并开发的 rollup 基础设施,通过模块化与极限分割的方式实现对交易费用、网络性能以及生成区块过程的优化。Bedrock 中包含一个新的 L2 衍生流水线,这个流水线也是唯一一个在发送交易数据至以太坊网络的过程中可以最大限度节省 gas 费用的 rollup 基础设施。Bedrock 也是唯一一个将以太坊引擎 API 作为分隔共识客户端或执行客户端的 rollup。待以太坊扩容方案 EIP-4844 (proto-danksharding) 上线后,Optimism 可以与 data blob 无缝集成,大幅降低 gas 费用。作为 rollup 客户端,Bedrock 在对 rollup proof 的选择上非常灵活,目前使用的是 Optimistic proof(Cannon),就当前情况来看 Optimistic rollups 的优势较为明显,后续可根据需要转换为 ZK proof。Bedrock 的结构与以太坊的 post-Merge 十分相近,分为 consensus layer(CL)与 execution layer(EL),具体如下:
- L1 Ethereum:CL: Beacon Node - E.g. PrysmEL: Execution Engine - E.g. Geth
- L2 Bedrock:CL: Rollup Node - OP-nodeEL: Execution Engine - OP-Geth
OP Stack
在介绍 OP Stack 之前有必要先了解一下 Optimism Collective。Optimism Collective 是由 Optimism 推出的治理系统,成员为社区、公司与公民,由 Citizens’ House 和 Token House 共同治理,以推动去中心化系统发展。OP Stack 就是为 Optimism Collective 创建的开源软件栈,为其生态系统赋能,主要包含以下两部分:
1.链式栈(Chain Stack):运行去中心化应用,分为 Consensus Layer、Execution Layer、Settlement Layer;
2. 治理栈(Governance Stack):确认产品定位,为其提供资金;
以实现:1.op-chcin 安全的标准化 2.op-chain 工具的标准化 3.op-chain 治理的标准化 4.op-chain 可组合性最大化
最终成为一个可无限组合与扩展的「Superchain」。(推荐阅读:《一文读懂Optimism旗舰版本OP Stack:俯视Cosmos,这条“超级链”的野心到底有多大?》)
Optimism 生态发展数据
协议收入
Optimism 的网络收入总体呈小幅震荡上升的状态,9 月的震荡区间为\(1.0k 至\)8.9k 美元;10 月的震荡区间为\(2.9k 至\)11.3k;11 月的震荡区间为\(5.9k 至\)14.3k,11 月 8 日至 11 日四天出现大幅攀升,最高至 $61.2k 后回落至正常状态。
独立地址
Optimism 的独立地址数呈稳步上升趋势。4 月 27 日当天由于空投发放新增地址 45.6 万余个,后进入缓慢增长状态。9 月后独立地址表现为阶梯式增长,日均新增从 2.7k 稳步过渡至 10k。
日交易量
随着独立地址数的上涨,Optimism 的日交易量呈现出相似的增长趋势,进入 9 月后日交易量由 126.1k 逐步攀升至 347.1k,上涨约 175%,11 月 9 日日交易量迎来近期高点达 492k。
日活跃用户
Optimism 的日活跃用户量整体来看呈震荡上升状态。由 9 月初的阶段性低点 8.5k 到 12 月初的 34.8k,增幅为 309.4%。
TVL
Optimism 的 TVL 从 9 月到 10 月之间保持在 9 亿美金上下,直至 FTX 事件之后出现断崖式下跌,触及 5.17 亿美金,下降 42.55%,所受影响较大,目前稳定在 5.56 亿美金左右。
链上应用
Optimism 生态中 TVL 排名前十的应用分别是:AAVE V3、Synthetix、Velodrome、Curve、Uniswap V3、Beefy、PoolTogether、Star gate、Perpetual Protocol、Beethoven X。不难看出,Optimism 网络中非原生应用在 TVL 中所占比例较大,唯一的原生应用 Velodrome 的 TVL 仅占前十应用总 TVL 的 14.64%。
项目交互
从生态内部产品整体交互的情况看(图 1)原生应用 Velodrome、Pika Protocol、Rubicon 交互数量仅占生态内排名前七应用交互总量的 24.87%,这说明原生应用的用户粘性有待加强,可推测现阶段用户使用 Optimism 主要目的是节约在以太 L1 使用的 gas 成本。而导致近 7 天交互应用排名(图 2)与整体交互情况有不同的主要原因是由于用户参与 OP 版「奥德赛」活动的刷量行为,导致短时间内原生产品的交互增加。
跨链
截止至目前,使用 Optimism 进行跨链的用户约为 27.2 万人,跨链总金额约为 44.8 万枚 ETH(按市价折算约为 5.5 亿美元);七日内存款人数为 10.6 万人,七日内跨链总金额接近 1.1 万枚 ETH。与其它 L2 协议 Arbitrum、zkSync、StarkNet 相比,除七日内存款人数排名第一外,其余三个维度的数据均处于第二的位置。
Gas
从 gas 费用来看,Optimism 在众多 L2 协议中转账费用排名第六,比以太坊 L1 的转账成本低了 83%。Swap 的费用在 L2 协议中排名第四,比在以太坊 L1 进行 swap 的成本低 95%。(注:下图中所显示的费用是浮动的,但变化幅度相对较小)
Optimism 未来展望
Optimism 生态内现有应用 240 余款,但大多数为非原生产品的生态扩张与迁移。若从将其视为一个独立生态的角度看,原生应用的开发与获客仍然有很大的上升空间。随着 Bedrock 的逐步成熟,Optimism 与以太坊基础设施的集成协议值得关注;其次,OP Stack 所带来的 Superchain 概念是否会衍生出跳脱于现有 rollup 的新概念 L2 也需进一步的探讨。此外,待 EIP-4844 上线之后在 Optimism 的 gas 成本继续降低的条件下是否有机会超过同类型的 rollup 因而获得竞争优势也是一个值得观察的部分。