一条Starknet新消息引发的做题:提高TPS,会降低gas么?

23-02-03 15:57
阅读本文需 12 分钟
总结 AI 总结
看总结 收起
原文作者:CryptoNerdCn


(Web3 降智系列) 一条 Starknet 新消息引发的做题:提高 TPS,会降低 gas 么? 此文是向 @StarkNetAstroCN 的投稿。


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


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



当看到这个消息时,蚌不住的 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 价格可能会上涨,而在空闲时则可能下降。


因此,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 知识库。


原文链接


欢迎加入律动 BlockBeats 官方社群:

Telegram 订阅群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方账号:https://twitter.com/BlockBeatsAsia

举报 纠错/举报
选择文库
新增文库
取消
完成
新增文库
仅自己可见
公开
保存
纠错/举报
提交