Filecoin共識機制的探索

買賣虛擬貨幣

共識機制是區塊鏈中最為核心的內容,業界對共識機制的探索也從未間斷。從POW 到 POS,DPOS,PBFT 到現在比較熱門的VDF/VRF相關的各種共識,無一不在探索更好的更安全更經濟的方式。Filecoin現在無疑走在了前列。

共識機制 - 領導人選舉 (LE:Leader Election)

在區塊鏈的世界裡,出塊權是一個十分重要的課題。這是一個去中心化的世界,每一個參與者都有為網路服務的權利,當然也有因為服務而獲取報酬的權利。這個權利就是出塊權,並在出塊的時候獲得出塊獎勵和交易手續費。

那麼,誰具有出塊權,因為區塊鏈是一個鏈式結構,每一個區塊高度的出塊人最好只有一個,這個人是誰呢?這就類似於我們現實生活中的領導人,每一輪出塊都需要有一(或多人)人來負責,這個產生出塊人的過程,就是選舉。

這個選舉當然不可能象我們現實世界裡那樣透過一人一票來投票進行,如果這樣,就可能出現操縱或賄選的情況,而區塊鏈的共識機制中,一個理想的選舉模式應當具有如下特性:

1、選舉秘密進行 (Secret)

2、選舉是公平的 (Fair),基於一套規則,在規則的基礎上概率起作用

3、最好沒輪選舉出一個領導人(Single Leader)

4、無法預測(Unpredictable)

5、十分容易驗證 (Verifiable)

6、能夠承受攻擊(Anti-attack)

7、消耗資源不大(Efficient)

基於以上幾點,POW是目前現實使用中最好的方式,但是POW有其致命的弱點,就是不滿足最後一條。它需要浪費大量能源,來達成共識;另外,它不能保證每一輪只有一個領導人,因此會出現鏈的分叉,必須採用其他規則來進行收斂(比如最長鏈法則)。

共識機制的目標 - SSLE (Secret Single Leader Election)

為了克服POW的不足,有很多新的共識機制提了出來,但都不能達到POW的安全性、公平性和防攻擊等各個方面的綜合指標。

但從去年開始,理論界做了很多探索,自從VRF(Verifiable Random Function)和VDF(Verifiable Delay Function)提出之後,研究進展的很快。這些理論和實踐包括:Algorand,Snow White, Stellar Consensus, BAR-Fault Tolerance Consensus, Mergeable Consensus 和 Filecoin提出的預期共識(Expected Consensus)。

這些共識研究要達到的目的,就是一個,實現SSLE:秘密單個領導人選舉,也就是說:從一群持有不同(也可以相同)權利份額的參與者中,每一輪都可以高效地秘密地公平地選舉出(僅僅)一個領導人。從這裡你可以看出,SSLE其實實現了前面提到的全部7大特性。這個實現有很多好處:比如說,因為秘密,能有效地防止攻擊;因為公平,能有效地激勵;因為每次一人,能避免分叉;因為有效,自然節省能源。

但是,這是一個理想,但是到目前為止,儘管有很多進展,沒有找到一個可行的演算法和實現。所面臨的難題主要是效率問題,具體講來,可以分成如下幾類:

1、鏈上效率:要實現鏈上儘量少的儲存需求來滿足共識;以及如何兼顧已有的和新進入的參與者

2、合理的通訊複雜度:這是一個選舉,如果透過大量的通訊,比如安全多方計算的一些方式,完全可以實現這一目標,但是,通訊過於繁複,使得成本和安全性都可能降低

3、計算的有效性:任何的參與者都應該能夠透過相對簡單的計算就可以實現這一選舉機制

4、可擴充套件性:設計要求支援大量的參與者,比如數十萬甚至百萬

5、強健性:作為一個共識,最好能夠在全網50%(或2/3)以上的誠實節點的支援下,整個網路能夠有效執行。

總結起來,就是一句話,只有實現了這些,才具有可用性。

預期共識(EC) - Filecoin的臨時方案

既然SSLE是一個理想,也就是說目前沒有現成的方案,那麼有沒有什麼折衷的方法呢?是的,這就是Filecoin目前採用的方案:Expected Consensus(預期共識)。

預期共識實現了前面提到的幾乎所有特性,就差一點。這一點就是不能實現單個領導人的選舉,也也是預期共識的一個最大的弱點:每一輪選舉出來的領導人可能是多個,也可能沒有,平均下來是一個。除了這一點,其他的,EC都實現得非常漂亮。

Filecoin的共識機制吸收了共識機制發展中的各種成果,第一次實現了基於有價值的網路的共識演算法。它包括:

1、基於儲存的工作量證明(POW)共識

2、可擴充套件的拜占庭容錯共識機制

3、權益證明(POS)共識機制

關於預期共識的詳細介紹,參見我的文章:【Filecoin】理解預期共識 - 及它的優缺點。這裡不再進行過多敘述。預期共識的實現非常簡單,它不需要互動,節點自己可以計算是否自己成為領導人,而且公佈之後他人可以十分方便地驗證。

由於預期共識一輪選舉可能產生多個領導人,這個問題怎麼解決?很簡單,都當領導,各自產生區塊,而且每一個區塊都有效。也就是說同一個高度就可能有多個區塊。怎麼處理?辦法是,把這些區塊再打包,稱為一個tipset。因此,在Filecoin中,鏈並不能完全稱為區塊鏈,也應該是tipset鏈。一個tipset裡包含一個或多個區塊。也有的輪次中的選舉沒有領導人,怎麼辦呢?那就跳過,這個高度就是一個空塊。這樣一來,儘管不夠均勻,但形成了鏈,而且是收斂的。

我們知道POS共識有一個大問題,那就是參與者由於不用耗費大量的資源,因此可以同時跟蹤多個鏈來保障利益的獲取,但這樣一來,使得系統的分叉變得十分難以收斂。預期共識對這一點也做了設計,那就是,強制參與者選擇一條鏈,因為Filecoin有抵押機制,透過巧妙地結合抵押機制,對於同時挖多個鏈的礦工進行懲罰,這樣可以非常快速地促進收斂。所有這些結合,堪稱完美。

目前預期共識還差什麼?

那麼還有一個問題,每一輪是如何定義的呢?我們知道比特幣是靠難度來進行調節的,如果沒有計算量來進行抑制,如何實現輪次的時間控制,這就是VDF和VRF的作用了。

預期共識的每一輪選舉要依賴一個隨機數,這個在系統的實現中稱為 ticket,這個ticket的產生中間要走一個 VDF 和 VRF的流程,來保證時間的花費。

免責聲明:

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

推荐阅读

;