區塊鏈共識機制的演化

共識機制 火星專欄 藍狐筆記 藍狐筆記 2018-07-25

對於一個公鏈來說,它是否足夠安全,是否更有效率,共識機制是關鍵。

人類能夠大規模地進行協作,能夠在地球上眾多生物中真正脫穎而出,最重要因素之一就是人類可以達成共識。這個共識來自於文化或者組織的認同。人們對國家、民族有共識,對公司有共識,這樣可以朝一個方向進行協作。如果沒有共識,就無法形成體系合作的力量,共識的產生有的來源於文化認同,有的來源於國家機器。比如貨幣的採用,是需要國家的信用背書。

比特幣的誕生則給我們帶來了一個可以自運轉網絡的成功範例。通過共識算法、加密、點對點網絡以及獎勵機制等,可以形成一個自治的社區,可以形成一個不通過中心機構來達成的信任,最終實現點對點的價值流通。

這是一個全所未有的社會實驗,到目前為止,它還是比較成功的,全球有數千萬比特幣地址,市值超過1400多億美元。

目前區塊鏈的共識機制主要有哪些?有哪些值得關注的共識機制?除了PoW、PoS、DPoS、PBFT之外,還有哪些共識算法值得關注?它會不會繼續演化?藍狐筆記最近關注到一種叫DSC的共識算法,它試圖平衡效率、公平、安全等方面,新探索值得探究。

共識算法是區塊鏈自運轉的核心

對於區塊鏈來說,它沒有一箇中心主體在負責體系的運轉,賬本怎麼記?什麼賬本才是大家確認的?諸如此類都需要由一個去中心化的機制來達成共識。

對於一個公鏈來說,它是否足夠安全,是否更有效率,共識機制是關鍵。共識機制設計好了,一是能夠保證網絡的安全,保證記賬的安全,免於遭受惡意攻擊;二是能夠讓社區很好的自運轉,特別是在如何激勵方面,是否有好的設計是自治社區能否進入良性循環的關鍵。

最後,越來越多的共識算法,除了保證安全之外,也會考慮到效率和公平。我們來看看,不同的共識算法各自的優劣之處。

1.PoW

PoW算法是最經典的共識機制。由比特幣引入並使用。以比特幣為例,PoW共識機制中,比特幣網絡中的礦工為了獲得記賬權,必須通過算力來解數學題。大約十分鐘時間,第一個發現特定屬性哈希的礦工將獲得記賬權,並被獎勵比特幣。

這個機制的本質就是消耗算力,因為解題沒有其他辦法,就是靠算力。而雖然解題耗費算力,但驗證答案是否正確卻很簡單。由於算力背後是經濟的成本,需要電費和礦機等支撐。這意味著要發起51%的算力攻擊需要巨大的能源和算力資源才能完成。

PoW是目前為止運行時間最長的共識機制,也是最久經考驗的共識算法,有較高的安全性,也是相對公平、去中心化的網絡。

但同時也有不少地方被大家詬病。尤其是在電力消耗和性能上。由於解題需要消耗大量的電力,全世界PoW算法所消耗的能源據統計已經超過愛爾蘭一個國家所消耗的電力。

另外,PoW的機制為了保證安全性,在性能上也不能兼顧,它的擴展性備受詬病。每秒才7個交易,跟中心化每秒10萬以上的交易相比,完全無法媲美。基於PoW機制,比特幣很難成為網絡電子現金支付系統。

在中心化方面,也存在一定的爭議。由於不同地區的電費不同,從成本上來說,最終會相對傾斜到電費成本較低的國家和地區。比如中國目前佔據比特幣算力的相當大一部分。

微信圖片_20180518142941.jpg區塊鏈共識機制的演化

上圖來源於blockchain.info,顯示了hashrate分佈的中心化趨勢

 

2.PoS

PoS跟PoW不同,它無須通過消耗算力獲得記賬權,所以更環保。PoS有驗證者,這些驗證者節點需要鎖定一定量的token,鎖定之後,就有權益的證明。一組驗證者輪流提議和投票下一個區塊的生成,而投票的權重取決於其持有token多少。

也就是說每個網絡節點鏈接到一個地址,這個地址所持有的代幣越多,它獲得生成下一個區塊的概率就越大。如果一個攻擊者試圖發起51%的攻擊,它需要持有超過50%以上的代幣,如果一個市值超過10億美元的網絡,攻擊者的成本至少5億美元以上,如果發生攻擊,導致網絡不安全,對理性攻擊者來說也沒有意義。而且PoS的防禦和攻擊是不對等的,防禦更容易些,恢復網絡的代價要低於攻擊者的代價。PoS是由NxT最先提出的。

PoS更適合代幣固定的網絡,不會產生通貨膨脹,它的收益獎勵主要來自於用戶的交易。

PoS的好處是不用消耗大量能源,達成共識速度快,但也有不足,不是所有節點都願意挖礦、永遠沒有最終性,需要檢查點機制來減緩這個問題、也容易產生分叉。

3.DPoS

DPoS比PoS更加高效。它的代幣持有人投票支持代表,當選的代表驗證區塊交易,獲得獎勵。DPoS的投票是持續進行的。一旦代表的表現不盡人意,代幣持有者可以用投票把代表選出。

由於代表需要遵守所有的規則,保證網絡正常運行時間,這也會比PoS更高效。此外,它不會分叉,比PoS有優勢。

它的不足是有中心化的風險。如果只有20多個超級代表,這意味著如果超級節點被控制,網絡有一定的安全風險。不過,DPoS共識機制也在不斷的進化,不斷的尋找兼顧安全、去中心化和效率。

除了PoW、PoS、DPoS之外,還有PBFT、VBFT、PoA、PoE、PoI…哪些值得關注呢?

藍狐筆記發現Penta網絡的DSC共識算法,它有自己的特色,它試圖在保證安全性的同時,滿足效率與公平的需求,為成為DApp的基礎設施而努力。

DSC共識算法:安全、效率與公平的兼顧

DSC協議是指動態權益共識協議,採用散列抽籤算法,兼顧效率與公平。

微信圖片_20180518143025.jpg

DSC共識算法通過如下幾個步驟來實現區塊的生產:

首先是從全網節點進行代表的投票選舉,選出兩種代表,一是持有較多PNT代幣的議員,一個是持有較少PNT代幣的觀察員。

其次,在兩種代表中通過散列抽籤算法,隨機挑選部分議員和觀察員組成若干的共識組,每個共識組的議員或觀察員佔比不得少於1/3。

共識組進行BFT共識。在議員中選舉出議長。議長提議生成區塊,其他議員和觀察員進行區塊驗證,在2/3以上節點驗證通過後,生成該共識組所對應的候選區塊。共識組數量的多少沒有固定,根據網絡情況進行動態調節,以保證正常出塊。

最後,候選區塊並不會自動成為正式區塊,還需要通過散列抽籤函數從所有共識組產生的候選區塊中選擇正式區塊。如果出現區塊共識在一定時間內無法達成的情況,會啟動RESET機制。所有議員進行一輪BFT共識,產生一個RESET區塊,重新組成共識組,恢復網絡正常運行。

這樣的選舉設計也有議會機制的影子。比如美國建國之初,一開始試圖設置單一院制,但發現眾議院是基於人數,人口少的州很少有機會發出自己的聲音,於是產生了兩院制的議會。參議院不管各州大小,都是兩票,一共100席。眾議院則根據州人口多少獲得席位。設計的目的是為了兼顧各方利益。

DSC通過議長、議員、觀察員、共識組的設計,有一部分制衡和保證公平的考慮。因為觀察員有機會進入共識組,且不少於1/3,所以即使用戶是持有較少PNT的代表,也有機會獲得獎勵。這兼顧了公平,而在PoS共識機制中,一個持有很少代幣的用戶,能得到獎勵的概率非常低。

Penta的議員是PNT代幣持有節點主動發起申請,其他節點進行投票選擇。要想當選議員,首先要質押一定數量的PNT代幣,同時必須獲得超過一定數量的票數。一旦當選議員,所有節點獲得記賬的機會均等。不是PNT數量越多,機會越大。議長是通過BFT共識過程產生,主要負責區塊生成。

觀察員是監督的角色,它跟議員不同,所需要質押的PNT數量較少,獲得的選票也較少。但觀察員分佈更廣,數量更多。它代表了更多普通PNT代幣持有人的利益。更類似於眾議院的角色。觀察員無法當選為議員或議長,沒有生成區塊的權利。

Penta網絡的議員人數是動態增長的,這個跟美國參議院固定席位不同。根據參與節點和PNT持有排名情況,Penta網絡確定最初的議員數量和最低PNT代幣的質押數量。同時,議員的數量和也會根據運行情況進行動態調整。觀察員的數量則不設置上限。

微信圖片_20180518143129.jpg

記賬過程也是靈活參與。首先存入作為保證金的PNT代幣,然後申請記賬,經過投票、鎖定代幣之後,獲得參與記賬的機會。如要退出記賬,申請解鎖質押的代幣,到期後獲得解鎖代幣,完成退出。

通過散列抽籤算法,Penta網絡可以從議員和觀察員中隨機選擇組成若干個共識組。假如每個共識組記賬人數n,n是動態調整的,其中,議員數量是(n1),那麼,n/3

關於惡意節點的懲罰:由於賬戶上質押了保證金,一旦發現任何故意破壞系統的行為,將會對節點進行懲罰。比如議長提出兩個及以上區塊BFT共識提案,其他節點可以舉證,一旦確認,議長會收到遠高於收益的懲罰。這會讓作惡的成本處於不對稱的狀態。

Penta網絡共識還能避免分叉。它有協議升級的機制。協議升級需要所有議員進行BFT投票,(2n+1)/3以上議員贊成,即可在指定區塊高度自動切換到新協議,保證協議升級不發生分叉。協議升級主要是一些參數調整,比如共識組節點數量、交易手續費、最低保證金、議員和觀察員人數等。

對於節點來說,記賬可以獲得收益,交易也有手續費收益。其中50%的PNT用於共識記賬激勵。在議長提議的區塊被議員和觀察員確認之後,候選區塊變成正式區塊,在這個過程中,參與貢獻的記賬節點,也就是產生備選區塊的共識組成員都會得到相應的PNT獎勵。

Penta的共識機制吸取了PoS、DPoS的優點,也有自己的獨創之處,不用擔心分叉,不用擔心能源浪費,提高了效率,同時兼顧代幣較少持有人的利益,鼓勵更多人蔘與進來,減少寡頭利益風險,兼顧安全、效率、公平。

這種共識機制的設計值得探索,也值得保持長期關注。

結語

共識機制是區塊鏈網絡運轉的核心,區塊鏈上不同節點的副本要保持一致,都需要通過共識算法來達成。但是為了保證安全和去中心化,目前區塊鏈技術很難實現性能、安全和去中心化同時兼得。

不同的算法都有各自優勢和不足。用PoW作為公鏈共識算法,很難實現擴展性,很難在它的基礎上構建DApp的生態基礎,很難向主流人群擴展。

用PoS或者DPoS共識算法,也有可能產生一些小概率事件,比如私鑰被盜取、超級節點合謀導致中心化趨勢等。在兼顧性能同時,可能在去中心化和安全上出現了一些不足。

在共識算法上的實踐肯定還不會停止下來,而DSC的共識算法試圖平衡安全、去中心化和效率,以及公平等方面,希望在這個基礎上設計出一個可以安全、穩定的價值傳遞網絡。

Penta的DSC共識協議跟DPoS不同的是,多了一個散列抽籤的算法,不僅僅照顧了代幣持有人的利益,還兼顧了更多公平和安全。

此外它還有插件化的共識組件,有靈活多種共識算法,可以支持到側鏈或獨立鏈。在Penta平臺上的記賬共識與DApp上側鏈或獨立鏈的共識分離,平臺層和業務層的解耦,不同的DApp採用不同的共識機制來達成自身的目的。

比如說,有的DApp對交易的性能要求不高,但對交易安全要求更高,它也許會選擇PoW算法,有的DApp對於交易性能要求很高,可能會採用DPoS的共識算法來達成目的。

未來的區塊鏈發展來看,由於要達成共識,肯定會犧牲效率。但要走向大規模人群的採用,沒有性能又是不行的。這裡的悖論需要解決,要麼,採用更加均衡的架構和共識機制,做一個平衡的取捨。要麼,採用非區塊鏈的數據結構或者中心化的方式來解決問題。

如果在區塊鏈的前提下,要達成一個可以落地的方案。採取類似於DSC這樣的共識算法,可以兼顧安全、效率以及公平,同時,通過一個比較靈活的設計,採用側鏈和獨立鏈的模式,允許這些鏈採用組件化的其他共識算法,實現不同場景下的不同最優選擇。

可以預見,未來除了PoW、PoS、DPoS、PBFT、PoA、PoI......之外,還會有更多層出不窮的共識算法,這對於區塊鏈發展的探索都是有益的。


文章原標題:區塊鏈共識機制的演化 原作者: 藍狐

相關推薦

推薦中...