比特幣、以太坊的礦工激勵模型

買賣虛擬貨幣
上期說到 Conflux 經濟模型的目標是使得生態中的各種角色獲得有效激勵同時使得鏈上有限的計算資源和儲存資源得到更合理的分配。在初始階段,Conflux 將透過直接激勵直接建設者和生態建設者 ,實現生態冷啟動的同時使其持續完善生態的基礎建設,為整個生態專案打好地基。在執行階段,Conflux 將會持續激勵系統的維護者,推動系統實現升級;激勵生態的建設者,促進社羣使用者持續為 Conflux 生態創造價值;同時透過市場化系統資源,促進 Conflux 的系統資源實現自適應配置。

POW 系統的主要維護者——礦工,主要負責驗證並記錄系統中的交易,是保障系統穩定的重要角色。礦工激勵是礦工收入的主要來源,所以礦工激勵模型的設計直接影響系統執行的可持續性。

那麼主流公鏈是怎麼設計礦工激勵模型的呢?

比特幣/以太坊的礦工激勵模型

對於所有公有鏈來說,特別是對於基於 POW 的公鏈來說,設計一套合理的激勵機制來鼓勵所有參與者遵守規則,是至關重要的事。比特幣的激勵機制設計也是其獲得成功的核心因素之一。我們常說,“比特幣安全性的基礎是超過半數的礦工是好人”。但是現實世界裡礦工都是逐利的,不是“好人”也不天然具備“誠實”的美德。之所以大部分比特幣礦工表現得都很老實,唯一的理由就是在比特幣的激勵機制下,“做個好人”能給他們自己帶來最高的收益。

按照比特幣的激勵機制,礦工每挖出一個最長鏈上的區塊,就可以獲得一定數額的比特幣作為區塊獎勵。最開始這個獎勵數額是 50 BTC, 之後每挖出 21 萬個區塊,比特幣的區塊獎勵就減半。截止 2020 年 5 月 12 日,比特幣已經歷了第三次區塊獎勵減半,目前比特幣的區塊獎勵是 6.25 BTC。

除了區塊獎勵,比特幣礦工的另一個收入來源是交易費。每個使用者在發起一筆交易時,需要支付一筆交易費。每個比特幣區塊中所有的交易費會付給挖出這一區塊的礦工。在比特幣的設計中,早期的交易不多,區塊獎勵是礦工主要的收入來源;隨著時間推移,當比特幣的使用者越來越多,區塊獎勵也經過多次減半後,交易費將取代區塊獎勵成為礦工收入的主要部分。例如,在比特幣區塊 500439 中,交易費超過 13 BTC,高於該區塊的區塊獎勵 12.5 BTC。

以太坊的礦工收入主要也包含區塊獎勵與交易費兩部分,但與比特幣相比有幾處不同:

以太坊的基礎區塊獎勵沒有比特幣的定期減半計劃。在初始階段,以太坊的基礎區塊獎勵是 5 ETH。在 2017 年名為拜占庭的硬分叉中,649 號提案被啟用,基礎區塊獎勵調整為 3 ETH。隨後,1234 號提案將基礎獎勵進一步降低至 2 ETH。

為了給智慧合約消耗的計算資源定價,使用者在以太坊中發起交易時,不直接指定交易費,而是指定一個交易費單價,被稱為燃料價格(gas price)。交易實際執行時按照計算量的多寡消耗燃料,燃料用量乘以燃料價格就是以太坊最終向每筆交易收取的交易費。

以太坊出塊速度較快,所以會出現更多分叉。為了給礦工提供更好的挖礦體驗,以太坊引入了“叔塊”的概念。每個區塊除了選擇自己的父親區塊,還可以選擇最多兩個“叔塊”,每選擇一個叔塊可額外獲得基礎區塊獎勵 1/32 的獎勵。而被主鏈區塊選中的叔塊,其中的交易不會被執行(不為系統共享吞吐量),但挖到該塊的礦工也可以獲得一定的獎勵,具體數值是:

接下來,我們以 Conflux 共識機制為例,為大家分析一下樹圖結構下的 POW 公鏈,在激勵機制設計上面臨的新挑戰,以及我們的對策。

樹圖結構為什麼不能用比特幣的激勵機制?

Conflux 保留所有區塊的設計,不僅是為了充分利用網路頻寬最大化交易吞吐率,也是為了阻止攻擊者透過操縱樹圖結構丟棄誠實礦工的區塊。在這種情況下,如果我們採用比特幣或以太坊的規則,每一個區塊的區塊獎勵是一個固定值,將會面臨一個問題——我們稱之為 “零成本攻擊”的問題。

考慮在比特幣網路中,有一個攻擊者嘗試挖一條分叉鏈,以此來與主鏈(最長鏈)競爭。如果攻擊者成功,他當然可以獲得分叉鏈上所有的區塊獎勵;但是如果競爭失敗,整個分叉鏈會被丟棄,失敗的攻擊者拿不到任何獎勵。在這個過程中,攻擊者消耗了大量算力,付出了鉅額的電費,還需要承擔攻擊失敗情況下血本無歸的風險。所以,在比特幣網路發起這樣的攻擊需要付出的成本是很可觀的。

假如 Conflux 也採用比特幣的固定區塊獎勵,則一個攻擊者在 Conflux 中發起類似的分叉鏈攻擊失敗後依舊可以拿到和正常挖礦相當的區塊獎勵。因為 Conflux 會保留所有的區塊,而在這種情況下固定的區塊獎勵意味著失敗的攻擊者不會受到懲罰。

從結果上來看,失敗的攻擊者當然無法改變交易順序或者實現雙花,但這並不意味著他們沒有損害系統的安全性和穩定性。首先,如果攻擊未遂者都不會受到懲罰,礦工也就沒有太強的動機嚴格遵守共識協議規定的出塊和引用規則,能偷懶的地方一定會偷懶,最終可能導致遵守協議的算力達不到保證系統安全性所要求的比例。其次,失敗的攻擊雖然不會危及已確認交易的安全性,但是仍會影響樹圖結構的收斂性,直接的後果就是攻擊發生期間的交易需要更久的時間才能被確認,這段時間的樹圖結構也會變得更加複雜而難以維護。

我們不希望看到,由於激勵機制沒有對未遂的攻擊行為做出任何懲罰,導致礦工隨意違反共識規則甚至嘗試發起攻擊。所以,我們在設計激勵機制的時候充分考慮瞭如何檢測並懲罰疑似“未遂攻擊”的行為,最終採用的解決方式是懲罰傳播不及時的區塊——無論這個區塊是生成以後沒有被及時廣播,還是生成的時候故意無視了一部分已經收到的區塊。

下期,我們將為大家介紹 Conflux 樹圖結構下的礦工激勵機制會如何設計,與經典的鏈式結構的 POW 區塊鏈相比又有怎樣的不同。

免責聲明:

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

推荐阅读

;