深度解读Optimism:基本架构、Gas机制与挑战 | CatcherVC Research 转载 原作者:Web3er Liu,CatcherVC

作者:Web3er Liu,CatcherVC

在凭借理想化叙事制造愿景的同时,Optimism该如何走向去中心化之路,兑现“欺诈证明”机制和多Squencer轮换的设想,还有待时间去考验。

本文重点

  • 出于对安全和去中心化的考虑,ETH区块Gas上限和出块时间无法大改;
  • Layer2扩容的实质是造一条TPS更高的链,把这条链的信息挂到以太坊上;
  • Optimism的市场增值空间极大,其TPS上限可达1600,但吞吐量的实际利用率不到千分之一,未来发展潜力巨大;
  • 由于未开放对等节点,Optimism本地Sequencer出块后,甚至要1小时才可以验证其正确性,延时过长;
  • 当前的Optimism和Arbitrum均由官方运行出块节点,存在严重的中心化问题,其立足根基更多在于项目方的“信用”,而非“程序正义”本身;
  • Optimism在进行EVM等效性升级后,其“欺诈证明”机制无法使用,官方称将于未来解决该问题。
  • 真正的去中心化和安全性比高效率更有价值。如果无法及时让用户参与网络维护,那么所谓的Layer2将和传统金融平台毫无区别。

前言

随着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万为止。

可以看到,Gas Price连续上涨了4个区块的时间

观察统计数据,可以发现在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。

BSC区块的平均Gas上限

以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价格激增,无法把数据顺利存上链。

Optimism官方对手续费结构的解释

若想深入理解,可以观察Rollup(打包)和存储的具体步骤:

  • 在将一批交易数据存储至以太坊前,Sequencer会压缩内容,然后将这批交易组合成Batch(批次),传输给ETH网络节点。
  • 每个Batch可包含几百笔交易数据,就像区块一样。发布Batch的时间周期由Sequencer动态调整,目前约为3~10分钟左右。

所以,打包和传输Batch的过程必然有工作量,这会消耗一定的计算资源,固定开销可以填补这部分成本。目前,Optimism上每笔交易的固定开销Gas为2100。Optimism官方表示,随着未来用户规模扩大,每个Batch收纳的交易数量增加后,固定开销将进一步下调。

而在Layer1上存储Batch时,Sequencer会以文本数据Calldata的形式向CTC合约传入Batch信息,一般而言,文本数据只用于存储,不会被用于执行运算。比起普通的合约调用,这一步大量节省了Gas。

Sequencer向CTC传入的数据,是一堆16进制数形式的字符

一般每隔几分钟,Sequencer就会向CTC传输一个交易Batch,其体验就像在以太坊上构建由交易Batch构成的链表。之后,Sequencer又会将交易Batch对应的状态根Batch存入SCC(状态链)合约,该过程与上面提到的类似。

Optimism提交的状态根Batch

以上过程会消耗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】。

W3.Hitchhiker团队计算的各种Layer2方案理论TPS上限

综上所述,Optimism的TPS上限至少为以太坊的16倍。考虑到目前Optimism用户太少,实际TPS甚至不到以太坊的3%,其发展空间最大可达现在的500倍。

对以上内容进行整理,结合实际调查,在此归纳得出:

  • Sequencer节点自己制造了一条TPS极高的区块链,这便是扩容之源。虽然效率极高,但因其高度中心化,Sequencer可能作恶或宕机;
  • 为了增强安全性,Optimism要求Sequencer质押一定资产,并要求Sequencer在ETH主网上披露Layer2区块关键信息,Verifier会自动读取,检查准确性;
  • 由于存储在ETH上的交易数据是被压缩过的,且以太坊节点不负责具体执行这些交易,不负责验证数据的正确性,这可以大量节省Gas。目前,在Optimism上执行复杂的期权操作,Gas费可低至以太坊的1%。

Optimism上的一笔期权开立操作,只用了1.2美元;以太坊上要100多美元

Verifier和Sequencer之间达成的【共识】具有严重的滞后性。一笔交易提交后会立刻被Sequencer执行,但Verifier获取状态根、对结果进行最终验证却可以在1小时之后。由于延时过长,可存在多种类别的攻击场景,这对Optimism的安全性是潜在的威胁。

Optimism的Sequencer上传到Layer1的状态根Batch,周期居然可以达到1小时

  • 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将和传统金融平台毫无区别。

Gavin Wood曾就去年Solana短暂宕机一事称:真正的去中心化和安全性比高效率更有价值。如果用户不能自己运行网络的全节点,那么这样的项目将和传统银行毫无区别

在靠着理想化叙事制造扩容愿景的同时,已经“大而不倒”的Optimism该如何走向去中心化之路,兑现“欺诈证明”机制和多Squencer轮换的设想,还有待时间去考证。但可以确定的是,从长期看,只有真正的去中心化可以在历史的风沙之中屹立不倒,永世长存。

参考文献

  1. The Road to Sub-dollar Transactions Part 1: Slashing Fees by 30%
  2. 一文了解Layer2的四大解决方案交易成本对比
Subscribe to 三条A
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.