深入解讀 Filecoin 區塊獎勵設計:測試網獎勵曲線漏洞因何而起?

買賣虛擬貨幣

原文標題:《【filecoin】經濟模型之區塊獎勵的設計》
撰文:胡飛瞳


激勵機制是區塊鏈專案成功的基礎,通常激勵機制也被成為經濟模型,這也反映出區塊鏈本身是建立一個經濟生態。filecoin 的經濟模型比較複雜,可以寫好些文章,其中區塊獎勵部分十分關鍵。filecoin 的經濟模型研究團隊在這方面做了大量工作,但目前還沒有完全定型。本文就其設計和發展過程進行一個簡單梳理。


內容提要


  • 網路基線的設定導致區塊獎勵曲線過山車
  • 下一次重置會平滑獎勵曲線
  • 網路基線設定帶來獎勵延遲
  • 網路基線設定和獎勵分配十分關鍵
  • 演算法還需要進一步最佳化


從測試網第二階段的區塊獎勵 bug 說起


filecoin 測試網第二階段終於沒有延遲,按照最近一次的計劃在 5 月 11 日這一週上線了。準確地說,是在這一週的星期五 - 5 月 15 日上線。這一次上線網路基本穩定,這非常不容易,要知道,在之前的 interopnet 執行中,大量的問題已經暴露出來,軟體質量還令人擔憂。這得感謝 why 等諸干將以及他們採用的先進的中國專屬的「007 工作模式」。


同時,不得不說,這一次上線還是略顯倉促。雖然網路持續執行,沒有出現之前的記憶體洩漏,程式崩潰的問題,但是,windowpost 暴露出大量的問題,包括不能正常證明、也包括不用證明也不丟算力;另外,無限增發的問題也頗為吸引眼球。這一些,都不是設計的問題,而是工程實現過程中的問題,相信,在下一次的重置之前,這些已經發現的工程問題可以得到解決。


但是,這裡提到的區塊獎勵 bug 問題,就有一點不一樣。先看一下我們在第一週看到的區塊獎勵曲線是什麼樣子的:



我似乎聽到了「咣噹」一聲。區塊獎勵值從一開始的 2.55fil,慢慢增長到 39fil 之多,然後在 33505 高度左右,突然掉落至 18.24 左右。然後開啟了穩定衰減模式。


都是網路基線「惹的禍」


為什麼會這樣?我們在測試網第一階段獎勵的衰減不是非常平滑的嗎?


但這是測試網第二階段,有一些新的機制引入並實現在程式碼之中。對區塊獎勵產生直接影響的就是網路基線,也成為算力目標值。算力目標值的設計初衷是為了保護網路,算力目標值的設定基於一個簡單的原則:網路的成長需要時間,幼兒期需要保護,當網路達到一定的規模後,網路自身已經比較強壯,可以抵禦風險,穩定成長。這個一定的規模在 filecoin 網路中就是算力目標值,也就是網路基線。


在當前的網路中,網路基線設定為 1pib (這存粹是為了測試,主網的設定可能與此完全不同)。為了讓礦工不在早期離開網路,把一些區塊獎勵延遲釋放,來起到保護網路的目的。


具體的做法就是,把代幣的釋放分為兩個部分:


  • 簡單供應部分
  • 網路基線供應部分


這兩個部分的代幣釋放方法都是按照 filecoin 挖礦:半衰期為 6 年的放射性釋放 文中提到的方法進行釋放。唯一的區別也是非常重要的區別,在於他們計算時間的方法不同。簡單供應部分的時間計算就是自然時間,高度值 *區塊時間來進行計算;然而,網路基線供應部分的時間被成為有效網路時間,這個時間與自然時間有很大區別。


有效網路時間是怎麼回事?


簡單來說,自然時間 t 所對應的有效網路時間 t' 就如下圖所示。下圖中的綠色曲線是表示每一個高度的網路算力曲線。那麼在一個時間 t 就可以求出網路從啟動開始的算力時間累計值,也就是圖中藍色部分的面積。那麼,考慮如果網路的算力始終是網路基線的話,所需要的時間 t' 就是 t 所對應的網路有效時間,也就是說,t' 的取之是保證圖中的淺粉色部分面積等於藍色部分面積。



總之,就是按照網路基線進行累計所需要的時間就是有效網路時間。


這是第一條規則。但是當網路算力很大的時候,t' 增長迅速,那代幣釋放就會超過預期,因此,就有了第二條規則:


有效網路時間不能大於自然時間。也就是說 t' <= t。


如果不考慮衰減(在短時間內可以忽略衰減)的話,那麼網路基線供應實際上就是與上面藍色部分的面積在每個高度的變化成正比。由此可以看出,t' 的變化速率是逐步加速的,但當 t'>=t 的時候,變化瞬間被拉回。這就出現了上文提到的,區塊獎勵突然回落的情況。


如何平滑


實際上,上述獎勵曲線不平滑的問題,在 filecoin 經濟模型團隊的研究和模擬中就出現過,但是在實現的時候,這個部分還是被忽略了。


上述問題解決起來並不難。那就是,早一點把這個增長拉回來,如下圖所示,當網路總算力超過網路基線的時候,就直接使用網路基線來計算面積。那麼下圖中的算力時間累積區間在時間 t 時就是藍色部分;可以看到的是,因為藍色部分的面積在單位時間內的增長不會超過淡粉色部分的在同樣時間內的增長,那麼,根據其所求出的有效網路時間 t' 將永遠低於時間 t,時間越長,兩個時間越接近,但不會超越。



這樣一來,前文中提到的規則二就不需要了。這樣,在通常的情況下,區塊獎勵曲線將要平滑得多。區塊獎勵在網路總算力達到基線之後逐步接近正常。

可以預告一下,下次網路重置的時候,區塊獎勵會採用這個方案。


新的獎勵曲線什麼樣子?


在設定網路基線和分配方案的時候,需要做大量的假定和模擬,以及考慮對網路和生態的影響,來決定最後的引數。下面是幾張模擬的圖。



上圖是按照目前測試網第二階段的分配比例(1:9)進行模擬的前三年的釋放圖,假設網路總算力達到基線需要兩年(可能估計過長,一般考慮幾個月內達到,這裡主要為了說明問題),最上面一根曲線是按照最初的全部都採用簡單釋放的方式的釋放量,第二根線是加入網路基線後,的總釋放量的曲線。可以看到,加入了網路基線之後,總的釋放量減少了差不多 30%。


再看 10 年,如下圖:



這說明拉長時間來看,總釋放量會慢慢追上來。但是,還是不會達到簡單設計的總釋放量。


前面提到的是 1:9 的比例。但是這個比例是很可能改變的。下面我們看一下按照 1:1 的比例的 3 年和 10 年的釋放圖:



由於簡單釋放的比例放大,看起來網路基線的影響變小了一些,這也是情理之中的。


那麼,很自然,大家應該關心兩個問題:


  1. 網路基線設定到多少比較合適,這是個大難題,這個需要根據現實世界的實際情況進行計算。這裡可以考慮兩個極端的情況:
    1. 網路基線設定為 0;也就是說取消網路基線,迴歸最初的設計
    2. 網路基線設定為很大,很難達到。(想一想,網路基線設定較大有的情況下是有正向作用的,這裡不詳細分析)
  2. 簡單供應和網路基線供應的分配比例如何?這對礦工收益會產生直接影響。但是,對生態整體的影響如何?也是需要思考和驗證的。


六年減半:理想與現實


採用新方案後,有一個小問題。區塊獎勵變少了,那麼實際發放的區塊獎勵將小於簡單釋放的理論值,也就是說六年減半多半是不現實的,也許不小心就成了七年減半了。


影響六年減半的因素不僅如此,還包括孤塊導致區塊獎勵發放減少,網路或硬體軟體原因出塊量低於理論值導致代幣發放減少,總之,發放會少於理論值就對了。那麼,如果按照目前的實現,是不能實現白皮書上講到的六年減半。


這個問題怎麼辦?兩個辦法:


  1. 隨他去,不是六年減半又怎樣,差不多就可以了。比特幣說 10 分鐘一個區塊,實際上就是一個概率,平均值而已。filecoin 的六年減半也可以是一個理論值,理想情況,實際情況有差距,沒有關係,市場適應就可以了。
  2. 調節一下,怎麼調節呢?調節的方法有多種。一種辦法就是按照網路代幣發放的剩餘總量來進行一個調節,實現 adaptive reward。目前這個方案在討論之中,還有一些現實的問題要解決。


為什麼要這麼複雜


最後迴歸到一個本源的問題,為什麼要設計的這麼複雜呢?簡單一點不好嗎?我也認可簡單一點更好。一個好的設計一定要把握好一些重要原則。filecoin 的經濟模型的設計非常多的是為真實儲存的穩定性和服務質量考慮。因為這是一個建立 web3 基礎設施的一條鏈。那麼我們不希望礦工進出非常隨意,要設定一些門檻和保障機制;我們也不希望 fil 的價格波動巨大,這會影響礦工的部署和決策,導致服務出問題。


但是,這樣的設計到底能否達到這樣的目的,目前還是有很多爭議。大家可以各抒己見,事情越辯越明。大家可以從不同的利益出發,多討論才能得出更好的方案。

來源連結:mp.weixin.qq.com

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;