(web3降智系列)一条Starknet新消息引发的做题:提高TPS,会降低gas么?
2023-2-3 11:28:53 Author: web3rover.substack.com(查看原文) 阅读量:7 收藏

此文为向 @StarknetAstroCN 的投稿。

web3降智系列是我在2023年新开始的一个 以日常交流中web3er对一些知识和概念的误解为引子,以即使你在忙了一天后大脑停机的降智状态也能读懂为目的,通过讲述设计思想而不是外在表现,尽量不涉及具体公式和代码的 面向非技术人员的科普系列。

上个月底,@Starknet 宣布了他们正在开发一个新的由Rust编写的开源Sequencer(定序器)— blockifier。

Open-Source: StarkNet’s New Sequencer

当看到这个消息时,蚌不住的 MAX 同学第一时间就在Astro群里激情转载,然后就被我叫去做家庭作业了:

所以,为什么新的定序器能降低gas这句话是错的呢?

我们先来简单的看一下StarkNet的架构和Sequencer(定序器)在架构中的位置和功能。

  • Sequencer 负责管理和协调交易的执行顺序。Sequencer 可以认为是一个交易队列,它确保在同一个区块内的所有交易按照指定的顺序执行,并且确保没有交易被重复执行。Sequencer 还负责验证交易的合法性,并将其写入区块链。

  • Prover则负责生成关于 Sequence 执行轨迹有效性的加密证明。目前,这项工作是由单一的 Prover,即「Share Prover」或「SHARP」执行的。

  • Verifier位于 L1 ,用于验证 Starknet Prover 产生证明的智能合约,如果运行成功,其将更新以太坊 L1 上的状态用于记录保存。

如果你不太了解ZK相关知识,那么你可以像max同学一样,把定序器想像成以太坊客户端(的一部分),如图所示。

那么问题来了,以太坊客户端性能的提升,能否带来gas消耗减少的效果呢?

要回答这个问题,我们需要知道gas是什么:

以太坊中的 Gas 是一种计价单位,用于衡量在 Ethereum 网络上执行智能合约的成本。Gas 被用于抵消执行智能合约所需的算力和网络资源。

当执行智能合约时,每个操作都需要消耗一定数量的 Gas,每个操作所消耗的Gas数量可以由它所需要执行的EVM opcodes所计算出来(具体数值参照 Evm opCodes Gas cost)。执行智能合约的发送者需要在交易中预先支付 Gas 费用,以确保矿工有动力执行智能合约。如果在执行过程中 Gas 被用完,则智能合约将停止执行。因此,发送者需要估算所需的 Gas 量以避免交易失败。

Gas 价格是动态的,随着 Ethereum 网络的拥堵情况而变化。在繁忙的时候,Gas 价格可能会上涨,而在空闲时则可能下降。

Image

因此, Gas 是一种确保智能合约执行的机制,它担负着两种责任:

1,gas机制是一种保证计算资源不被滥用的机制。

2,gas机制是一种竞价机制。

很明显,改善客户端的性能,并不会直接导致gas下降。如上所述,在evm上,每一步计算所消耗的gas是由需要执行的opcodes所决定的,而每个opcode所消耗的gas固定的,客户端的性能只影响opcode执行的快慢,不会影响opcode本身消耗gas的数量。因此我们可以说,客户端性能提升导致的TPS提升,不会直接影响到gas消耗。

但改善客户端的性能,是可以间接减少gas消耗的,这又是为什么呢?

因为gas同时也是一种竞价机制。相信大家都知道以太坊上,除了交易自身消耗的gas,你是可以通过多付gas,即Priority fee (tips,交易小费)来加速自己的交易的。你加的小费越多,越容易被优先执行。而加小费一般是因为以下两种情况:

1,你需要抢跑,比如mev bot,还有一般用户抢mint限量nft时。

2,网络过于拥堵,即使只是一个简单的操作也需要你等上一个你无法接受的时间。

对于第一种情况,如果不是自建节点那么改善客户端性能对于降低你自己的gas没太大意义。而第二种情况比较普遍,就是TPS过低—这正好是新闻里所提到的rust重写定序器想要提高的地方。

举个例子,这就好比游乐园里的项目排队,如果这项目排队一两个小时起,那么愿意花钱的游客就会想着买快速通道票。改善客户端性能相当于游乐园把这个游乐设施扩容了,一次能容纳之前好几倍的游客,那么游客总数不变的情况下排队时间也会大大减少,快速通道票也就没那么必要了。

因此,改善客户端性能,所减少的gas消耗,其实减少的是消耗在这种小费上的gas。

但当我们回到StarkNet的定序器话题,上面的结论还能适用么?很可惜,暂时还不能。

在新的开源定序器blockifier发布前,StarkNet Alpha运行的是一个闭源的高度中心化的定序器,严格按照FIFO(先进先出)来对交易进行定序,这上面是不存在Priority fee机制来调整交易顺序的。

而新的定序器blockifier,根据目前的代码,其中并无有关Priority fee之类的机制,所以依然是FIFO。因此很显然,这次开发新的定序器,短期内不会影响StarkNet上的gas消耗。

不过根据 @milancermak 这位资深爱好者透露,StarkNet将来有可能引入一个 priority fee market。

最后在Max同学的强烈要求下(并没有),给Starknet Astro打一个广告:

Starknet Astro 是 Starknet 最具创意的媒体📢 😎,提供最前沿、最深度的生态研究 📖 。我们正在维护一个 Starknet 知识库


文章来源: https://web3rover.substack.com/p/web3starknettpsgas
如有侵权请联系:admin#unsafe.sh