深入计算Filecoin网络中的Gas费用

IPFS星际原社区

共 2234字,需浏览 5分钟

 ·

2020-12-20 05:19

之前星际原社区发布了文章《深入探讨Filecoin中的Gas费运行机制》探讨了Gas费用产生的原理,帮助大家了解Filecoin网络中的Gas费。今天我们来了解如何核算Gas费,从矿工的角度看如何支付Gas费比较合适,避免转账失败或迟到账的情况。
如今,Filecoin网络中信息数量超过100万,这是导致网络数量拥堵的直接原因,本质是Filecoin网络TPS的不足,每个区块只能够打包完成几百笔信息,间接影响了Block Gas Limit

举个简单的例子,如果一个Block Gas Limit只能容纳100箱子,而市场上的5个矿工分别有10,20,30,40,50个箱子需要打包运输,因区块只能打包不超过100的数量,那么这个区块只能装(10+20+30+40)或者(40+50)。目前Filecoin当前就面临这样的困境。
那么是否通过技术手段提升区块的容纳量呢?但目前很难实现,这点需要从安全性和经济收益说起。
安全性:众所周知所有区块链项目都遵循“蒙代尔不可能三角定律”:效率、安全性和“去中心化”无法同时实现。以目前的技术水平,升级其中一个指标就不可避免的牺牲其他两个指标。假如提高TPS,很多数据不能及时上传的话,会逐步削弱去中心化的性能,在影响去中心化的同时也影响着网络的共识和安全性。

经济收益:若提高区块链的容纳量,就会导致很多信息延迟上传,出现空块或者孤块的概率就高,直接影响矿工收益。即便是延长区块时间,Filecoin网络原本每日2880高度,减少每日产块无疑是减少区块奖励。所以从经济收益角度上看,扩大容纳量会降低矿工的收益。
综合安全性和经济性,目前很难有行之有效的策略降低Gas费。官方接下来FIP-08提案的解决方法是聚合提交PreCommitSector 消息,通过合并消息降低网络拥堵,减少Gas消耗;还有一种提高TPS但是不失安全性的方式,即是扩容区块,从而实现Block Gas Limit上限的提升,同时提高矿工硬件的性能,继续投入新的硬件,这种方式对矿工来说不太友好。
Gas=基本燃烧费(BaseToBurn+小费(Miner Fee+超额燃烧费(OverEstimateToBurn
目前官方团队并不倡议大家使用过高的Gas费,所以会对超额部分作出惩罚,即超额燃烧费。

小费(Miner Fee
当 BaseFee + GasPremium > GasFeeCap,Miner Fee=Gas Limit*GasFeeCap-BaseFee
当 BaseFee + GasPremium ≤GasFeeCapMiner Fee=Gas Limit*GasPremium
BaseFeeGasPremiumGasFeeCap分别是三种费率,BaseFee针对基本燃烧费,GasPremium针对小费费率,GasFeeCap针对总的支付费率。官方对小费设定了一个参数,主要是为了让GasFeeCap与两者的关系BaseFee + GasPremium,尽可能地支付更少的小费。
目前按市场上的消息小费都是BaseFee + GasPremium ≤GasFeeCap,即是Miner Fee=Gas Limit*GasPremium
基本燃烧费(BaseToBurn
我们都知道BaseToBurn=Base Fee*Gas Used
超额燃烧费(OverEstimateToBurn
对于超额燃烧费Filecoingas设定了一个指标Over,主要是为了避免使用过高的Gas费,其中Over=Gas Limit-11/10*Gas Used

根据之前文章的内容可知,整理后,我们需要得知Gas Limit/Gas Used的范围。

以上图二的数据为例,先求得GasLimit/Gas
Used=439951486/352018389=1.24979688490081,符合图三条件,代入Over求得超额燃烧费

代入以上求出的OverEstimateToBurnBaseToBurnBurn Fee=OverEstimateToBurn+BaseToBurn=0.0515588402332158+1.37788616484047=1.4294450050FIL,即是图二的Burn Fee费用。
所以实际总支付的Gas费为OverEstimateToBurn+BaseToBurn+Miner Fee,多余的部分会被退回去。
如何设定费用能驱动矿工打包?
矿工打包两个主要步骤:检查Gas Fee Cap是否比目前Base Fee大,以及Gas Premium是否足够大。
Gas Fee Cap是否比目前Base Fee大。因为Gas Fee Cap是用户能支付的最大费率,假如费率过低会三倍惩罚矿工。例如,本来一笔转账用户需要支付10元,但是用户填写了最大能支付9元,但是矿工由于忽略打包完成了,差额1元需要矿工支付,同时还要额外2倍惩罚,即2元,所以总的来说差额部分会对矿工造成三倍惩罚(3元)。因为现在一天信息超过百万条,矿工有可能会因为忽略了这一点造成严重的FIL惩罚。


浏览 24
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报