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

时间:2024-09-21 编辑: 浏览:(570)

在本文中,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 为什么以太坊面临市场压力?-最新加密货币新闻

    加密货币市场目前正经历着显著的下行趋势,本周的抛售压力不断加剧。比特币(BTC)的价值在过去24小时内下跌了约3%,而以太坊(ETH)的损失更大,为4.38%。这种低迷给整个加密货币市场蒙上了一层阴影,引发了人们对以太坊作为其他山寨币基准的怀疑。 内容隐藏1以太坊的技术信号是什么?2以太坊现货ETF表现如何?投资者的3个关键要点 以太坊的技术信号是什么? 以太坊在其日线图上一直

  • 2 Ripple与OpenEden合作开发代币化国债市场

    Ripple正寻求在目前由以太坊主导的代币化美国国债市场中占有一席之地,因为现实世界的资产繁荣没有放缓的迹象。 代币化平台OpenEden周四宣布,它将首次在XRP Ledger(XRPL)上提供代币化的美国国库券(T-bills)。 OpenEden从投资者那里筹集资金,购买短期美国国债和其他以国债为抵押的反向回购协议。这些国库券被转换为存储在XRPL区块链上的数字TBILL代币。 任何想要铸造

  • 3 XRP将冲向1美元 专家表示错过了好机会也不必担心

    原文来源:钮轱辘瑶一些著名分析师认为,XRP 有望经历暂时的回调,然后出现更具爆发力的价格上涨。市场观察员 Trader Fred 和 Crypto Ed 也持这种观点,他们预测在预期的看涨浪潮之前会出现短期调整。值得注意的是,他们的分析是在XRP 表现优于其他市场时得出的,在其他市场下跌时录得上涨趋势。XRP 在 7 月 19 日跌至 0.54 美元后出现大幅反弹。这一反弹使其在昨天四个月内首次

  • 4 9月降息“8月BTC破新高”新的买入点?

    编辑BTC开门红昨晚数据看着也还行,美股英伟达都在涨,鲍威尔表示,虽然会议尚未就未来行动做出任何决定,但如果经济数据显示通膨放缓,降息最快可能在 9 月实施。他也没放鹰,偏偏就尼玛币圈跌,门接着一个又一个,狗庄这是要把人玩死的节奏。目前 BTC 就看63450这里的一个支撑位了,上一次支撑住了,来了个大级别反弹,连续拉了6天,这一次看能不能撑住了,如果撑不住就看60000吧编辑为什么偏利好行情会在

  • 5 Kaspa触及0.20美元ATH,翻转MATIC的市值:KAS获得更多收益?

    KAS在七天内飙升16.92%后,创下0.2062美元的历史新高。卡斯帕以50亿美元的市值推翻了MATIC。 在过去的七天里,加密货币市场经历了极端的波动。在此期间,比特币[BTC]从6.9万美元跌至6.4万美元,影响了大多数山寨币。 然而,卡斯帕[KAS]仍然顽强地飙升。据CoinMarketCap报道,截至发稿时,Kaspa的飙升已经使Polygon[MATIC]的市值发生了逆转。 KAS在M

  • 6 Arthur Hayes:我为什么开发Ordinals项目Airheads?

    作者:Arthur Hayes,BitMEX创始人;编译:邓通,意义何在?你为什么要这么努力工作?意义在于养活自己和家人,让他们有衣服穿,有住房。但是,一旦你的收入足以满足生活必需品,生活的意义又是什么?在思维机器和丰富的碳氢化合物能源时代,拥有如此多的物质财富,我们为什么还要这么努力工作?人类生存的意义在于消费艺术。艺术有多种形式,但从根本上讲,它是人类为娱乐他人而创造的一种体验。它完全无用,但

  • 7 比特币在美国市场的主导地位上升-最新加密货币新闻

    加密货币市场正在发生重大变化,尤其是比特币。尽管在美联储最近做出利率决定后,价格没有发生重大波动,但中东的地缘政治紧张局势对比特币的价值产生了负面影响。这也导致了山寨币的低迷。有趣的是,在此期间,一家大型加密货币公司对比特币的态度有所不同。 内容隐藏1什么在推动比特币流动性?2为什么比特币在美国越来越受欢迎?3关键见解4当前比特币价格状况 是什么推动了比特币的流动性? 据数字资

  • 8 专家强调37种山寨币将把1万美元变成100万美元

    Altcoin Moe自2014年以来一直是一名全职加密货币交易员,他分享了一份排名前24位的加密货币名单,这些加密货币在牛市期间有可能飙升10倍至100倍。 随着比特币从7万美元的峰值经历快速调整阶段,更广泛的市场情绪正在下降。此外,以太坊ETF的表现不佳正在增加山寨币领域的抛售压力。 Altcoin Moe在牛市前带来了一袋高潜力代币 在一个日益看跌的加密货币市场中,经验丰富的加密货币交易员A

  • 9 数据显示 大型比特币持有者 7 月份增持了 54 亿美元的 BTC

    根据 IntoTheBlock 的数据,大型比特币持有者 7 月份增持了超过 84,000 个 BTC,为 2014 年 10 月以来的最高水平。这种囤积的特点是 7 月初价格下跌期间出现逢低买入。大量比特币(BTC)持有者往往善于把握市场动向,他们利用双向价格波动,在 7 月份以多年来最快的速度增加了比特币储备,表现出信心。根据区块链分析公司 IntoTheBlock 和 TradingView

  • 10