在凭借理想化叙事制造愿景的同时,Optimism 该如何走向去中心化之路,兑现 “欺诈证明” 机制和多 Squencer 轮换的设想,还有待时间去考验。
作者:Web3er Liu,CatcherVC
原用标题:深度解读 Optimism 扩容方案:基本架构、Gas 机制与挑战 |CatcherVC Research
本文重点
- 出于对安全和去中心化的考虑,ETH 区块 Gas 上限和出块时间无法大改;
- Layer2 扩容的实质是造一条 TPS 更高的链,把这条链的信息挂到以太坊上;
- Optimism 的市场增值空间极大,其 TPS 上限可达 1600,但吞吐量的实际利用率不到千分之一,未来发展潜力巨大;
- 由于未开放对等节点,Optimism 本地 Sequencer 出块后,甚至要 1 小时才可以验证其正确性,延时过长;
- 当前的 Optimism 和 Arbitrum 均由官方运行出块节点,存在严重的中心化问题,其立足根基更多在于项目方的 “信用”,而非 “程序正义” 本身;
- Optimism 在进行 EVM 等效性升级后,其 “欺诈证明” 机制无法使用,官方称将于未来解决该问题。
前言
随着 ETH 合并正式迈入进程,Layer2 和 Rollup 在区块链行内逐渐成为显学。究其本源,Layer2 的目的是提高系统每秒处理的交易数量(TPS),并降低 Gas 费。前者是整个 Layer2 扩容的最核心要点,后者则是提升 Layer2 交互体验的关键。
依照其定义,TPS= 一段时间内处理的交易笔数 / 耗时,套用在区块链领域,若忽略分叉或区块重组等情况,可粗略视 TPS=平均每个区块包含的交易笔数÷出块时间。对普通公链而言,提升 TPS 面对的是区块扩容和出块时间问题,同时,TPS 的实际值还牵涉到公链采用的 Gas 机制,无论是 ETH 还是 BSC 和 Polygon 都不出其右。
但提升区块 Gas 容量或缩短出块时间都会破坏安全性,究其根源,以太坊扩容要面对的是 “不可能三角” 问题,要如何提高效率,又保障安全和去中心化,始终处在纸上谈兵、悬而未决的阶段。
对此,以 Optimism 和 Arbitrum 为代表的 Layer2 凭借高效率、低 Gas 的旗号快速崛起,颇为瞩目。在靠着精妙叙事吸引各路资本、靠着超低 Gas 收获广大用户的同时,其固存的中心化问题却日渐明晰,引起越来越多的关注与质疑。
本文将以重要细节揭示在确保去中心化的前提下,Layer1 扩容所面临的困境,以及典型的高效 Layer2 项目存在的重大问题。
以太坊的 Gas 机制
决定以太坊效率的关键因素之一是其所采用的 Gas 机制。在以太坊系统中,Gas 是一种计量形式,反映了不同操作的复杂度。就像汽车行驶需要消耗汽油一样,在以太坊上交易会产生 Gas 消耗。一笔最简单的 ETH 代币转账,Gas 消耗为 2.1 万。其他类型的操作,如普通的 ERC—20 代币转账,或更复杂的合约交互,可产生几万甚至数十万的 Gas 消耗。
以太坊的单个区块有 Gas 上限,限定了一个区块内全部交易指令可消耗的 Gas 总量,这就好比冰箱塞满后就不能再装东西。在去年的 EIP-1559 实行前夕,单个区块的 Gas 上限约为 1500 万,粗略算来最多可容纳 714 笔 ETH 代币转账,若将平均出块周期 13 秒置入 TPS 计算式,则 EIP—1559 前以太坊的理论 TPS 上限是 55。
但现实中很多交易是 Gas 消耗较高的合约交互,会大幅占用区块的 Gas 容量,实际的以太坊 TPS 均值被压低到 20,拥堵不堪,这使得大量潜在的交易需求被排挤在链外。由于单笔交易的手续费=Gas Used×Gas Price,而 Gas Used 由系统决定,可视为常量,用户发起交易后要付出比别人更高的 Gas Price,才能率先被系统响应。最终,因系统特性产生的的供需缺口造就了高昂手续费,让无数人叫苦不迭。
归根结底,ETH 本质上是关于交易权限的拍卖平台,Gas Price 就是竞标者的出价,交易权限的归属由供需双方通过竞价机制撮合达成。这种设计契合区块链的自由市场原则,却埋下了内卷的种子。
纵观以太坊的历史,每逢有 “加密猫”“5.19” 一类的热点事件激发交易需求,ETH 链就会出现激烈的 Gas War 现象,谁付出的 Gas Price 越高谁的交易先上链,剧烈的价格战让 Gas Price 水涨船高,不能支付高昂手续费的用户被拒之门外,这使以太坊成为名副其实的 “贵族链”,引发了无数争端,也让 EIP—1559 一度成为许多人眼中的 “救星”。
但从事实来看,在去年备受瞩目、对区块的 Gas 机制做出大幅调整的 EIP-1559,其核心作用也只是让 Gas Price 的浮动范围更可控,并降低 ETH 的通胀率及抛压,而非直接压低 Gas Price 或取缔 Gas 竞价机制。
虽然该提案将 ETH 区块的 Gas 上限提升至 3000 万,但只要新区块的实际 Gas 消耗超过 1500 万,下一个区块内的 Gas Price 就会在系统调节下逐级涨价,这个过程可以持续多个区块的时间,直到 Gas Price 极高,拦住绝大多数人,让新区块可收纳的交易数骤减,Gas 消耗量回落至 1500 万为止。
观察统计数据,可以发现在 EIP-1559 施行的前后 6 个月内,以太坊的每日 Gas 消耗仅有不到 10% 的提升。考虑到这 6 个月内出块周期稳定在 13~13.5 秒,则 ETH 每日出块 6500~6650 个,每个区块的 Gas 容量始终稳定在 1500 万上下,并无明显变化。
由于 EIP-1559 没有真正改变区块的 Gas 含量,以太坊的 TPS 没有被改善,手续费居高不下,大量的潜在用户仍滞留在以太坊系统外。
根据相关数据,当前的 ETH 拥有近 2 亿个独立地址,每日处理的交易笔数仅有 100 多万笔;相比之下,Gas 费较低的 BSC(BNB Chain)每日处理的交易笔数高居 500 万以上,其独立地址数却不到 1.5 亿个。粗略估算下,ETH 网络最多满足了约 15% 的交易需求。
出块周期
从另一个角度看,由于 TPS=每个区块包含的交易笔数÷出块时间,出块周期也是关系到 TPS 的关键。同时,出块周期中的几个阶段可映射以太坊业务逻辑中的不同组分,这正是 Layer2 扩容思想的关键点。
需要强调的是,以太坊是由大量服务器节点组成的系统,其业务逻辑包含执行、共识、多方存储 3 个部分。其中,
- 【执行】泛指对交易事件等指令进行处理,得到结果;
- 【共识】指所有节点都认可执行的结果;
- 【多方存储】指多个节点都存储相同的内容,并可供外界读取。
在部分资料中,也将【共识】称为【结算】,将【多方存储】称为【数据可用性】,这些叫法实质是互通的。
而一个出块周期由以下步骤构成:
- 首先,矿池节点间通过【工作量证明】选出一个优胜者,由其来完成【执行】交易的过程,制作新区块;
- 【工作量证明】需要暴力穷举随机数,消耗大量算力,这些任务由矿池内的矿机完成,耗时较长;
- 优胜的矿池节点会按照 Gas Price 的高低,从等待上链的交易事件中抓取一批来【执行】,得出结果,然后把交易信息和结果一并纳入新区块;
- 之后,新区块会被传播给所有的以太坊节点,内容会被检查。具体而言,检查区块的节点会读取其内容,把里面的交易再执行一遍,看出块矿池提交的数据是否正确。这就实现了【共识】;
- 最后,若新区块通过检查,节点们会收录新区块,完成【多方存储】。
所以,一个新区块会被复制超过 2000 份,存储在全网的以太坊节点里。更具体的说,所有的矿池节点、所有的全节点都会存储一份。通过这种形式,以太坊节点间近似实现了 “一致性”。
综上,以太坊的一个完整出块周期,包含【工作量证明】+【执行】+【共识】+【多方存储】4 个阶段。其中,【工作量证明】和【共识】阶段耗时最长。由于以太坊的矿池和全节点合起来超过 2000 个,这些节点要达成【共识】会产生大量的通讯时间;而【工作量证明】是具备弹性的时间填充工具,其设计初衷就是为了让出块周期稳定在 15 秒左右(现出块周期约为 13 秒)。
为何要让出块周期固定在 13 秒?这是出于对安全性和去中心化的考量后,所得出的较优解。由于以太坊节点众多,且物理位置分散,出块太快会增大节点间信息差,破坏【共识】;比如,如果将以太坊出块周期降至 0.1 秒,而将信息传播至美国和欧洲的不同节点时,存在 1 秒的时差,那么美国和欧洲的节点间就会存在 10 个区块的信息差异,这就违背了区块链的设计理念。
如果强行将区块扩容,也会加剧不同节点间的信息差。比如,若将 ETH 区块的 Gas 容量提升 10 倍,则每个区块包含的交易数量会提升 10 倍,不同节点间可产生的信息差也会增加 10 倍。
按照相关资料,直到以太坊完成 POS 转型前,其出块周期都会稳定在 13 秒,转型 POS 后,出块周期也只会缩短 1 秒,稳定在 12 秒。如此算来,POS 转型最多会让以太坊的 TPS 提升 10%,有如杯水车薪。
目前,在保证安全性和去中心化程度不变的前提下,ETH 的区块 Gas 容量与出块时间基本达到理论上的极限,已无太大优化空间。
OP Rollup 扩容方案
如前文所述,出于周全考量,以太坊的区块容量和出块周期无法做出太大变动,其 TPS 基本维持在 20 以下,近两年来从未有太大改善。
对此,ETH 官方以外的扩容方案走上了不同的道路。BSC、Polygon 等完全独立于 ETH 的公链对区块参数做出了修改。以 BSC 为例,目前其区块 Gas 容量上限为 8000 万,可达 ETH 的 2.7 倍;同时,BSC 将参与共识的节点数量压缩至 20 几个,仅为 ETH 的 1%,极大压缩了节点达成共识的时间,出块周期缩短到了 3 秒。这虽然将 TPS 上限提高到了以太坊的 10 倍以上,但却与 ETH 网络 “百炼成钢” 的安全性完全割裂,去中心化程度也远低于 ETH。
以 Rollup 为代表的 Layer2 则秉持不同的理念。虽然其本质也是以太坊之外的公链,但仍在很大程度上依附于以太坊的安全性。比如,OP Rollup(Optimistic Rollup)会把 Layer2 的区块链副本压缩存储至以太坊主网,同时:
- Layer2 本地的出块周期仅保留【执行】交易的阶段;
- 【工作量证明】被取消;
- 【多方存储】功能被转移至以太坊网络;
- 【共识】过程由 Layer2 的验证者节点完成,但并不包含在 Layer2 本地的出块周期内。
Optimism 的原理
以 OP Rollup 方案中最典型的 Optimism 为例,其 4 个最重要的模块分别为 Sequencer(序列器)、Verifier(验证者)、CTC(交易链)、SCC(状态链)。其中,Sequencer 和 Verifier 是有硬件实体的 Layer2 节点,两者基本构成了 Layer2 的节点网络;CTC 和 SCC 是部署在以太坊上的合约,这 4 个模块组成了 Optimism 的核心架构。
Sequencer 是一个中心化的矿池节点,负责在 Layer2 本地出块。Optimism 取缔了【工作量证明】过程,由唯一的 Sequencer 担任矿工,且不会立刻让其他节点做【共识】验证,这节省了大量时间。目前的 Sequencer 执行完交易马上就能敲定区块,本地出块时间甚至只需 1 秒,从根源上提高了 TPS。
但是,Sequencer 具备很强的中心化特征,它实际上制造了一条独立于以太坊的侧链,若没有【共识】和【多方存储】流程,必然缺乏安全保障。为了解决这个问题,Optimism 在其早期文档中指出,Sequencer 必须质押一定量的资产,并且:
- 每隔几分钟,Sequencer 节点会把本地区块的压缩版本存储至 ETH 主网;这些内容包括交易数据的摘要,以及交易发生后的状态根 StateRoot。这个过程就是 Rollup(打包);
- 交易数据的摘要被存入 ETH 上的 CTC(交易链)合约,对应的状态根存入 SCC(状态链)合约。这会产生两笔交易事件,此过程中,以太坊系统只负责【多方存储】内容,不会去检验正确性;
- Layer2 的 Verifier(验证者)会自动读取 Sequencer 存储至以太坊的内容,对其进行审查,这个步骤与以太坊的【共识】类似。
- 当前的 Optimism 和 Arbitrum 均由官方运行 Sequencer 节点,存在严重的中心化问题。
CTC 和 SCC 是 Optimism 官方部署在以太坊上的合约,两者以 Batch(批次)的结构,分别记录了 Layer2 交易数据的摘要,以及每笔交易执行后 Layer2 状态树的根哈希值。从外观看,CTC 和 SCC 就像两个账单列表。
(注:状态树是一个数据库,记录链上地址的信息。获取状态树根和交易数据摘要,便可拼凑出 Layer2 本地的区块内容。一般而言,SCC 合约中存储的 Layer2 状态根更为重要,获取状态根后,结合交易数据进行计算,便可知晓 Sequencer 是否擅自改写了用户地址余额。)
Layer2 的 Verifier(验证者)会自动读取 CTC 和 SCC 这两个合约中的记录,尽量拼凑出 Sequencer 本地的区块内容,并进行验证。
- 若 Verifier 发现 Sequencer 提交的数据有问题,便可发起质疑(挑战),并提交自认为正确的版本,挑战成功便可改写 CTC 与 SCC 中的错误数据,并获取一定量的代币奖励;
- Sequencer 若被挑战成功,确认有不诚实行为,则受到一定惩罚,其质押的资产会被扣除一部分;若质押余额低于划定的阈值,则 Sequencer 被强制除名,不再有出块资格;
- 以上便是 “欺诈证明” 机制,指 Verifier 可披露 Sequencer 的欺诈行为。
- Verifier 和 Sequencer 之间达成的【共识】具有严重滞后性。一笔交易提交后会立刻被 Sequencer 执行,但 Verifier 获取状态根、对结果进行最终验证却可以在 1 小时之后。
- Optimism 在 2021 年 11 月进行了 EVM 等效性升级,其 Sequencer 和 Verifier 客户端取缔了旧版 OVM 虚拟机,基于旧版 OVM 设计的 “欺诈证明” 程序无法运转,而新版的 “欺诈证明” 程序尚未发布。
按照此前技术文档,Optimism 将挑战的窗口时间设置为 7 天,若 7 天内没有 Verifier 发起挑战,则 Sequencer 发布的内容被敲定,无法再改写。
从本质来看,Optimism 是由 Layer1 和 Layer2 上的软硬件实体组合成的跨域交互系统,其独特的业务逻辑是在以太坊上构造 Layer2 区块的映射版本。由于需要跨域传输信息,Optimism 的 Sequencer 和 Verifier 需要运行以太坊客户端 Geth 的山寨版:L2geth,通过该软件,Sequencer 方可实现横跨 Layer2 和 Layer1 的交互。
Optimism 的 Gas 机制及其细节
在 Gas 费问题上,由于 Optimism 业务流程有向以太坊存储数据的步骤,其每笔交易的 Gas 费=Layer1 部分+Layer2 部分,而 Arbitrum 和 Metis 等其他 OP Rollup 方案也不外如此。
其中,Layer2 部分主要涉及 Sequencer 节点执行交易的费用。由于 Sequencer 的 TPS 上限极高,且当前 Optimism 的用户较少,其本地 Gas Price 超低。计算公式为:L2 Gas 费=L2 Gas Used×L2Gas Price。
- 据 OP 官方披露,一笔交易的 Layer2 部分仅占 0.4%,剩余 99.6% 的 Gas 开销来自于 Layer1 部分。[1]
- 将其转化为简单的算式: 0.4%×执行费用 + 99.6%×存储费用。
不难看出,交易的执行费用已经被大幅缩小了。
所以,执行步骤越复杂的交易(期权等),在 Optimism 上可节省的成本越多。比如,以太坊上一次要 100 美元的期权操作,在 Optimism 上只需要 1.5 美元左右,仅为 1/60;以太坊普通转账要 3 美元,Optimism 可能要 0.3 美元,为 1/10。
而 Layer1 部分的 Gas 费,公式= 比例系数×(固定开销+存储开销)。其中,固定开销 来自于打包数据和跨域传输的过程,存储开销 是在 ETH 上存入数据产生的 Gas,比例系数 则由 Optimism 官方设定,主要是为了预留出一部分资金,防止 ETH 主网 Gas 价格激增,无法把数据顺利存上链。
若想深入理解,可以观察 Rollup(打包)和存储的具体步骤:
- 在将一批交易数据存储至以太坊前,Sequencer 会压缩内容,然后将这批交易组合成 Batch(批次),传输给 ETH 网络节点。
- 每个 Batch 可包含几百笔交易数据,就像区块一样。发布 Batch 的时间周期由 Sequencer 动态调整,目前约为 3~10 分钟左右。
所以,打包和传输 Batch 的过程必然有工作量,这会消耗一定的计算资源,固定开销可以填补这部分成本。目前,Optimism 上每笔交易的固定开销 Gas 为 2100。Optimism 官方表示,随着未来用户规模扩大,每个 Batch 收纳的交易数量增加后,固定开销将进一步下调。
而在 Layer1 上存储 Batch 时,Sequencer 会以文本数据 Calldata 的形式向 CTC 合约传入 Batch 信息,一般而言,文本数据只用于存储,不会被用于执行运算。比起普通的合约调用,这一步大量节省了 Gas。
一般每隔几分钟,Sequencer 就会向 CTC 传输一个交易 Batch,其体验就像在以太坊上构建由交易 Batch 构成的链表。之后,Sequencer 又会将交易 Batch 对应的状态根 Batch 存入 SCC(状态链)合约,该过程与上面提到的类似。
以上过程会消耗 Gas,具体的 Gas 消耗量视存储的内容多寡而定。不同的交易类型会产生不同的数据量,存储费用也不尽相同。
OPtimism 的理论 TPS 上限究竟能达到多少?
要探究 Optimism 的理论 TPS 上限,我们应当设想一种临界状态:
- Sequencer 本地出块速度远高于以太坊主网,那么 Layer2 原生内容和 Layer1 副本内容之间一直有信息差△。随着 Layer2 用户增多,实际 TPS 激增,Layer2 和 Layer1 间信息差△可以被扩大;
- 当 Optimism 逼近其理论 TPS 上限时,Layer2 和 Layer1 间每秒的信息差△可以非常大。所以,此时 Optimism 必须尽快向以太坊主网提交数据,不惜一切代价同步数据;
- 最终,Sequencer 发起的指令,占用了以太坊区块的全部 Gas,也即以太坊上全部可用的资源,都为 Optimism 所用,每一个以太坊区块里收纳的都是 Sequencer 提交的数据;
- 以 EIP-1559 后每个以太坊区块的 Gas 上限为 3000 万来计算,若 Optimism 本地执行、向以太坊提交的也都是最简单的转账操作,则此时 Optimism 的 TPS 上限约为 1600 左右【2】。
综上所述,Optimism 的 TPS 上限至少为以太坊的 16 倍。考虑到目前 Optimism 用户太少,实际 TPS 甚至不到以太坊的 3%,其发展空间最大可达现在的 500 倍。
对以上内容进行整理,结合实际调查,在此归纳得出:
- Sequencer 节点自己制造了一条 TPS 极高的区块链,这便是扩容之源。虽然效率极高,但因其高度中心化,Sequencer 可能作恶或宕机;
- 为了增强安全性,Optimism 要求 Sequencer 质押一定资产,并要求 Sequencer 在 ETH 主网上披露 Layer2 区块关键信息,Verifier 会自动读取,检查准确性;
- 由于存储在 ETH 上的交易数据是被压缩过的,且以太坊节点不负责具体执行这些交易,不负责验证数据的正确性,这可以大量节省 Gas。目前,在 Optimism 上执行复杂的期权操作,Gas 费可低至以太坊的 1%。
Verifier 和 Sequencer 之间达成的【共识】具有严重的滞后性。一笔交易提交后会立刻被 Sequencer 执行,但 Verifier 获取状态根、对结果进行最终验证却可以在 1 小时之后。由于延时过长,可存在多种类别的攻击场景,这对 Optimism 的安全性是潜在的威胁。
- Verifier 受到的激励 = 挑战成功的代币奖励 - 节点运行成本。发布 “欺诈证明” 且挑战成功是一个不可预测的事件,概率不高,所以 Verifier 受到的激励不强,此类节点的数量不易扩充,共识和安全性仍然弱于以太坊。
如前文所述,扩充 Verifier 最有效的方式是增强激励,或者开放对等节点网络。对于尚未发行代币也未开放对等节点的 Optimism 而言,难以像 Metis 那样通过自己发行的代币激励验证者。所以,当前的 Optimism 在如何扩容验证节点规模、增强验证的时效性上,均面临着不小的挑战。
- 值得注意的是,目前 Optimism 和 Arbitrum 等 OP Rollup 的 Sequencer 节点均由官方提供,所以,Sequencer 惩罚机制是否有效,尚且存在争议;目前 Optimism 和 Arbitrum 的安全性更多来自于项目方的 “信用”,而非 “程序正义” 本身;
- 颇为重要的是,Optimism 在 2021 年 11 月进行了 EVM 等效性升级,其 Sequencer 和 Verifier 客户端取缔了旧版 OVM 虚拟机,基于旧版 OVM 设计的 “欺诈证明” 程序无法运转。而新版的 “欺诈证明” 程序尚未投入运行,目前挑战机制无法生效。
结语
尽管如今的 Optimism 炙手可热,表现出巨大的发展前景和增值空间,但如前文所说,其仍面临着过度中心化的问题。GavinWood 曾说:“真正的去中心化和安全性比高效率更有价值。” 如果无法及时让用户参与网络维护,那么所谓的 Layer2 将和传统金融平台毫无区别。
在靠着理想化叙事制造扩容愿景的同时,已经 “大而不倒” 的 Optimism 该如何走向去中心化之路,兑现 “欺诈证明” 机制和多 Squencer 轮换的设想,还有待时间去考证。但可以确定的是,从长期看,只有真正的去中心化可以在历史的风沙之中屹立不倒,永世长存。
参考文献
免责声明:作为区块链信息平台,本站所发布文章仅代表作者及嘉宾个人观点,与 Web3Caff 立场无关。本文内容仅用于信息分享,均不构成任何投资建议及要约,并请您遵守所在国家或地区的相关法律法规。