Conflux 的 PoS Finality 介紹與經濟模型【草案】歡迎討論

本文檔是 Conflux 的 PoS Finality 介紹與經濟模型的草案,不是最終確定版,歡迎社區同學在論壇留言討論

在一個 PoW 鏈生態的早期,在全網算力較低的時候,可能會出現 51% 攻擊的問題。特別是公有鏈的發展催生了一些算力租借平台的時候。在去年,以太經典、Grin 和 Verge 都曾出現了 51% 攻擊的問題。

為了應對 51% 攻擊可能帶來的威脅,Conflux 將引入一條獨立運行的 PoS 鏈。 PoS 鏈的共識參與者將定期對樹圖結構 pivot 區塊簽名。擁有足夠多簽名的 pivot 區塊應當被所有 PoW 礦工選進 pivot 鏈,哪怕它的兄弟區塊權重更大。簡單來說,PoS 鏈指定了一個 pivot 區塊,所有的 PoW 礦工都應該跟隨。

這意味著,一旦 PoS 共識對一個 pivot 區塊投票,即使 51% 攻擊者嘗試逆轉這個區塊,也不會被 PoW 節點認可。

Conflux 要求 PoS 共識克制地使用“指定 pivot 區塊”的權力。一個區塊首先要根據 PoW 的規則確認滿幾分鐘,誠實的 PoS 節點才會對它進行簽名。這意味著,樹圖結構的區塊排序和確認依然由 PoW 的礦工完成。

下面介紹一些和 PoS finality 相關的基礎概念。本文檔裡,Conflux 鏈指目前運行的區塊鏈,PoS 鏈指新引入的鏈。


PoS 賬戶

地址


一般來說,區塊鏈上的賬戶模型都是:私鑰產生公鑰,公鑰產生地址。 PoS 鏈上的賬戶類似,但有兩個私鑰,稱為BLS私鑰和VRF私鑰。對應BLS公鑰和VRF公鑰。兩個公鑰計算哈希得到 PoS 的地址,目前是 256 bit.

錢包

Conflux 的 PoS 鏈只是應對 51% 攻擊用的。所以除了對 pivot 區塊投票,以及 PoS 鏈選舉共識節點等基本功能外,沒有通用的區塊鏈的功能,如轉賬、合約執行等。 PoS 賬戶也沒有餘額的概念。

PoS 賬戶的主要職責是維護 Conflux 的共識協議。每一個 PoS 賬戶是 Conflux 網絡的維護者,而不是普通的用戶。

每個 PoS 賬戶應當運行一個獨立的 Conflux 全節點。 Conflux 核心代碼 conflux-rust 將內置 PoS 賬戶的錢包功能,包括

  • 在 Conflux 節點首次啟動時,如果配置文件顯示是 PoS 賬戶模式運行,則自動生成 PoS 私鑰,並要求用戶輸密碼,私鑰被密碼加密後存在本地。
  • 在 Conflux 節點再次啟動時,如果檢索到了加密的私鑰文件,則要求用戶輸入密碼解鎖私鑰文件。
  • 運行時自動根據 PoS 的共識協議發送交易,無需用戶干預。

與 PoW 賬戶的綁定


PoS 賬戶在創建後,需要與 PoW 的賬戶進行綁定,我們把這個過程叫做註冊。 PoW 賬戶通過抵押(Staking)和 PoS 鎖倉,為綁定的 PoS 賬戶賦予投票權。這個過程通過在 Conflux 鏈上與特定的內置合約交互完成。有了投票權的 PoS 賬戶才能成為一個 PoS 共識節點。

PoS 參與共識的獎勵直接打入綁定的 PoW 賬戶中。

綁定過程

  • 當 PoS 賬戶被註冊後,conflux-rust 會自動監聽註冊信息,並進行相應操作,無需用戶干預。根據 PoS 共識協議,大約註冊後 2 小時(120 個 PoS區塊)才可以參與共識協議。大約 4 個小時後開始獲得獎勵。
  • 用戶可隨時在 Conflux 鏈上質押更多的 CFX token,並通過 PoS 鎖倉來追加票數。


解鎖過程

  • PoW 綁定的賬戶可以通過與內置合約交互,註銷 PoS 賬戶投票權重 ,我們把這個過程成為退休。
  • 綁定後滿 7 天可以退休,退休後 7 天 CFX 解鎖,(10080 個 PoS 區塊)。解鎖後還會以 staking 的方式繼續存在,但可以隨時提取。

PoS 共識

共識委員會

  • PoS 共識由一個至多 300 票的委員會組成,委員會通過 Hotstuff 共識協議運行 PoS 鏈。
  • 委員還對 Conflux 鏈的 Pivot 區塊哈希進行投票。投票滿三分之二的 pivot 塊哈希可以被 PoS 鏈打包。集齊簽名的 pivot 區塊稱為 pivot 決議 (pivot decision)
  • 根據協議要求,委員只對在 PoW 協議下確認滿 5 分鐘的區塊進行簽名。

參選委員會

  • 每經過 1 小時(60個 PoS 區塊)選舉一屆委員會,選舉出最多 50 票委員,任期 6 小時(360個PoS區塊)。這樣同時存在共計 6 屆,最多 300 票的委員。
  • PoS 賬戶會通過 VRF (Verifiable Random Function, 可驗證隨機數)參選委員會。 VRF 種子通過選舉開始時的 pivot 決議區塊哈希產生。
  • 每一屆委員會提前 2 小時(120 個 PoS 區塊)開始選舉,提前半小時(30 個 PoS 區塊)結束選舉。
  • 在選舉時,一個 PoS 賬戶的每一票視為一個單獨的小號。如果一個 PoS 賬戶有 10 票,則視為 10 個不同的人參選。如果這個賬戶選入了 2 票,則在這屆委員會有 2 票投票權重,剩下 8 票可以參加下一屆選舉。
  • 選舉期間,PoS 賬戶每一票(每個“小號”)會通過 VRF 產生一個哈希值。哈希值最小的 50 票被選入。
  • 我們進行了一些系統優化,PoS 賬戶只需要發一筆交易就可以為全部小號參選。如果入選多票,在參與共識時,PoS 賬戶也只需要簽一個名就可以。

激勵方案

兩次委員會換屆之間(每 60 個 PoS 區塊),會根據不同的行為獲得積分。最多 6,000,000 分。在此期間 Conflux 鏈產生的利息會平均分成 6,000,000 份,根據積分分給 PoS 賬戶綁定的 PoW 賬戶。如果產生的積分少於 6,000,000 分,沒有分掉的利息會銷毀。

積分構成

  • 參選委員會時,哈希值是最小的 10000 票。每一票 120 分。共計 1,200,000 分。
  • 被選入委員會,每一票 90,000 分。 50票委員共計 4,500,000 分。
  • 成為一個 PoS 區塊的 Leader ,每區塊 3,000 分。 60 區塊共計 180,000 分。
  • 每個 PoS 區塊需要 300 人中的 201 人簽名,但 Leader 可以打包多於 200 人的簽名。我們鼓勵 Leader 打包更多的簽名,來證明每一個委員在活躍地參加共識。從 200 個簽名開始,每多一個簽名,獲得 20 分。最大 2,000 分。 60塊共計 120,000 分。


利息產生

  • 每個 Conflux 鏈的區塊,會產生以下這麼多利息。
  • sqrt(總抵押額 * CFX 總發行量) * 4% / Conflux 一年區塊數
  • 如果連續 7200 個 Conflux 鏈區塊(大約 1 小時)後,PoS 還沒有換屆分錢,就不再產生新的利息,直到分錢後再產生。這麼做是為了防止 PoS 節點故意拖慢共識,以獲得更多的錢。

懲罰

  • 如果一個人始終不參選委員會,沒有任何獎勵,也沒有懲罰。
  • 如果一個人選入委員會,卻連續 60 個區塊不參與簽名,會被強制退休。
  • PoS 賬戶如果為兩個高度相同的PoS區塊簽名,它的 CFX token 將被永久鎖死。根據 PoS 共識協議和目前的代碼實現,一個誠實的用戶永遠不會做這種事。

本文不構成投資建議,虛擬貨幣波動大請謹慎小心

掌握虛擬貨幣、區塊鏈大小事

發表迴響