如何核算Filecoin网络上的Gas费?
这次我们分享一下如何一步步核算Gas费,从矿工的角度来看如何支付Gas比较适合,避免转账失败或迟到账的情况。
首先我们先回顾下Filecoin网络的近况。
居高不下的信息数量超过100万
信息数量过多是导致网络拥堵的直接原因,其本质是Filecoin网络TPS不足,每个区块只能够完成几百笔信息的打包,间接影响了Block Gas Limit。
(图一)11月14日-12月13日Filecoin信息数量,来源:IPFS原力区,2020-12-15
假如一个区块的Block Gas Limit只能容纳100箱子,市场上五个矿工分别有10、20、30、40、50(Gas Limit)个箱子需要打包运输,因区块只能打包不超过100的数量。那么在这个区块只能装(10+20+30+40)或者(40+50)。
那么大家会问,能否提高区块的容纳量?目前来说很难实现,主要从安全性和经济收益说起。
安全性。 我们都知道“蒙代尔不可能三角定律”:效率、安全性和“去中心化”无法同时实现。在目前技术水平上,升级其中一个指标不可避免地牺牲其他两个指标。假如提高TPS,很多数据不能及时上传的话,会逐步削弱去中心化的性能,在影响去中心化的同时也影响着网络的共识和安全性。
经济收益。 假如提高区块链的容纳量,就会导致很多信息延迟上传,就容易出现空块或者孤块,降低矿工收益。即便是延长区块时间,Filecoin网络原本每日2880高度,减少每日产块无疑是减少区块奖励。所以从经济收益角度上看,扩大容纳量会降低矿工的收益。
从安全和经济收益角度看,目前尚未有一种可直接降低Gas的策略,不过最近官方也提及到FIP-08提案聚合提交PreCommitSector 消息,通过合并消息降低网络拥堵,减少Gas消耗;还有一种提高TPS但是不失安全性的方式,即是扩容区块,从而实现Block Gas Limit上限的提升,同时提高矿工硬件的性能,继续投入新的硬件,这种方式对矿工来说不太友好。
Gas费=基本燃烧费(BaseToBurn)+小费(Miner Fee)+超额燃烧费(OverEstimateToBurn)
之前超额燃烧文章有提及过,协议实验室官方不太提倡使用过高的Gas费,所以会对超额的部分做一些惩罚,即是超额燃烧费。下文,我们以某一Gas费为例子,展开计算说明。
(图二),来源:filfox.info,2020-12-14
小费(Miner Fee)
当 BaseFee + GasPremium > GasFeeCap,Miner Fee=Gas Limit*(GasFeeCap-BaseFee)
当 BaseFee + GasPremium ≤GasFeeCap,Miner Fee=Gas Limit*GasPremium
BaseFee、GasPremium和GasFeeCap分别是三种费率,BaseFee针对基本燃烧费,GasPremium针对小费费率,GasFeeCap针对总的支付费率。官方对小费设定了一个参数,主要是为了让GasFeeCap与两者的关系BaseFee + GasPremium,尽可能地支付更少的小费。
目前按市场上的消息小费都是BaseFee + GasPremium ≤GasFeeCap,即是Miner Fee=Gas Limit*GasPremium,代入上图数据得出
因为图二的Burn Fee是包含基本燃烧费和超额燃烧费,所以我们需要计算出两个值。
基本燃烧费(BaseToBurn)
我们都知道BaseToBurn=Base Fee*Gas Used,代入图二数据计算得
超额燃烧费(OverEstimateToBurn)
对于超额燃烧费Filecoin为gas设定了一个指标Over,主要是为了避免使用过高的Gas费,其中Over=Gas Limit-11/10*Gas Used。
(图三)Over指标,来源:IPFS原力区,2020-12-15
根据之前文章的内容可知,整理后,我们需要得知Gas Limit/Gas Used的范围。图三是我们整理了11月14日-12月14日的Gas Limit/Gas Used,大多数都是在1.2-1.3范围内,所以可用以下公式。
(图三)《一文读懂Filecoin Gas费供需现状与超额燃烧》,来源:IPFS原力区,2020-11-08
以上图二的数据为例,先求得Gas Limit/Gas Used=439951486/352018389=1.24979688490081,符合图三条件,代入Over求得超额燃烧费
代入以上求出的OverEstimateToBurn和BaseToBurn,Burn 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惩罚。
确保了信息可以打包后,矿工需要权衡自己的利益是否最大?
Gas Premium是否足够大。 这块主要是涉及矿工的利益,Gas Premium越大矿工获得手续费会较多(当BaseFee + GasPremium ≤GasFeeCap时),因为Miner Fee=Gas Limit*GasPremium,即使矿工获得利益最大。否则就会如图二的数据,Gas Fee Cap为19.57nanoFIL很大,但是Gas Premium为1 attoFIL,实际给到矿工的利益很小,市场行为就会延后打包。
所以用户需要快速转账时,需要先确保Gas Fee Cap是否比Base Fee大,以及Gas Premium是否足够大,这样才能确保转账被即使执行。
该以上建议适合用户使用,对于矿工仅供参考。因为矿工每日需要打包信息较多,需要更为精密的计算才能保障Gas费的合理使用,由于过于复杂,不在此展开。
本文主要为用户解答一些问题,虽然Filecoin网络过于拥堵,导致矿工无法顺利增长算力。但是笔者相信随着FIP提案优化,机制或者技术会逐步解决Gas费高昂的问题。
因为Filecoin的夙愿是成为Web 3.0的基建,未来道阻且长,希望众投资者耐心等候。
Buy Bitcoin Now? Not Yet—Analyst Says Time Holds The Key
In a post on June 17, prominent crypto strategist Astronomer (@astronomer_zero) outlined his high-co...
OpGPU and Ice Open Network Forge Alliance to Advance Decentralized AI and Web3 Computing
OpGPU and Ice Open Network have joined forces to integrate the high-performance GPU cloud services a...
Qubetics, XRP, and Hedera Meet Key Metrics of the Best Cryptos to Join for Long Term Growth
As BBVA urges clients to buy Bitcoin Qubetics XRP and Hedera are catching smart money attention as t...