這兩週在社群,除了最熱門的 IEO( Initial Exchange Offering)之外,Nervos Network 的第二層解決方案,應該是最多人探討的話題。目前,大部分的區塊鏈底層協議都希望讓所有的應用在區塊鏈上發生,這也要求了區塊鏈網路必須乘載所有的需求,成為一種世界計算機。
但是 Nervos 覺得區塊鏈的資源很稀少,應該要用在最重要的地方。Nervos 協議專為分層設計後,會開始出現不同的分工,而最底層的架構應該是支持區塊鏈最根本的安全性,而非在同一個協議中建構所有的需求。
與此同時,DEXON 也即將將主網上線,宣稱了他們在不可能三角之間取得平衡,達到了真正的低延遲和高擴佔性。
從中本聰在 2008 年發佈了《比特幣:一種點對點的電子支付系統》,隨著密碼貨幣的市值變高,大眾不但注意到了密碼貨幣,還注意到其核心技術 — 區塊鏈。至此以後陸陸續續出現 Ethereum、EOS、Tron、Cardano 等底層鏈。
PoW → PoS → DPoS
工作證明(Proof of Work,PoW)
比特幣的共識演算法架構就是 PoW,所有的礦工都會競爭去試 Nonce 值,第一個找到 Nonce 值經過函數之後小於某一個值的礦工就獲勝,會獲得出塊的權利。
這樣的共識演算法,所有的礦工都在做同一件事。雖然安全,但是太慢了。所以以太坊在 Road map 的 Serenity 階段的時候就預計從 PoW 變成 PoS。
權益證明(Proof of Stake,PoS)
Stake 最早是籌碼的意思。只要有一定籌碼的人,都有機率可以成為節點。它的出塊機制是,看誰出的籌碼多,籌碼多的人不一定能夠出塊,而是機率比較高。譬如說下圖就是 Node 3 出塊,其他節點再驗證,確認沒問題之後就可以出塊。如此一來,就能得到比較快的交易確認時間以及減少耗能。
但是,PoS 在節點候選人很多的情況,在跑拜占庭協議決定誰出塊的時候,延遲性會較高。而且,要設計出一套可以讓盡可能讓降低門檻,讓參與的節點變多,同時又要兼顧安全性的拜占庭協議是非常困難的。
這也就是為什麼以太坊的核心開發社群還未設計出 Casper PoS ,而且還分成 Casper FFG 跟 Casper CBC 兩個研究方向。
也因此,EoS 設計出了股份授權證明(Delegated Proof of Stake,DPoS )
股份授權證明(Delegated Proof of Stake,DPoS )
既然 PoS 在節點很多的情況下去跑拜占庭協議的效率會變低,所以 DPoS 限制了節點數量。EOS 是第一個用 DPoS 共識演算的區塊鏈網路,節點共 21 個。而 21 個超級節點是從 100 個備用節點選出來的。
成為備用節點需要抵押大量的 EOS 在 EOS 網路上,尤其他持有 EOS 代幣的持有者投票選出超級節點。用民主代議的方式選出超級節點固然看似解決問題。
但是有人的地方就有江湖,用「人治」取代一部份的「代碼治」,看起來固然聰明,未來如果誘因夠大,難保不會有節點共謀的情況出現。這也就是為什麼 EOS 被大家戲稱「半中心化」。
不可能三角(Impossible Trinity)
正因為共識演算法無法三全其美,所以在區塊鏈上又有俗稱的不可能三角問題,即為去中心化、安全性、擴展性三者兼具。
下面這張圖可以看到,比特幣非常的去中心化及安全,可是他就犧牲了可擴展性,以太坊網路目前的狀況也是;而 EOS 的可擴展性很高,也很安全,可是就犧牲了一部份的去中心化。
於是,Nervos 走了另外一條路。
Nervos Network
區塊鏈可以理解成「世界計算機」,那是一台全世界用戶可以共同使用的計算機。
在世界計算機中,我們應該可以搭建和部署自己的應用,由世界計算機幫我們執行;我們可以在世界計算機上保存各自的數據;不僅如此,應用之間還能夠完美的協作,取得全世界的共識。
但是去中心化計算機的效率,是沒辦法比得上現在的中心化的計算機。這讓我們反思,設計出一個區塊鏈,讓節點的運作速度更快、效率更高,好讓所有的交易、運算都在上面進行,這個方向是不是錯的?
既然 Layer 1是全世界的共識,上面的節點計算能力就顯得是「稀缺資源」。根據人類社會運作的模式,分工合作,用最有效率的方式配置資源,也許才是對的。
Nervos 的區塊鏈網絡叫做共同知識庫(Common Knowledge Base,CKB)。CKB 位於 Nervos 網絡的最底層,我們稱為 Layer 1,是一個全新設計的公有鏈協議。
在 CKB 之外,Nervos 還要定義 Layer1 與 Layer2 之間的信任傳遞協議,將 CKB 建立的信任傳遞到上層,保障 Layer2 DApp 的執行,以及整個 Nervos 加密經濟的運行。
Nervos CKB 協議是分層信任網絡,絕大部分的計算、存儲、網絡傳輸發生在 Layer2。Nervos CKB 協議的 Layer 1 上面的計算能力,就像法庭一樣,有爭議才需要用到 Layer 1 的計算能力。
只有在 Layer 2 上有爭議的交易才需要由 Layer 1 解決。這樣一來,Layer 1 就能提發揮區塊鏈當中最重要的機制 — 信任機制。而 Layer 1 上面的計算能力,也能得到解放。
從整個經濟模型的上來看,分工合作,發揮自身最大效益。
DEXON 如何解決問題呢?
在 DEXON 之中,鏈上的每一個區塊都配有一個隨機數供智慧合約使用,而這個隨機數是唯一的,而且可以證明是隨機產生的。在密碼學尚稱之為 可驗證隨機函數(Verifiable Ramdoness Fuction,VRF)。
透過這個 VRF,每回合選出鏈上的節點,再由這些節點去跑拜占庭協議。這樣一來就可以解決傳統 DPoS 的節點太過中心化的問題。
在區塊鏈上因為沒有一個可信任的第三方,所以需要節點之間互相達成共識。但是,並非每個節點都是好節點。 所以在設計區塊鏈共識演算法的時候,針對系統可容忍的壞節點比例,以及系統能夠容忍壞節點作惡的程度,而最後全網路的共識依然是正確而且成立的。 而這個設計的協議就叫做「拜占庭協議」。
在 DEXON 的區塊鏈網路上,任何人只要滿足下列條件皆有資格成為備選節點,且有一定機率選進「Notary set」以及「CRS set」。
這種機制叫做 POP (Poof of Participant)。
「Notary set」裡面的節點,要負責執行拜占庭協議,透過拜占庭協議達成共識,就能選出此回合出塊的節點。
「CRS set」裡面的節點,就負責計算每個區塊產生的隨機數,再將隨機數放進雜湊函數中,就成了專屬於這個區塊專屬的隨機數。在用這個隨機數去選出下一個「Notary set」以及「CRS set」。
如此的設計,等於是 DPoS 的改良方案。除了解決現在區塊鏈擴展性不足的問題,同時也解決的 DPoS 一直有 21 個超級節點,半中心化的問題。
雖然從比特幣問世,至今已經過了 11 年,但是從以太坊的去中心化作業平台的概念出現,也不過才 4 年左右。目前區塊鏈底層鏈都還在萌芽階段,也許解決的道路不只有兩條,但每條道路的終點不盡相同。
但可以肯定的是,所有的分歧點最終都會是區塊鏈技術進步的養分。