时间:2023-08-13|浏览:168
今天我们来了解如何核算Gas费,从矿工的角度看如何支付Gas费比较合适,避免转账失败或迟到账的情况。
如今,Filecoin网络中信息数量超过100万,这是导致网络数量拥堵的直接原因,本质是Filecoin网络TPS的不足,每个区块只能够打包完成几百笔信息,间接影响了BlockGasLimit。
举个简单的例子,如果一个BlockGasLimit只能容纳100箱子,而市场上的5个矿工分别有10,20,30,40,50个箱子需要打包运输,因区块只能打包不超过100的数量,那么这个区块只能装(10+20+30+40)或者(40+50)。目前Filecoin当前就面临这样的困境。
那么是否通过技术手段提升区块的容纳量呢?但目前很难实现,这点需要从安全性和经济收益说起。
安全性:众所周知所有区块链项目都遵循“蒙代尔不可能三角定律”:效率、安全性和“去中心化”无法同时实现。以目前的技术水平,升级其中一个指标就不可避免的牺牲其他两个指标。假如提高TPS,很多数据不能及时上传的话,会逐步削弱去中心化的性能,在影响去中心化的同时也影响着网络的共识和安全性。
经济收益:若提高区块链的容纳量,就会导致很多信息延迟上传,出现空块或者孤块的概率就高,直接影响矿工收益。即便是延长区块时间,Filecoin网络原本每日2880高度,减少每日产块无疑是减少区块奖励。所以从经济收益角度上看,扩大容纳量会降低矿工的收益。
综合安全性和经济性,目前很难有行之有效的策略降低Gas费。官方接下来FIP-08提案的解决方法是聚合提交PreCommitSector消息,通过合并消息降低网络拥堵,减少Gas消耗;还有一种提高TPS但是不失安全性的方式,即是扩容区块,从而实现BlockGasLimit上限的提升,同时提高矿工硬件的性能,继续投入新的硬件,这种方式对矿工来说不太友好。
Gas费=基本燃烧费(BaseToBurn)+小费(MinerFee)+超额燃烧费(OverEstimateToBurn)
目前官方团队并不倡议大家使用过高的Gas费,所以会对超额部分作出惩罚,即超额燃烧费。
小费(MinerFee)
当BaseFee+GasPremium>GasFeeCap,MinerFee=GasLimit*(GasFeeCap-BaseFee)
当BaseFee+GasPremium≤GasFeeCap,MinerFee=GasLimit*GasPremium
BaseFee、GasPremium和GasFeeCap分别是三种费率,BaseFee针对基本燃烧费,GasPremium针对小费费率,GasFeeCap针对总的支付费率。官方对小费设定了一个参数,主要是为了让GasFeeCap与两者的关系BaseFee+GasPremium,尽可能地支付更少的小费。
目前按市场上的消息小费都是BaseFee+GasPremium≤GasFeeCap,即是MinerFee=GasLimit*GasPremium
基本燃烧费(BaseToBurn)
我们都知道BaseToBurn=BaseFee*GasUsed。
超额燃烧费(OverEstimateToBurn)
对于超额燃烧费Filecoin为gas设定了一个指标Over,主要是为了避免使用过高的Gas费,其中Over=GasLimit-11/10*GasUsed。
根据之前文章的内容可知,整理后,我们需要得知GasLimit/GasUsed的范围。
以上图二的数据为例,先求得GasLimit/GasUsed=439951486/352018389=1.24979688490081,符合图三条件,代入Over求得超额燃烧费。
代入以上求出的OverEstimateToBurn和BaseToBurn,BurnFee=OverEstimateToBurn+BaseToBurn=0.0515588402332158+1.37788616484047=1.4294450050FIL,即是图二的BurnFee费用。
所以实际总支付的Gas费为OverEstimateToBurn+BaseToBurn+MinerFee,多余的部分会被退回去。
如何设定费用能驱动矿工打包?
矿工打包两个主要步骤:检查GasFeeCap是否比目前BaseFee大,以及GasPremium是否足够大。
GasFeeCap是否比目前BaseFee大。因为GasFeeCap是用户能支付的最大费率,假如费率过低会三倍惩罚矿工。例如,本来一笔转账用户需要支付10元,但是用户填写了最大能支付9元,但是矿工由于忽略打包完成了,差额1元需要矿工支付,同时还要额外2倍惩罚,即2元,所以总的来说差额部分会对矿工造成三倍惩罚(3元)。因为现在一天信息超过百万条,矿工有可能会因为忽略了这一点造成严重的FIL惩罚。
确保了信息可以打包后,矿工需要权衡自己的利益是否最大?
GasPremium是否足够大。这块主要是涉及矿工的利益,GasPremium越大矿工获得手续费会较多(当BaseFee+GasPremium≤GasFeeCap时),因为MinerFee=GasLimit*GasPremium,即使矿工获得利益最大。否则就会如图二的数据,GasFeeCap为19.57nanoFIL很大,但是GasPremium为1attoFIL,实际给到矿工的利益很小,市场行为就会延后打包。
所以用户需要快速转账时,需要先确保GasFeeCap是否比BaseFee大,以及GasPremium是否足够大,这样才能确保转账被即使执行。
用戶喜愛的交易所
已有账号登陆后会弹出下载