萬維鏈很早便認識到「權益 Stake」纔是左右鏈上治理和發展的根本因素,投入理論研究團隊,研發了「PoS 星系共識」協議,在 4 月初正式發佈研究論文,這成爲 PoS 共識類別下一個高效、科學、安全且實用的 PoS 共識協議。本文從三大核心 PoS 項目 Cardano、Algorand、Casper 出發,爲讀者介紹星系共識框架和設計思路。

在衆多區塊鏈系統百家爭鳴的形勢下,安全高效的共識協議一直是分佈式系統專家和密碼學家研究的方向。隨着衆多基於權益證明(PoS)的核心區塊鏈項目出現,PoS 正在成爲整個區塊鏈世界關注的焦點。

萬維鏈很早便認識到「權益 Stake」纔是左右鏈上治理和發展的根本因素,投入理論研究團隊,研發了「PoS 星系共識」協議,在 4 月初正式發佈研究論文,這成爲 PoS 共識類別下一個高效、科學、安全且實用的 PoS 共識協議,用來替代原本高能耗的 PPoW (permission proof-of-work)。

隨着萬維鏈計劃在 2019 年第四季度實現從 PPoW 共識轉至 PoS 星系共識,該項目也在把共識系統正式開放給社區,邁出完全去中心化的關鍵一步。本文通過介紹星系共識的整體架構特點和其運轉流程,幫助加密貨幣投資者、開發者和區塊鏈技術愛好者瞭解這個全新的 PoS 共識。

從 PoW 到 PoS 之演化趨勢

設計共識協議,主要是爲了解決分佈式系統中兩個核心問題:出塊者選擇(Leader selection)和合法鏈選擇(Chain selection)。

在傳統的工作量證明(PoW)共識中,出塊者的選擇是通過挖礦進行的,藉助的是哈希函數的隨機性,礦工依賴自身的計算能力參與出塊者競爭,這裏的公平性體現在任何節點對哈希函數結果的不可預測性,任何節點都沒有優勢可言,只能通過簡單粗暴的窮舉運算來解決問題。合法鏈選擇往往採取最長鏈的規則,也就是讓算力最大的分支成爲主流。這樣「挖礦+最長鏈規則」的框架設置下可以解決「雙花」問題,但是也會導致大量能源浪費,這正是其他共識協議被提出的根本原因之一。

從三大核心項目瞭解 PoS 共識主流框架

當前主流的權益證明(PoS)協議又是通過怎樣的框架設計來解決這一問題的呢?可以通過三種知名的共識協議來介紹目前 PoS 共識的主流框架。

Cardano

Cardano 的 Ouroboros 共識算法是發表在密碼學頂級學術會議美密會(Crypto 2017)上的學術論文,也是第一個被工業界採用的可證明安全 PoS 算法。該算法的卓越的貢獻在於提出了可證明安全的共識模型框架,並在其中設計了實用的算法模塊。

在 Ouroboros 共識算法多個系列版本中,出塊者選擇上有不同的方式。由最初利用隨機數的確定性選擇,到採用 VRF 算法的匿名選擇,Ouroboros 逐漸將選擇的過程隱私化、安全化,而有效鏈的選擇上則一直是最長鏈規則,也就是「chain based」方式,保證了鏈的安全性。簡單來說,Ouroboros 的整體框架是「VRF selection + Chain based」模式。

Algorand

Algorand 是由圖靈獎得主、麻省理工學院教授 Sivio Micali 提出的 PoS 共識協議,其突出貢獻在於設計了拜占庭容錯(BFT)算法的升級協議「BA*協議」,利用投票的方式解決了區塊合法性的選擇。

在出塊者和驗證者的選擇上,Algorand 也採用了 VRF 算法,保證了隨機性和匿名性,經過 BA*協議的運行,保證每一個高度的區塊都是被確認的,即使最終是空區塊,也是經過投票認證的。Algorand 的整體框架是「VRF + BA*投票」模式。

Casper

Casper 是以太坊當前研究開發的 PoS 共識協議。秉持着實用性的特點,Casper 採用了「投注式」共識,具體來說,完成保證金質押的驗證者可以投注自己相信會被確認的區塊,在投注規則的限制下保證了最終勝出區塊的唯一性,而勝出的驗證人也將得到收益。

Casper 將幫助以太坊由 PoW 轉型爲 PoS,是大家十分期待的共識協議。簡單來說,Casper 的整體框架是「驗證人 + 投注」的模式。

PoS 星系共識框架和設計思路是什麼?

在瞭解了以上三種最主流的 PoS 共識協議之後,讓我們迴歸到 Wanchain 提出的 PoS 星系共識,看看這個共識算法的整體框架和設計思路是什麼。

星系共識借鑑了 Ouroboros 可證明安全的模型框架,全新設計了更加高效安全的隨機數生成算法,並創新性設計「Unique Leader Selection」算法,替代了 VRF 算法,用於出塊者選擇。

「Unique Leader Selection」算法是萬維鏈理論團隊獨創的一種用於選擇出塊人的算法,其 PoS 黃皮書中有專門的介紹。

一文讀懂萬維鏈 PoS 星系共識架構特點和運轉流程

保證了合法出塊者的唯一性,大大降低了自然分叉概率。

簡單來說,星系共識的整體框架就是「ULS + Chain based」,在保證安全性的前提下極大地提升了實用性。

誰來構建鏈上隨機數和打包出塊?

在星系共識之中,參與節點可以根據任務分工的不同,劃分爲兩個「星羣」:「RNP 星羣」和「EL 星羣」。

這兩個星羣都是在所有星系共識節點中,按照自身持有權益比例選擇出來的。但是承擔的任務不同,主要解決共識中的兩個關鍵問題:

(1)RNP 星羣是負責構建鏈上隨機數的羣體。RNP 星羣中的節點通過 DKG1、DKG2、SIGN 三個階段的工作完成隨機數的更新,保證了鏈上隨機數的安全性。正如上面介紹的主流 PoS 框架所說,如何維護一個公平的隨機數是保證協議安全的重中之重,RNP 星羣正是承擔着這一關鍵性工作,其每一輪產生的隨機數將作爲星羣構建、出塊者選擇和其他隨機源應用的重要種子,維持着共識的健康運轉。

一文讀懂萬維鏈 PoS 星系共識架構特點和運轉流程

(2)EL 星羣是負責收集交易、打包出塊的羣體。EL 星羣需要完成兩個週期的工作,第一個週期通過 SMA1、SMA2 兩個階段完成祕密信息序列(secret message array)的協商,完成 EL 星羣內部祕密數據的共享,第二個週期通過祕密信息序列和鏈上隨機數確定出塊權歸屬,並在自身負責出塊的時間段內打包區塊並廣播,完成鏈的生長髮展。其作用毋庸置疑,是保證共識安全運行的基礎。

一文讀懂萬維鏈 PoS 星系共識架構特點和運轉流程

兩類星羣如何工作,實現星系共識?

瞭解了「RNP 星羣」和「EL 星羣」兩類星羣的核心任務之後,就可以從一個較高的視角來看看這兩類星羣如何工作,實現星系共識的運行。

首先簡單瞭解一下兩個和時間有關的概念:「slot」和「epoch」。slot 是一個區塊的生成時間,即每個 slot 內產生一個新的區塊,而 epoch 是由大量連續 slot 構成的時間週期,是協議完整運行的一個循環。

星系共識具體的協議運行流程可以分爲四個步驟:

1、構建星系

這是協議運行的準備階段,在這一階段,所有想要參與星系共識的節點通過在共識智能合約中質押一定量的 WAN 成爲星系節點,質押時會選擇鎖定時間。鎖定時間的長短將影響節點的權益值,鎖定時間越長,權益值則相應略高。同時,權益值隨着鎖定時間的流逝也將呈增長趨勢。這一設計很好的模擬了幣齡的概念,確保了權益設計的合理性和節點參與的公平性。

經過這一階段的準備,星系中就出現了大量的節點,這些節點將正式運轉星系共識。

一文讀懂萬維鏈 PoS 星系共識架構特點和運轉流程

2、組建星羣

在每次協議運行週期(epoch)的起始,星系中會選擇出兩大星羣,即 RNP 星羣和 EL 星羣,這兩大星羣的選擇是基於節點持有權益值的比例,利用鏈上隨機數進行的隨機選擇過程,類似於 follow-the-satoshi。使用 follow-the-stake-ratio,可以保證星系節點參與組建星羣的公平性,權益佔比越高,被選入星羣的概率越大,參與共識進而獲得收益的可能性就越大,這也是 PoS 共識的核心思想之一。

一文讀懂萬維鏈 PoS 星系共識架構特點和運轉流程

3、RNP 星羣運轉

RNP 星羣被選擇組建之後,星羣中的節點完成 DKG1、DKG2 和 SIGN 三個階段的工作,在 DKG1 階段,各節點提出自身對隨機數碎片選擇的承諾,保證了碎片選擇的不可更改性,在 DKG2 階段,各節點將自身選擇的隨機數碎片通過門限祕密分享的方式分享給星羣中的其他節點,最終在 SIGN 階段,各節點公佈自身收集的隨機數碎片數據,完成隨機數的生成,更新鏈上隨機數數據。

整個過程中,由於門限祕密分享的特點,保證了只要在線節點數超過門限值,就將順利完成隨機數的更新,確保了隨機數生成的可靠性。同時,只要星羣中至少一個節點在隨機數碎片的選擇上是隨機的,那麼最終隨機數結果就是隨機的,保證了隨機數生成的安全性。

一文讀懂萬維鏈 PoS 星系共識架構特點和運轉流程

4、EL 星羣運轉

EL 星羣被選擇組建後,將參與兩個週期(epoch)的工作。在第一個週期中,EL 星羣節點參與 SMA1 和 SMA2 兩個階段工作。

在 SMA1 階段,各節點提出自身祕密信息的承諾數據,保證了祕密信息的不可更改性;在 SMA2 階段,各節點將自己的祕密信息加密共享給其他節點,完成祕密信息序列(secret message array)的生成。

在第二個週期起始時,EL 星羣中的節點會依據 RNP 星羣產生的隨機數進行排序。這一排序在整個週期中有效,同時依據祕密信息序列執行出塊者選擇算法,確定整個週期內各時間段(slot)的出塊權歸屬。這一過程是在 EL 星羣內部祕密執行的,其他節點無法獲知結果,而 EL 星羣中節點就依據出塊權的歸屬完成整個週期內新區塊的生成。

當新區塊被提出時,EL 星羣中的節點要添加自身合法性的憑證,這一憑證可被全網驗證,確保了鏈的正常安全發展。

一文讀懂萬維鏈 PoS 星系共識架構特點和運轉流程

共識節點的另一類劃分:兩類星體

在星系共識之中,參與節點除了可以根據在共識達成中的任務分工不同,劃分爲「RNP 星羣」和「EL 星羣」之外,還可以根據是否可以接受委託,爲「恆星節點」和「行星節點」兩種「星體」。

在星系共識之中,所有在智能合約中質押了 WAN 的用戶都將成爲整個星系中的一個節點,而這些節點由於能力的大小被分爲兩種星體:恆星(star)和行星(planet):

  • 恆星節點是可以接受委託的共識節點,其自身持有一定量的權益,而且其自身權益值將影響其接受委託的權益上限;
  • 行星節點是不可以接受委託的共識節點,其參與共識完全依賴於自身持有的權益值。

雖然兩種星體能力大小有所區分,但在參與共識的過程中是相同的,並不做區分。

不過,只有恆星節點可以接受委託,這是因爲爲了給僅持有少量 WAN 或權益較小的用戶提供參與共識的機會,星系共識中設計了完整的委託機制。委託機制的實現是基於三重 ECDSA 委託簽名算法,對當前的區塊鏈系統有着天然的兼容性。

通過委託機制,持有少量 WAN 的用戶可以將自身權益委託給代理節點(某恆星節點),由代理節點參與共識的運行,同時由於簽名消息空間的限制,代理節點只能代爲出塊,無法進行其他操作,保證了用戶權益的安全性。

希望成爲恆星節點,一方面需要更多的權益質押,另一方面也取決於節點的信譽程度。

通過以上的介紹,希望讀者可以從整體上了解 PoS 星系共識的框架和運行流程。其中更詳細的內容,可以在星系共識論文(https://www.wanchain.org/files/Wanchain-Galaxy-Consensus-V1.0.pdf)找到具體的描述。

這是星系共識探索系列文章的開篇。我們會在之後的文章中針對具體問題,一一深入介紹該共識體系中各模塊組件的設計思想和運轉流程,爲大家逐步呈現星系共識系統的完整藍圖。