一文帶你讀懂如何核算Filecoin網路上的Gas費

之前撰寫了一篇《一文讀懂Filecoin Gas費供需現狀與超額燃燒》文章,收到一些用戶的反饋,基于有部分用戶不太理解如何運用該公式,這次我們分享一下如何一步步核算Gas費,從礦工的角度來看如何支付Gas比較適合,避免轉賬失敗或遲到賬的情況,

首先我們先回顧下Filecoin網路的近況。

1)居高不下的資訊數量超過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上限的提升,同時提高礦工硬件的性能,繼續投入新的硬件,這種方式對礦工來說不太友好。

2)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,多余的部分會被退回去,

3)如何設定費用能驅動礦工打包?

礦工打包兩個主要步驟:檢查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的基建,未來道阻且長,希望眾投資者耐心等候,

0 条回复 A文章作者 M管理員
    暫無討論,說說你的看法吧