數字貨幣十年 共識機制的發展歷程

2021-09-30 16:32:10 字數 3692 閱讀 8444

區塊鏈的共識機制,已有無數的文章分析過了,本文的目的,不在於對各種共識機制的原理做多麼深入的解讀,而是主要從時間線角度,梳理位元幣第乙個十年間,共識機制的發展歷程。

一、為何需要共識機制:維護一致性

區塊鏈作為乙個分布式賬本,即意味著每乙個節點都能夠驗證交易,而面對的物件當然應該是具有一致性的賬本,才不會導致相互間的衝突,共識機制就是為了解決這個「一致性」的問題。

在區塊鏈中,各節點發生的交易都將被記入這個賬本,形式則是把新賬記錄打包成乙個區塊,該區塊加上了時間戳,經過了加密,將被附加在最新的區塊之後,以此形成乙個鏈式資料結構。

這麼乙個資料賬本,本身不提供去中心化,只有加入了去中心化的共識機制,這個系統才能做到去中心化。簡單來說,就是在這個賬本中,誰來記賬就成為了乙個問題,記賬權的分配應該是去中心化的。共識機制就是為了解決這個記賬權的問題而出現的。

說白了,共識機制就是乙個群體決策的問題:一群人要如何做出對所有人都最有利的決定,而且這個決定要對所有人都公平。

可以拿選舉、投票來作模擬。比如英國脫歐,當時是採用了全民公投的方式進行,當同意脫歐的人數達到了一定比例,那麼就選擇脫歐。而在英國的議會,議員們代表著把自身選上來的選民的意志,他們作為**人在議院行使表決權,做出對整個國家(整個社群)最有利的決定。區塊鏈中,pow機制即類似全民公投,dpos就有點像代議制。

每種共識機制,都要設計好程式,使之能夠把這套規則在區塊鏈中執行下去。而作為一種設計,自然會有其優缺點,某個區塊鏈採用哪種共識機制,是按照自己的理念,適應自身需要,在一開始就決定的。當然,一種共識機制,在最初可能難以預見後續會出現什麼問題,其優缺點需要在時間中得到檢驗。例如位元幣採用的pow共識機制就具有耗能高與礦池導致算力中心化的缺陷,目前以太坊正打算從pow共識機制換到pos共識機制上來。

二、現在已提出的一些共識機制

目前為止,區塊鏈共識機制已經發展多年,有了很多不同的種類,下面是乙個對區塊鏈很感興趣的geek(極客)hasib anwar製作的現有的一些共識機制圖表:

所有共識機制列表

• proof-of-work 工作量證明

• proof-of-stake 權益證明

• delegated proof-of-stake 委託權益證明

• leased proof-of-stake 租用權益證明

• proof of elapsed time 過去時間證明

• practical byzantine fault tolerance 實用拜占庭容錯

• simplified byzantine fault tolerance 簡單拜占庭容錯

• delegated byzantine fault tolerance 委託拜占庭容錯

• directed acyclic graphs 有向非迴圈圖

• proof-of-activity 活動量證明

• proof-of-importance 重要性證明

• proof-of-capacity 容量證明

• proof-of-burn 燃燒證明

• proof-of-weight 重量證明

(以上圖表見hasib anwar的文章「consensus algorithms: the root of the blockchain technology」,智慧型位元翻譯)

其中,工作量證明(pow)是第乙個區塊鏈共識機制,位元幣以及目前的以太坊都是採用了這一共識機制;權益證明(pos)在2023年第一次被提出,並被應用在點點幣、未來幣等專案上;委託權益證明(dpos)最著名的代表則是位元股(bitshare)、eos,這三者是目前公鏈應用最多的三種共識機制。在聯盟鏈領域,hyperledger fabric 在 0.6 版中應用了pbft,而在 1.0 版中放棄了pbft,轉而採用效率更高的kafka,支援單點和集群兩種方式,由 kafka直接給交易排序和出塊;中國的fisco bcos則支援平行計算的pbft和標準raft兩種方式。

除了hasib anwar圖表中歸納的這些,還有一些也被視為共識機制,例如瑞波幣的ripple演算法、基於交易的股權證明機制(tapos)等。還有一些,例如艾歐塔(iota),採用的是的dag(有向無環圖)資料結構,通過纏結(tangle)的方式加入區塊鏈,與區塊鏈的鏈式資料結構是不同的,這也可以被當作一種共識機制。

共識機制可以被當作是一套演算法,分布式系統都需要這樣一套演算法來保持一致性,區塊鏈作為分布式系統的乙個子集,也借用了分布式系統的一些用於達成共識的協議。比如lamport設計的保持分布式系統一致性的協議paxos,還有stanford提出的raft協議,上面提到的聯盟鏈fisco bcos 就採用了raft協議,此外微軟主導的聯盟鏈coco 支援paxos和 caesar兩種協議。

三、共識機制的發展之pow-pos-dpos

2023年,中本聰在《位元幣:一種點對點的電子現金系統》這篇**中提出了位元幣與區塊鏈,其中pow被應用於位元幣上,來解決誰是大多數的問題。但是人們很快發現這種共識機制的問題,即消耗能源大,以及被大礦池把持算力之後,仍然會導致中心化的問題。

2023年,乙個名為quantum mechanic的數字貨幣愛好者在bitcointalk論壇提出proof-of-stake(pos)證明機制,該機制被充分討論之後證明具有可行性。pow是比拼算力,而pos簡單來說就是比拼誰手裡的幣多,手裡幣越多,獲得記賬資格的概率就越高。

2023年8月,密碼貨幣極客sunny king 發布peercoin(點點幣,ppc),它的挖礦方式採用了pow和pos結合的方式。點點幣之後,又有新星幣(novacoin,nvc)、黑幣(blackcoin,blk)等採用pos。在這些幣當中,黑幣對點點幣做了一些優化,發布了pos2.0***,其中最重要的一點就是用餘額(也就是該礦工手裡有多少幣)代替幣齡。

2023年9月,乙個名為bcnext的使用者在bitcointalk論壇發起乙個帖子,宣布將發行一種全新的純pos幣種,後來取名為nextcoin,簡稱nxt,即未來幣。

2023年8月,bm的位元股(bitshares)專案啟動,並帶來了一種新的共識機制:delegated proof-of-stake(dpos),即股份授權股權證明。它有點像現代國家的代議制,但不是每個選區分配了多少代表席位,而是將持有一定數量代幣的節點作為候選人,再由所有節點投票競選,取得票數前101的當選為代表,由這些代表負責產生區塊。代表們輪流產生區塊,收益(交易手續費)平分。如果有代表不老實生產區塊,很容易被其他代表和股東發現,他將立即被踢出「董事會」,空缺位置由票數排名102的代表自動填補。後來,bm的另乙個專案eos也採用了dpos的共識機制,不過將原來的101個記賬節點減少到了21個。

從pow到pos再到dpos,可以說是公鏈共識機制發展的一條主線。這三種共識機制各有優劣,比如pow具有完整的數學證明,理論上來說最安全、實現相對簡單,但它在能源消耗、出塊時間、交易容量都有很大不足,而pos則有安全風險更大、選舉節點時候網路流量壓力很大以及「富者愈富,貧者愈貧」等問題,而dpos縮小了選舉節點數量減少了網路壓力,但其去中心化程度值得懷疑。

從09年初開始算起,區塊鏈與數字貨幣的第乙個十年馬上就要到來,在這個過程中,共識機制扮演的角色,幾乎可以說是區塊鏈的靈魂。而從上面粗略的整理來看,從事著區塊鏈行業的人具有著無窮的創造力。共識機制已經出現了多次迭代,而其未來會走到哪一步,現在根本沒有定論。

Web 發展的十年

當時您在 級別 初級 chris walden 內容採集編輯,developerworks,ibm 2009 年 11 月 23 日 developerworks 在十年之間貢獻了許多資料。回首技術歷程,我們將看到哪些方面發生了變化。我們將回顧多彩的過去以及當時流行文化中發生的變化,讓您全面了解這段...

老司機找bug的十年心路歷程

一.碼畜 靠編譯器幫自己查語法錯誤 消滅筆誤 編寫適合程式設計師的鍵盤練習 if 常量 變數或表示式 使用goto接力超長的if,switch 連續的if還是if elseif 多個條件的組合 精心的排版 多重括號的匹配 條件編譯 各種const 不要糾結各種常量了,這個世界上唯一不變的就是變化。用...

老司機找bug的十年心路歷程

一.碼畜 靠編譯器幫自己查語法錯誤 消滅筆誤 編寫適合程式設計師的鍵盤練習 if 常量 變數或表示式 使用goto接力超長的if,switch 連續的if還是if elseif 多個條件的組合 精心的排版 多重括號的匹配 條件編譯 各種const 不要糾結各種常量了,這個世界上唯一不變的就是變化。用...