第三章 區塊鏈的分類
區塊鏈的共識機制致力於解決在分散式儲存過程中區塊鏈發展所面臨的一致性問題——拜占庭將軍問題。基於不同場景下建立信任的方式,區塊鏈可分為兩類:許可鏈和非許可鏈。基於資料的讀寫許可權和管理許可權的差異,區塊鏈可分為公有鏈、私有鏈和聯盟鏈。公有鏈、私有鏈和聯盟鏈這三種不同的區塊鏈,在許可權和共識機制方面有所區別。
第一節 公有鏈
公有鏈,也被稱為非許可鏈,沒有集中式的管理機構。網路中的參與節點可任意接入,可隨意檢視區塊鏈上的任意資訊,且對相關的資料未設定讀寫訪問許可權。公有鏈典型的共識演算法可分為工作量證明(PoW)、權益證明(PoS)和權威證明(PoA)三類。
PoW共識演算法是比特幣系統所採用的常見共識演算法,要求區塊鏈上的各節點基於自身算力求解一個難度適中且易於驗證的數學問題(挖礦),最快求解出該問題的節點擁有區塊的記帳權,且獲得一定數量的比特幣作為「挖礦」的獎勵。PoW共識演算法在比特幣系統中發揮了至關重要的作用,能夠對比特幣系統中的加密貨幣發行、流通、回籠和市場交換等流程進行系統整合,從而建構一個安全可靠的系統。然而,PoW共識演算法仍存在很多不足,例如:算力競爭所帶來的資源浪費等問題。
為改善PoW共識演算法所帶來的算力資源浪費,PoS共識演算法中規定具備最高權益的區塊鏈節點將擁有區塊的記帳權,而不是具備最大算力的區塊鏈節點擁有區塊的記帳權。PoS共識演算法中的權益一般指的是使用者在區塊鏈上所持有的Token(代幣)數量或持有Token的時間等虛擬資源。根據「礦工」持有權益的數量來設定其「挖礦」的難度,「礦工」擁有的權益越大,「挖礦」的難度就越小。PoS透過所持權益的大小來決定區塊鏈系統中的記帳權,從而可有效地避免資源浪費。因此,隨著挖礦難度日益增加,比特幣系統由初期的PoW共識演算法來維護轉變為由PoS共識演算法來維護,PoS共識演算法能夠從一定程度上減少算力資源浪費並縮短區塊鏈中各節點達成共識需要的時間。
PoA共識演算法指的是鏈上各節點透過投票方式選舉出的權威節點最終將獲得該區塊的記帳權。與其他共識演算法有所不同,PoA共識演算法能夠有效地避免算力資源浪費和51%算力攻擊的問題。
第二節 聯盟鏈
聯盟鏈,也被稱為許可鏈,介於公有鏈和私有鏈之間,在結構上採用「部分去中心化」的方式,由若干機構聯合建構。聯盟鏈只限聯盟成員參與,某個節點加入聯盟鏈需要獲得聯盟成員許可,資料讀取許可權和記帳規則等均需要根據聯盟中的相關規則來確定。與公有鏈相比,聯盟鏈所擁有的節點數量較少。聯盟鏈典型的共識機制有拜占庭容錯機制和實用拜占庭容錯(PBFT)機制。在BFT演算法中,拜占庭問題能夠解決的前提條件是拜占庭節點數目不超過節點總數目的三分之一。
原始的拜占庭容錯機制可劃分為兩種協議:口頭協議和書面協議。口頭協議的核心思想是將所接收到的「命令」在各個節點之間進行傳輸,最終根據各個節點所獲取的綜合資訊來確定最終的結果。書面協議的核心思想是對所傳輸的資訊進行數位簽名,該協議能夠防止拜占庭節點隨意修改接收的資訊。
PBFT是BFT升級和改進版本,用實用拜占庭容錯演算法解決了拜占庭容錯演算法中資料資訊的傳輸複雜度較高的問題。但PBFT不適用於大規模的公有鏈,因為節點數量越多,節點之間的通訊時間就越長。除此之外,PBFT對 BFT中所存在的演算法效率較低的情況進行了改善,共識演算法的複雜度由指數級降至多項式級。這使PBFT演算法在實際應用場景中得到了普及和發展。
第三節 私有鏈
私有鏈由私有組織或單位建立,寫入許可權僅局限在組織內部,讀取許可權有限對外開放。私有鏈通常採用具有可信中心的部分去中心化結構和容錯性低、效能效率低的Paxos和Raft(木筏)等共識機制,因此記帳效率要遠高於聯盟鏈和公有鏈。其中,Paxos共識機制是基於訊息傳遞的一致性演算法,主要用於解決如何調整分散式系統中的某個值使其達成一致的問題。Raft共識機制能夠快速達成共識,確保了結果的可靠性和準確性。
第四節 鏈的對比
在分散式結構上,不同類型的區塊鏈系統具有一定差異。由於具備不同的區塊鏈共識機制,因此不同類型的區塊鏈系統應用場景也有較大差別。公有鏈採用完全去中心化架構,各參與節點具有平等的資料讀寫等權利,通常用於搭建開放式的共享記帳系統;聯盟鏈採用部分去中心化的分散式結構,是由參與聯盟的多個組織或機構形成多中心的分散式系統,通常用於在各行業機建構立權利相對平等的組織團體中共享資料;私有鏈在公司或機構內部形成小範圍的可信中心化結構,省略激勵層以提高效能和效率,用於企業和機構進行資料共享管理。
目前,在區塊鏈領域中衍生出兩種發展方向:一種是以比特幣、以太坊為代表的公有鏈的發展方向,另一種是以超級帳本為代表的私有鏈、聯盟鏈的發展方向。比特幣、以太坊等具有全球化、不受特定機構或組織約束的特點,而超級帳本則致力於建構一個既能滿足不同領域需求又能滿足各監管架構要求的開放平臺。
區塊鏈的共識機制致力於解決在分散式儲存過程中區塊鏈發展所面臨的一致性問題——拜占庭將軍問題。基於不同場景下建立信任的方式,區塊鏈可分為兩類:許可鏈和非許可鏈。基於資料的讀寫許可權和管理許可權的差異,區塊鏈可分為公有鏈、私有鏈和聯盟鏈。公有鏈、私有鏈和聯盟鏈這三種不同的區塊鏈,在許可權和共識機制方面有所區別。
第一節 公有鏈
公有鏈,也被稱為非許可鏈,沒有集中式的管理機構。網路中的參與節點可任意接入,可隨意檢視區塊鏈上的任意資訊,且對相關的資料未設定讀寫訪問許可權。公有鏈典型的共識演算法可分為工作量證明(PoW)、權益證明(PoS)和權威證明(PoA)三類。
PoW共識演算法是比特幣系統所採用的常見共識演算法,要求區塊鏈上的各節點基於自身算力求解一個難度適中且易於驗證的數學問題(挖礦),最快求解出該問題的節點擁有區塊的記帳權,且獲得一定數量的比特幣作為「挖礦」的獎勵。PoW共識演算法在比特幣系統中發揮了至關重要的作用,能夠對比特幣系統中的加密貨幣發行、流通、回籠和市場交換等流程進行系統整合,從而建構一個安全可靠的系統。然而,PoW共識演算法仍存在很多不足,例如:算力競爭所帶來的資源浪費等問題。
為改善PoW共識演算法所帶來的算力資源浪費,PoS共識演算法中規定具備最高權益的區塊鏈節點將擁有區塊的記帳權,而不是具備最大算力的區塊鏈節點擁有區塊的記帳權。PoS共識演算法中的權益一般指的是使用者在區塊鏈上所持有的Token(代幣)數量或持有Token的時間等虛擬資源。根據「礦工」持有權益的數量來設定其「挖礦」的難度,「礦工」擁有的權益越大,「挖礦」的難度就越小。PoS透過所持權益的大小來決定區塊鏈系統中的記帳權,從而可有效地避免資源浪費。因此,隨著挖礦難度日益增加,比特幣系統由初期的PoW共識演算法來維護轉變為由PoS共識演算法來維護,PoS共識演算法能夠從一定程度上減少算力資源浪費並縮短區塊鏈中各節點達成共識需要的時間。
PoA共識演算法指的是鏈上各節點透過投票方式選舉出的權威節點最終將獲得該區塊的記帳權。與其他共識演算法有所不同,PoA共識演算法能夠有效地避免算力資源浪費和51%算力攻擊的問題。
第二節 聯盟鏈
聯盟鏈,也被稱為許可鏈,介於公有鏈和私有鏈之間,在結構上採用「部分去中心化」的方式,由若干機構聯合建構。聯盟鏈只限聯盟成員參與,某個節點加入聯盟鏈需要獲得聯盟成員許可,資料讀取許可權和記帳規則等均需要根據聯盟中的相關規則來確定。與公有鏈相比,聯盟鏈所擁有的節點數量較少。聯盟鏈典型的共識機制有拜占庭容錯機制和實用拜占庭容錯(PBFT)機制。在BFT演算法中,拜占庭問題能夠解決的前提條件是拜占庭節點數目不超過節點總數目的三分之一。
原始的拜占庭容錯機制可劃分為兩種協議:口頭協議和書面協議。口頭協議的核心思想是將所接收到的「命令」在各個節點之間進行傳輸,最終根據各個節點所獲取的綜合資訊來確定最終的結果。書面協議的核心思想是對所傳輸的資訊進行數位簽名,該協議能夠防止拜占庭節點隨意修改接收的資訊。
PBFT是BFT升級和改進版本,用實用拜占庭容錯演算法解決了拜占庭容錯演算法中資料資訊的傳輸複雜度較高的問題。但PBFT不適用於大規模的公有鏈,因為節點數量越多,節點之間的通訊時間就越長。除此之外,PBFT對 BFT中所存在的演算法效率較低的情況進行了改善,共識演算法的複雜度由指數級降至多項式級。這使PBFT演算法在實際應用場景中得到了普及和發展。
第三節 私有鏈
私有鏈由私有組織或單位建立,寫入許可權僅局限在組織內部,讀取許可權有限對外開放。私有鏈通常採用具有可信中心的部分去中心化結構和容錯性低、效能效率低的Paxos和Raft(木筏)等共識機制,因此記帳效率要遠高於聯盟鏈和公有鏈。其中,Paxos共識機制是基於訊息傳遞的一致性演算法,主要用於解決如何調整分散式系統中的某個值使其達成一致的問題。Raft共識機制能夠快速達成共識,確保了結果的可靠性和準確性。
第四節 鏈的對比
在分散式結構上,不同類型的區塊鏈系統具有一定差異。由於具備不同的區塊鏈共識機制,因此不同類型的區塊鏈系統應用場景也有較大差別。公有鏈採用完全去中心化架構,各參與節點具有平等的資料讀寫等權利,通常用於搭建開放式的共享記帳系統;聯盟鏈採用部分去中心化的分散式結構,是由參與聯盟的多個組織或機構形成多中心的分散式系統,通常用於在各行業機建構立權利相對平等的組織團體中共享資料;私有鏈在公司或機構內部形成小範圍的可信中心化結構,省略激勵層以提高效能和效率,用於企業和機構進行資料共享管理。
目前,在區塊鏈領域中衍生出兩種發展方向:一種是以比特幣、以太坊為代表的公有鏈的發展方向,另一種是以超級帳本為代表的私有鏈、聯盟鏈的發展方向。比特幣、以太坊等具有全球化、不受特定機構或組織約束的特點,而超級帳本則致力於建構一個既能滿足不同領域需求又能滿足各監管架構要求的開放平臺。