用EtherScan调查Starknet手续费下降99%的真实原因

时间:2024-09-20 编辑: 浏览:(869)

在本文中,LXDAO的作者0xSamo通过对EtherScan进行灵活运用,对Starknet的链上核心组件、optimistic/zk rollup手续费结构、EIP-4844的blob机制、SHARP系统的费率进行了探索,向大家昭示了Starknet手续费下降99%的真相:坎昆升级降低DA手续费只是辅助原因,真实原因是Starknet发币后国库有了其他收入来源,不必再依赖于手续费创收,所以大幅度下调了L2 Gas Price基准。

前言

EIP-4844作为The Merge之后以太坊最大的升级,吸引了足够多的关注。这次升级引入的Blob临时存储空间,相当于为以太坊这列火车增加了侧挂车厢,在不影响火车原有运行状态的前提下,提供了更便宜的DA空间。

Optimism、StarkNet、Arbitrum等Layer2项目都在短时间内支持了EIP-4844,并获得了显著的降费效果,以下是LXDAO国库在Optimism上为贡献者发放工资时生成的交易,在EIP-4844前后的Gas费竟然相差了100倍。

但在惊喜的同时,我们发现StarkNet作为ZK Rollup的代表,居然也获得了惊人的降费效果,从以前动不动就超过1美元的gas水准,下降到了0.01美元。

Starknet的手续费为何能降这么多

OP Rollup与ZK Rollup对一层DA空间的需求不同

这两者对DA空间的依赖程度是极为不同的。OP Rollup会将近期交易的所有细节,包括用户签名等数据,打包压缩后全部上传到一层网络。它不需要在一层网络进行太多的验算任务,几乎所有的成本都在使用一层网络的DA空间上。

相比之下,ZK Rollup对上链的数据拥有更高的压缩率。比如,它可以不上传Layer2交易的数字签名,仅依靠ZK Proof来确保交易有效;并且,ZK Rollup不需要打包所有交易细节,只需将状态的变化结果打包上链。

举个例子,在二层网络上,有100个用户在USDC/USDT交易对进行了交易,每次交易后,资产合约里的USDC、USDT的余额都会发生变化。对OP Rollup来说,这些交易行为背后产生的DA数据,就是100条交易、200个账户的400次余额变动;

而对ZK Rollup来说,资产合约共计发生的200次变化,可以压缩为2次最终的状态汇总变更,大大减小了DA数据的体积。

ZK Rollup验证ZKP消耗的额外Gas

了解了两者区别之后,大家的第一印象也许是ZK Rollup的Gas费会比较低,但实操过的同学们应该都知道,在EIP-4844之前,StarkNet、ZkSync等ZK Rollup,其费用显著高于OP Rollup,特别是StarkNet,因为采用了STARK算法,其零知识证明的尺寸更大,转账费用往往高于其他Layer2。

(2023年某时刻各L2费用表格)

ZK Rollup没有一上线就将OP Rollup碾压的原因很简单:它虽然对交易数据有更高的压缩率,节省了向一层传输数据的费用,但它要在一层网络上验证零知识证明,增加了计算费用。

Blob只能降低DA费用,对计算部分没有多少帮助,相比于OP Rollup,ZK Rollup在EIP-4844上获得的好处更少,所以当我们看到Starknet从手续费死贵的状态,快速实现了美分级别gas费后,很难不让人惊讶。

探索Starknet的手续费组成

ZK Rollup往往比OP Rollup更复杂。下图是Optimism排序器向一层网络发布DA数据时,生成的交易记录,任何人都能理解为什么EIP-4844落地后,OP的交易费用下降了两个数量级。

但在调查Starknet手续费来源时,本文作者经历了相当大的困难,因为Starknet不同组件之间的交互关系要更为复杂。下面让我们来重溯这整个流程。

消失的一层DA

因为有了探索Optimism手续费结构的经验,我们很自然想到,找到Starknet向主网提交数据的合约地址就可以了,这种关键合约肯定在Etherscan的Gas消耗榜榜上有名,应该是不难找的,比如还没适配EIP-4844的Scroll,其合约至今还挂在Gas消耗榜的顶端。

当我们搜索Starknet关键词之后,会在EtherScan上找到Operator、Core Contract、Memory Page Fact Registry3个相关组件,但第三个看起来和DA相关的合约,在接近两年前就停止使用了。

目前我们能看到Starkent的Operator在不断和Core Contract交互,不断地调用“Update State”函数。

如果我们翻到坎昆升级激活前后的链上记录,会发现Operator的“Update State”行为确实产生了细节变化,首先函数名更改为“UpdateStateKzgDA” ,其次,旧的状态更新函数会向Core Contract传送ProgramOutput、onchainDataHash和onchainDataSize,而新版函数中上传的是ProgramOutput和KzgProof。

这里的KzgProof,俗称KZG承诺,起到的作用类似于Blob的datahash,和Blob中存放的数据有着对应关系。值得注意的是,新版本的状态更新函数,消耗的gas比旧版本的更多。那么问题来了,Starknet到底为何能够把手续费降得这么低?原因到底是什么?

更多资料参考LXDAO旗下的Layer2科普网站MyFirstLayer2:

https://layer2.myfirst.io/zh#3.3-optimistic-rollup

第一次挫败后的分析

虽然第一次探索不太成功,但我们仍然能得到一些推论和猜想。看过 MyFirstLayer2的小伙伴一定知道Rollup的核心问题就是DA问题(数据可用性),而它们都是将关键数据上传到主网,来解决数据可用性问题,这样一来,所有人都能轻松访问到需要获取的数据。

我们回溯一下,OP Rollup简单粗暴地把所有交易指令压缩汇总,打包上传到一层网络,其他人可以下载这些压缩后的数据,然后再解压,Replay每一条交易来知晓二层网络的状态变更。

ZK Rollup则不需要上传完整的交易细节,只需上传State Diff(每个Batch执行前后的状态变化量)。ZKRollup由ZKP来确保State Diff是有效无误的,其他人则可以直接在Prev_GlobalState之上叠加State Diff,知晓二层网络的最新状态。

我们都知道,Blob里的数据只是一串乱码一样的二进制文本,而一层网络只保证Blob数据上传后不被某些恶意节点篡改,但不负责验证这些数据的内容,当然,一层部署的智能合约也无法直接读取Blob里的内容。

因此,如果仍由一层来验证ZK Proof,那ZK Proof肯定不能放在Blob里,所以 我们可以判断,Starknet能够有如此显著的降费效果,与ZKP的关系不大,一定是因为State diff的存放位置变更所致。

下面的任务显然就是确认,Starknet到底把State diff放在哪里了?过去是放在哪儿的,现在究竟是不是放Blob里面。

此外,只能在UpdateState函数的输入参数里找到一个StateRoot也不禁让人怀疑,Starknet是否把原本应该直接上传至主网的数据,改为发送至自己的链下DAC (数据可用性委员会)来,如果真的是这样,那之前Starknet高昂的收费就完全没有道理,只能解释为……

SHARP系统

所幸和 @0xYandhii 讨论之后,让我醍醐灌顶,Starknet在通用型主网上线之前,第一个产品其实是StarkEX,包括去中心化衍生品交易所dYdX也是那个时期的产物。

在主网上线后,原先的产品没有被放弃,而是转而与主网共享一个验证器合约,即SHARP: Shared Proving and Verifying System系统,然后我们找到了 SHARP Blockchain Writer、SHARP Verifier等相关合约。

打开区块浏览器查询相关交易,可以发现SHARP Blockchain Writer进行了以下4类操作:

1. VerifyMerkle:验证默克尔树

2. VerifyFRI:用于确保提交的数据或计算结果遵循特定规则,不需要揭示数据的原像。

3. Register Continuous Memory Page:疑似是向一层网络写入数据时调用的功能。

4. Verify Proof And Register:快则十分钟被调用一次,慢则一两个小时,应该是Starknet攒够足够大量的交易后,统一对这些交易的ZKP进行有效性验证。

不难看出1、2、4是与ZKProof相关的函数,而第3个函数,显然是向一层网络写入数据的步骤,是最有可能与State diff上传相关的功能。

我们推测,1、2、4三个函数的调用手续费,在Blob升级前后没有显著变化,而第3个函数的使用成本,应该显著的降低了,这样就能解释Starknet为何降费效果如此显著。

于是笔者继续翻阅区块浏览器,在EIP-4844前倒数第二个旧版本、倒数第一个版本,已经升级后的最新版本3个时段各取一个验证周期,统计4个函数每次调用时,各自消耗的Gas究竟如何。

结果如下,令人挠头。

第3个和数据发布相关的函数,其费用有下降一半,但从其在一整轮ZK Proof验证过程中的费用占比来说,这个DA费用下降水平证明不了我们前面提出的假设。

探索走到这里几乎就到了山穷水尽的一步,笔者感觉自己就像三体世界里坐在大型粒子对撞机前的物理学家,每个脑细胞都在尖叫着:This doesn't make sense ! 我甚至去 Starknet社区发了一篇帖子询问,但也许是因为问题太复杂,英文社区迟迟没有人回应。

SHARP系统GasUsed探索

至此,我们还剩最后一个小Trick ,之前下载的交易数据csv里面,只有Gas费消耗的ETH ,没有GasPrice、Gaslimit等信息,所以无法排除Gas单价波动对统计结果的影响。于是笔者写了脚本将之前涉及的每一笔交易实际消耗的 GasUsed(Gaslimit 里被使用掉的部分)统计了出来。

这一次我们终于发现了端倪。可以看到在坎昆升级之前,那个名叫RegisterContinuous Memory Page的函数,在每次DA数据上传时会触发2次,一次消耗5万的gas,另一次消耗30万gas。

而坎昆升级之后,几乎所有调用RegisterContinuous Memory Page函数的交易,都只消耗5万gas。

之前我们取的样本太少,正好那一次升级后,正是主网Gas费暴涨的时期,这影响了我们的统计结果,导致我们认为,Register Continuous Memory Page函数的调用成本,在坎昆升级前后都没发生什么变化,而当我们对统计数据进行更广泛的采纳时,很快就发现了问题所在。

按照这个思路我们重新整理了 3 个时刻的 GasUsed 数据,这回合理了许多。至此可以证实,与DA数据上传相关的RegisterContinuous Memory Page函数,确实在坎昆升级后手续费显著降低,这应该就是原本存放State Diff的步骤,而坎昆升级后,DA数据转移至了Blob中。

后续我们在L2beat网站上找到了Starknet的产品结构示意图,可以发现,State diff确实是通过上述函数来存放至以太坊链上的。

(图源:L2BEAT)

最终,我们根据GasUsed的数量计算(以目前随机抽取的较小样本量来宽泛估计),得出结论:Starknet在坎昆升级之后,DA费用大概有4~10倍的变化,略低于一个数量级。

这也符合我们最开始的猜测:在EIP-4844升级后,ZK Rollup获得的好处并不如 OP Rollup那么多。

总结

经过以上探索,我们终于理清了Starnet手续费大幅下降的原因,其结论还是有点耐人寻味。

DA费用大降,但解释不了两个数量级的降幅

可以明确,Starnet之前是把每个Batch中包含的状态变化数据,直接上传到一层网络中的,现在则是将这部分数据放在了Blob中,因此可以在DA数据这部分手续费中,获得略小于一个数量级的降费效果。

但该如何解释Starknet手续费下降99%这个结果?单纯靠DA降费显然远不够。唯一合理的解释就是:Starknet在坎昆升级前,确实“心黑”向用户收了太多手续费。在STRK发币前,Starknet的所有活动、社区激励都需要资金,除了烧投资人的钱之外,在向用户收取的ETH和实际消耗的ETH之间设置剪刀差,可能是Starknet维系运营的方式之一,这才使得此前Starknet的Gas费如此之高。

现在,STRK代币发行为Starknet带来了足够的资金,是时候让Gas回到合理的水准了,趁着坎昆升级把绑在脚上的沙袋一起拆下,展现出的降费效果确实惊艳了许多人。

Rollup历史数据丢失问题

OP Rollup在升级之后,将原本存储在交易Calldata里的数据,转移到Blob这个临时储存区后,其实牺牲了一点去信任性。

在此前,Calldata空间的数据是永久储存的,意味着任何人都能从以太坊主网里下载到足够的历史数据,来验证和同步OPR当前的状态。

但坎昆升级之后,Blob的数据有过期淘汰的设定,如果全网没有任何一个实体保存过去的Blob数据,那么OPR的历史交易记录有可能会丢失。

虽然当前最新的二层网络状态仍然能被保护——因为Blob的保存期限超过OP的 7-14天挑战期,所以每个Blob在即将过期之前,它所对应的二层状态仍然是可信的,这最新的十几天的交易记录滚动地维护着OPR的安全性。

ZK Rollup如果要享受Blob带来的好处,同样需要把重要的二层状态数据,从Calldata空间转移到Blob空间里去。这意味着在一段时间后,我们也不再能像以前一样,依靠一层网络提供的数据来Replay二层的状态。

也许这将成为一种常态,今后所有的二层网络,都依靠Blob维护最新状态的安全,而每一条L2也需要自己另外想办法解决历史交易数据存储问题,如此在安全和效率之间取得更好的平衡。

OP与ZK的融合趋势

过去,第一代的OP Rollup率先上线,而第一代的ZK Rollup上线后没有带来更具竞争力的Gas费。到后续OP Stack、Polygon SDK带来的模块化风潮,OP Stack 甚至计划在将来引入ZK技术来降低挑战期。

这无疑都指向一个事实:OP与ZK两种技术路线并不是你死我活的竞争,他们会互相借鉴,有融合的趋势,只不过这一次是“高贵”的 ZK 向“简单粗暴”的OP学习的一次。

很难想象二层网络的技术在短短两三年之间演化到如此的地步,也许这就是区块链世界的魅力吧。

参考资料:

[1] FeedTheFed. Data availability with EIP4844[EB/OL]. (2024-02-11)[2024-04-16] https://community.starknet.io/t/data-availability-with-eip4844/113065.h

[2] L2BEAT research team. Starknet[EB/OL]. [2024-04-16]. https://l2beat.com/scaling/projects/starknet?selectedChart=activity#contracts.

最新 更多 >
  • 1 ICB币最高的时候是多少钱?

    ICB币最高价ICB币,即比特币身上的一种代币,在去年的币市大热之时也曾被提起。那么,ICB币最高价是多少呢?回顾币市历史,ICB币在去年12月初曾达到了2.8美元的高点,这也是其历史最高价。而此时比特币价格在19000美元左右徘徊,市值达到了历史顶点。不过,ICB币的价格波动也十分剧烈,不少持币者在最高价时卖出,但不久之后价格就开始下跌,一路跌至10美分以下。可见,币市是非常不稳定的,投资需谨慎

  • 2 GRV币历史价格走势怎么样?

    GRV币 —— 一种前景看好的数字货币随着数字货币市场的不断壮大,越来越多的新型数字货币涌入市场。其中,有一种数字货币备受关注,它就是GRV币。GRV币是一种新型的数字货币,自发布以来备受瞩目,受到不少投资者的青睐。那么,GRV币的历史价格走势又是怎样的呢?GRV币价格的起伏摇摆GRV币是一种新兴的数字货币,自从它发布以来就备受关注,市场表现也一直比较亮眼。但是,像所有数字货币一样,GRV币的价格

  • 3 HQR币的创始人是谁

    HQR币的创始人是谁?随着加密货币的应用日益广泛,各种新型数字货币也应运而生。HQR币就是其中之一,在当前市场中备受瞩目。但是,它的创始人是谁?这是许多人都很好奇的问题。下面,我们一起来了解一下HQR币的神秘创始人。HQR币之父华创,一位富有创新精神的年轻人HQR币的创始人是华创,他是一位拥有多年数字货币行业经验并具有创新精神的年轻人。华创在18岁时就开始了自己的数字货币之旅,并在之后的数年中对行

  • 4 HAUS币历史价格走势怎么样?

    HAUS币是一种基于区块链技术的加密数字货币,在近几年中逐渐崭露头角。尽管该币种的历史并不长,但其发展轨迹相当有趣,尤其是 HAUS币的历史价格走势,引起了许多数字货币投资者的关注。接下来,我们将对HAUS币的历史价格走势进行分析,以便更好地了解该币种的市场现状和未来趋势。2017年:HAUS币的诞生2017年,HAUS币应运而生,其初始价格为每个币种约为 0.01美元。当时,这个价格并不算太高,

  • 5 IDH币最高的时候是多少钱?

    IDH币最高的时候是多少钱? IDH币是一个新兴的加密货币,是基于区块链技术创建的。随着加密货币市场的发展,IDH币也逐渐受到了越来越多人的关注。在过去的几年中,IDH币的价格经历了很多波动,其中最高的时候是多少钱呢?回顾IDH币的历史价格,我们可以看到,它的最高价出现在2018年1月。当时,IDH币的价格一度飙升至7.11美元。这个价格虽然不算很高,但是对于一个新兴的加密货币来说,这已经是很不错

  • 6 JEM币最高的时候是多少钱?

    JEM币最高的时候是多少钱?JEM币是一种数字货币,它的诞生让投资者看到了区块链技术在未来的潜力和前途。这种数字货币具有很高的保密性和匿名性,因此被广泛应用于各种金融交易和投资中。那么,JEM币的历史价格走势如何?它最高曾经涨到多少钱呢? 2018年初,JEM币的价格一度高达0.196美元,这是它的最高价。这个价格对于那些早期的投资者和持货人来说应该是一个非常大的鼓励。同时,这也让整个币市开始对J

  • 7 ALPACA币怎么出售

    ALPACA币是一种基于区块链技术的加密货币,它采用了独特的算法和高级的密码学技术来保障交易的安全性和匿名性。该币种的名称来源于被广泛认为是最可爱的动物之一:羊驼。ALPACA币的目标是成为一个稳定且可靠的数字货币,在全球范围内促进无现金交易。如果你想出售ALPACA币,你可以选择以下三个著名的交易所进行交易:欧易交易所、币安交易所和火必交易所。以下是对这三个交易所的简要介绍:欧易交易所:欧易交易

  • 8 HITOP币的创始人是谁

    HITOP币的创始人是谁?在加密货币领域,HITOP币是一个相对较新的数字资产,它的创始人是一位来自中国的数字货币专业人士,他的名字是胡晓罡。据了解,胡晓罡是一位资深的区块链技术专家,他曾供职于中国顶级加密货币交易所之一的火币网,并在该公司担任技术总监。由于对数字货币领域的深刻见解和技术实力,他有着广泛的社交媒体和行业圈内的声誉,是众多投资者和数字货币从业人员的MVP。 HITOP币的创始背景和目

  • 9 ALCX币怎么出售

    ALCX币是由Alpha Homora V2推出的代币,它是目前市场上备受关注的加密货币之一。作为去中心化的借贷平台,Alpha Homora V2使用ALCX币作为其生态系统的核心货币。ALCX币可以用于支付交易费用、获得特权和参与治理等功能,具有广泛的用途。对于想要出售ALCX币的用户来说,选择一个可靠的交易所是至关重要的。下面将介绍三个著名的交易所,它们分别是欧易交易所、币安交易所和火必交易

  • 10 AMAZINGTEAM币用什么app买

    AMAZINGTEAM币是一种加密货币,是为了支持AMAZINGTEAM项目而创建的。AMAZINGTEAM项目是一个具有潜在发展前景的创新项目,旨在通过利用区块链技术和智能合约来提供高效、透明和安全的解决方案。在购买和交易AMAZINGTEAM币的过程中,使用合适的交易所是非常重要的。以下是三个著名的交易所,可以为用户提供安全便捷的购买和交易体验。1. 欧易交易所欧易交易所是全球领先的数字货币交