前言:Filecoin主網上線前,作者曾寫文章分析過Filecoin手續費模型,討論過關于Filecoin改用EIP-1559設計后的手續費計算模型和優缺點。在討論計算模型時,默認為理性的交易發送者不會設置超過Gas燃燒闕值,但在現實情況中,官方給定的設置卻出現了Gas超額燃燒的不理性的結果。
本文作為《Filecoin手續費模型-EIP1559》(https://zhuanlan.zhihu.com/p/234700165)的姊妹篇,進一步分析了Filecoin的手續費模型中的超額燃燒,并介紹一種降低超額燃燒費的方法。
作者|?litianc
來源|??Blockcasting&BitTribeLab?
Lens Protocol 采用消息傳遞協議 XMTP 提供 Profile 間私信服務:11月4日消息,Web3 社交圖譜協議 Lens Protocol 宣布采用消息傳遞協議 XMTP 為整個 Lens 生態提供安全且私密的 Profile 間私信服務,當前允許用戶在 Lenster 中相互發送私信。Lens Protocol 表示,Lens Profile 的消息將可以在任何其他支持 XMTP 的前端可用,所有消息都是端到端加密的,只能通過錢包地址解密,并且,消息是在鏈下發送的,不會產生任何 Gas 費用。[2022/11/4 12:17:48]
Filecoin的手續費回顧
在之前的文章中,我們介紹了Filecoin采用EIP-1559的方案,用于解決惡意設置GasLimit的問題。我們從宏觀層面分析了交易手續費的計算模型和主要影響因素。?
當時,由于理解有限,文中將GasLimit直接套用在Gas實際燃燒的概念上,但是這樣的描述是不準確的。理論上,這樣計算出的結果已接近實際FIL消耗,但在特定情況下會有最多10%的偏差,這一偏差就是我們中所說的超額燃燒費。?
Filecoin網絡目前FIL流通量約為1.45億FIL:據IPFS100報道,Filfox瀏覽器數據顯示,Filecoin網絡當前區塊高度為916907,全網有效算力為7.256EiB,總質押量約為8923萬枚FIL,活躍礦工數為2627個,每區塊獎勵為24.9249FIL,近24小時產出量為355607FIL,24小時平均挖礦收益為0.0471FIL/TiB,目前FIL流通量為144883114FIL。目前有效算力排名前三的分別為:f0127595(時空云)以118.07PiB暫居第一,f0123261(LDPool)以113.14PiB位居第二,f0135467(RRM-雅典娜)以106.34PiB位居第三。[2021/7/9 0:39:34]
那么,為什么會有超額燃燒,在何種情況下會產生超額燃燒呢?
超額燃燒的由來
我們知道,Gas是由交易發送者支付的Filecoin鏈上資源消耗對應的燃料數量,類比汽車行駛一段距離需要消耗相應的汽油xx升。
Filecoin網絡目前總質押量約為7445萬枚FIL:據IPFS100.com報道,Filfox瀏覽器數據顯示,Filecoin網絡當前區塊高度為772859,全網有效算力為5.470EiB,總質押量約為7445萬枚FIL,活躍礦工數為2310個,每區塊獎勵為25.7018FIL,近24小時產出量為363975FIL,24小時平均挖礦收益為0.0638FIL/TiB,目前FIL流通量為124904447FIL。目前有效算力排名前三的分別為:f0127595(時空云)以118.06PiB暫居第一,f0135467(RRM-雅典娜)以106.34PiB位居第二,f0142720(RRM-雅典娜)以103.65PiB位居第三。[2021/5/20 22:25:02]
與以太坊相似的,Filecoin的Gas也有GasLimit和GasUsed的概念。
GasLimit:表示該筆交易最多消耗燃料數量,由交易發送方設置。GasUsed:表示交易上鏈所消耗的燃料數量,在交易上鏈之后計算出來。與以太坊不同的是,Filecoin區塊中包含的所有消息的GasLimit之和不得超過BlockGasLimit;而以太坊是統計所有消息的GasUsed之和。
Filecoin當前全網有效算力為991.95PiB:據IPFS100.com報道,filfox瀏覽器數據顯示,Filecoin網絡當前區塊高度為248746,全網有效算力為991.95PiB,總質押量約為1765.0414萬枚FIL,活躍礦工數為666個,每區塊獎勵為13.3694FIL,近24小時產出量為181231FIL,24小時平均挖礦收益為0.1794FIL/TiB;
目前有效算力排名前三的分別為:F02770(時空云&靈動)以60.70PiB暫居第一,F01248(智合云zh)以58.04PiB位居第二,F01782(hellofil)以27.22PiB位居第三。[2020/11/19 21:20:59]
一個有趣的知識點:由于Filecoin的區塊鏈采用DAG結構,一個Tipset中可以有多個區塊,同一高度下的區塊順序由下一個Tipset的區塊統計。因此,交易產生的GasUsed只有在下一個Tipset的區塊上鏈后才能被準確計算出來。
Filecoin官方正在重置calibration網絡:7月24日上午10:54,官方技術人員在slack fil-net-calibration中發布消息稱,他們正在重置calibration網絡,一旦上線,將發布相關消息。[2020/7/24]
正是由于設計的差異,決定了Filecoin需要對Gas進行更復雜的設計,于是就有了Gas超額燃燒的概念。Gas超額燃燒的設計出現在EIP-1559上線之前,它與EIP-1559并不沖突,可以把它看作是比EIP-1559更基礎的Gas模型規則。
超額燃燒的計算
Gas超額燃燒:當GasLimit和GasUsed之間的差異較大時,需要燃燒的額外Gas量。
根據GasLimit與GasUsed的數值,我們將Gas分為三種情況:
GasLimit較接近GasUsed時,認為GasLimit設置合理:GasOverestimationBurn=0GasLimit明顯大于GasUsed時,認為GasLimit設置不合理:GasOverestimationBurn=GasLimit-GasUsed當GasLimit處于上述兩者之間時,認為這是一個過渡范圍,采用拋物線進行擬合:GasOverestimationBurn=(GasLimit-1.1*GasUsed)*(GasLimit-GasUsed)/GasUsed?
GasOverestimationBurn=(k-1.1)*(k-1)*GasUsed
接下來,采用控制變量法,假設GasUsed=30000,橫軸為k,縱軸為GasOverestimationBurn,得出Gas超額燃燒曲線,如下圖:
從Gas超額燃燒曲線,我們能夠看出當GasLimit設置越高,超額燃燒也就越高;GasLimit越接近GasUsed,超額燃燒也就越少,在合理的GasLimit條件下,超額燃燒為0。?
正常情況下,Filecoin客戶端只需要在設置GasLimit時,比預估的Gas設置稍高一點,就能實現“零”超額燃燒。但是現實卻是,官方代碼中給定的默認系數k=1.25,因此現階段鏈上的大多數的交易都產生了超額燃燒費用。這究竟是一個Feature,還是一個Bug呢?讓我們繼續往下分析。
Feature還是Bug
通過官方社群交流平臺的記錄和github上的問題追蹤,我們最終確定這是由一個Bug引發的官方修改。在主網上線3個月后,社區成員提交的一個(https://github.com/filecoin-project/lotus/issues/5066)。
報告內容是ProveCommitSector交易類型的Gas評估在特定條件下會有40%左右的評估偏差,從而導致Gas溢出、交易出錯。為了避免Prove交易的Gas溢出問題,官方經過反復調整,最終還是把默認系數設置為1.25。
在v1.4.2的版本中,經過我們對自建節點三種交易類型的數據分析,得出以下結論:
?Prove交易的評估偏差波動較大,最低與最高相差40%;PreCommitSector交易的有一定偏差,但偏差波動較小;SubmitWindowedPoSt交易能準確評估。超額燃燒優化
上述三種交易是當前Filecoin網絡礦工消耗手續費最多的交易類型。如果能夠減少這三類交易的超額燃燒,甚至做到“零”超額燃燒,對礦工來說可以節省不小的開銷。?
我們對超額燃燒進行優化的基本思路是根據不同的交易類型分別實現。目前能夠直接實現“零”超額燃燒的交易有PreCommit交易和WindowedPoSt交易;對于Prove交易,需等到共識部分的代碼完善后才能實現最理想的優化。?
因此,對于不同階段的礦工,可操作的優化方法和優化空間也有所不同。?
對于算力已經穩定,只需要發送WindowedPoSt交易的礦工,優化的操作比較簡單:可以直接調整mpool中的評估系數GasLimitOverestimation,直至“零”超額燃燒。
對于正在增加算力的礦工,則需要權衡Gas超額燃燒的收益與Gas溢出的風險,結合節點新增算力的速度和交易的歷史數據,計算出最適合自身節點的評估系數。?
如果有代碼修改能力的礦工,可以嘗試在mpool的源代碼中修改不同的交易類型的評估系數,從而實現當前手續費的最優化。
總結
超額燃燒費是Filecoin區塊鏈搭建之初的基礎設計,它的實現不受后來的EIP-1559的影響。這部分費用本身是帶有一定懲罰屬性的,法不責眾,理論上Filecoin的所有的交易都應當很容易避免超額燃燒。目前官方正在通過底層數據結構修改來進行完善,以減少Prove交易的Gas評估偏差。
我們相信普遍的超額燃燒情況只是一個短期的狀態,通過技術升級最終將解決這一問題。那時,生態應用開發者和用戶不必知曉底層復雜的概念邏輯,可以把注意力更多地投入到業務設計和產品體驗中。
美國銀行(BankOfAmerica)對標準普爾500指數進行全面研究后得出結論:在金融市場上投資時,恐慌性拋售往往會導致錯失機會.
1900/1/1 0:00:00作者:RobertBrisita? 翻譯:Jeremy 價值從何而來?是有形的物體所固有的嗎?是在制造中;背后隱藏著廣告嗎?不管你相信什么,這一切都歸結于努力,有人為創造某樣東西所付出的努力.
1900/1/1 0:00:00據比推3月17日消息,V神于日前發文公布“多項式承諾”方法圖解。多項式承諾正被視為一種以較低的計算成本驗證網絡狀態的方法.
1900/1/1 0:00:00來源:華爾街見聞,作者:杜玉剛剛過去的周末和本周一,比特幣又一次在短短幾天內大起大落,沖上歷史新高后不久便火速暴跌幾千美元。而這其中恰好展現了WSB“散戶天團”和大型機構投資者之間的博弈較量.
1900/1/1 0:00:00文章來源:CryptoBriefing原文作者:NiveshRustgi 提要: ·3月11日晚,加密藝術家beeple完成了一次史詩級拍賣,隨后.
1900/1/1 0:00:00作者:NickTomaino,翻譯:JeremyNFTs最近以一種我們行業歷史上從未出現過的方式爆發在主流意識中。谷歌趨勢數據顯示,最近對NFTs的興趣超過了對加密貨幣的興趣.
1900/1/1 0:00:00