共識算法是所有區塊鏈/DAG技術的基礎,他們也是區塊鏈/D***最重要的組成部分。沒有它們(共識算法機制),我們就只會有個無法改變的數據庫而已。下面是主要共識算法的列表,而且我們可以評估它們的好處和壞處。
1.工作量證明 (PoW)
好處:
自從2009年開始,就可以進行了測試,到如今仍然很穩定。
壞處:
速度很慢。
消耗大量的能源,并且對環境不好。
容易受到規模經濟的影響。
類型:競爭性共識算法。
解釋:這是第一個共識算法機制(中本聰在他的文章中提出)來創建分布式無需信任的共識,并且解決雙花問題。工作量證明不是一個新的想法,但是中本聰將這個和其他的概念- 加密簽名,默克爾樹以及P2P網絡結合起來- 從而形成了分布式共識系統,其中數字貨幣是首個基礎應用,這充滿創新。
區塊鏈中的參與者(礦工)必須要解決復雜但是無用的計算問題,從而將轉賬區塊加入到區塊鏈上。
基本上,這是來保證礦工花費成本/資源(礦機)來完成這項工作,從而表示他們不會欺騙區塊鏈系統,并且對系統造成傷害,會導致他們損失自己的投資;因此傷害他們自己。
這個問題的難度會隨著時間改變,這是為了保證恒定的區塊生成時間。有時候會發生一種情況,其中有超過一個礦工在同時解決這個問題。在那種情況下,礦工會選擇其中一個鏈,而且最長的鏈會是獲勝者。所以假設大多數礦工在挖一個鏈,那么這條鏈就會發展最快,并且是最值得信任的。因此只要50%的礦工是誠實的,那么比特幣就是安全的。
2.權益證明
好處:
能源利用效率高
攻擊成本更高
不容易受到經濟規模的影響
壞處:
無利害關系攻擊
類型:競爭性共識算法。
解釋:權益證明是工作量證明的替代方案,為了解決其中的問題。和挖礦不同,你需要在系統中持有權益(代幣)。所以,如果你只有10%的代幣,那么你挖出下個區塊的概率為10%。
挖礦需要很多的算力來解決不同的加密計算,從而解鎖這些加密難題。算力意味著,工作量算法需要大量的電力需求。在2015年,1個比特幣大約需要1.57個美國家庭每天的耗電量。所以,為了節省能源,權益證明算法誕生了。
在權益證明中,一美金是一美金。例如,假設有10,000個礦工,每個人花費1美金/分鐘,就會比礦池花費10,000美金/分鐘擁有更少的算力。但是在權益證明中,如果你不能一次使用完全。這里的一美金還是一美金。因此,這不會受到經濟規模的影響。
并且,攻擊權益證明系統比攻擊工作量證明系統更加昂貴。對權益證明進行51%攻擊的代價,是要讓所有ASIC礦機全部倒下。
這意味著,每次你攻擊權益證明系統,都會失去權益抵押,但是在工作量證明,如果你攻擊系統,但是你不會失去挖礦設備或者代幣;你只不過是讓攻擊很難實施。
但是權益證明會出現個問題,就是無利害關系攻擊問題,其中區塊生成者通過向多個區塊鏈進行投票,就不會損失任何東西,從而防止達成共識。
不像工作量證明系統(你需要做大量計算來擴展一個鏈),同時為挖幾個鏈也只有很少的成本。很多項目嘗試通過不同方案來解決這個問題。例如,上面所說,其中一個解決方案就懲罰做壞事的礦工。
3.委托工作量證明(DPOW)
好處:
節能環保
提高安全性
可以通過非直接地給比特幣(或者任何其他安全的鏈)提供安全性,這是通過為最貴
壞處:
只有使用工作量證明或者權益證明
在公證員激活模式下,不同節點的哈希算力必須要標定,不然哈希算力之間的區別會爆炸(以下會有更多的解釋)
類型:合作型共識
解釋:委托工作量證明是混合型共識方法,可以讓一個區塊鏈能夠利用第二個區塊鏈通過哈希算力提供的安全性。這是通過很多能夠將數據從第一個區塊鏈加到第二個區塊鏈的節點來完成的,這通常會要求兩個區塊鏈進行進行妥協,從而削弱第一個區塊鏈的安全性。
基于委托工作量證明算法的區塊鏈可以使用工作量證明或者權益證明方法來實現功能;并且它能夠將自身依附于任何工作量證明的區塊鏈。但是,比特幣的哈希力現在已經為通過委托工作量證明進行安全保護的區塊鏈,提供了最高級別的安全保護。下面的圖例,顯示了主要區塊鏈和它所依附的工作量證明區塊鏈之間的關系:
在委托工作量證明系統中,有兩類節點:公證人節點和普通節點。64個公證人節點是通過委托工作量證明的區塊鏈權益持有者選出的,然后將確認的區塊從委托工作量證明區塊鏈添加到依附的工作量證明區塊鏈。一旦區塊完成,它的哈希就會通過33個公證人節點簽名,然后添加到比特幣轉賬,從而在比特幣區塊鏈上記錄下委托工作量證明的區塊哈希,這也是被網絡中大多數公證人節點所公正的。
為了防止礦工在公證人節點之間,這會降低網絡的效率,所以設計了一種以兩種模式運行的輪換挖礦方法。“無公證人”模式可以讓整個網絡節點來進行挖礦,和普通的工作量證明類似;但是,在公證人活躍模式下,網絡公證人就會在降低困難度的情況下進行挖礦。在這個框架中,每個公證人都可以目前的困難度去挖礦,但是其他公證人節點必須要按照10倍的難度去挖礦,而且所有的普通節點會按照100倍的困難度去挖礦。
但是這會造成些問題。這會導致公證人礦工和普通礦工哈希算力的巨大差別:
委托工作量證明系統的設計,是讓區塊鏈可以繼續在沒有公證人節點的情況下進行運作。在這種情況下,委托工作量證明區塊鏈可以根據初始的共識方法運行,但是,它就不會擁有依附區塊鏈的安全性。
委托工作量證明,會讓任何使用這種共識的區塊鏈獲得更高的安全性以及更低的能源消耗。而且,委托工作量證明可以通過間接地為主流提供比特幣的安全性,并且還需要支付比特幣裝置。最后,公證人節點和普通節點的功能,可以確保初始的共識機制繼續在這類情況下運行,哪怕公證人節點失去作用。這個相互依靠性,為其他網絡提供了激勵,來支持比特幣網絡的維護,而且還不用讓整個網絡完全依附于直接的功能。
4.委托權益證明(DPOS)
好處:
能源效率高,節能。
速度很快。
壞處:
更加中心化
擁有高代幣權益的人,可以投票讓他們自己成為驗證者。
類型:合作型共識算法
解釋:在DPoS算法中,權益持有者可以在系統中選擇領導者(見證者),他們可以代替別人進行投票。這就會比一般的權益證明算法要更快。
例如,在EOS中,21個見證者會選舉出來,然后一些節點(潛在的見證者)會作為候選人,然后如果某個見證者節點掉線或者有任何欺詐行為,那么就會被立刻替換。見證者生成區塊,然后會獲得回報。這些費用也是由權益持有者決定的。
通常,所有產生區塊的節點是輪換的。這就會防止有節點來發布很多的區塊,防止他發出雙花攻擊。如果見證者沒有在時間限制內產生區塊,那么這部分時間段就會跳過,然后下個見證者就會生產下個區塊。如果有見證者連續錯過區塊或者發布無效轉賬,那么權益持有者就可以投票讓他出局,然后找更好的見證者來替代他。
在DPoS中,礦工會合作來產生區塊,而不是像工作量證明或者權益證明。通過部分中心化來創建區塊,DPoS算法可以比其他共識算法的速度快幾個數量級。
5.權威證明
好處:
節能省電
速度快
壞處:
比較中心化。可以在公鏈使用,但是通常在私有鏈和許可區塊鏈使用。
類型:合作型共識
解釋:在基于權威證明的網絡中,轉賬和區塊都是通過允許的賬戶來驗證的,他們被稱為驗證者。驗證者運行軟件,可以讓他們將轉賬放入區塊中。這個過程是自動化的,而且不需要驗證者去一直盯著電腦。但是,它需要維護計算機(權威的節點)不被攻擊。
驗證者必須要能夠滿足的三個主要條件是:
1.身份必須是正式在鏈上認證,同時也可以在公開的域名中進行信息的交叉檢測。
2.這個資格很難獲得,并且很難正確地去驗證區塊。(潛在的驗證者需要獲得公開認證)
3.在檢車過程中,必須要有完整的統一性,從而建立權威。
通過權威驗證的個人,可以有權來成為驗證者,所以對于驗證者來說,系統會有激勵。通過將名譽和身份連接,驗證者就會被激勵去處理轉賬流程,因為他們不希望獲得負面的影響,因為這會失去很難獲得的驗證者身份。
6.權重證明
好處:
節能省電。
很高的定制化和擴容性
壞處:
激勵制度很困難
類型:競爭類共識
解釋:權重證明的主要想法是。因為在權益證明系統中,你持有代幣的比例代表你發現下個區塊的概率,但是在權重證明系統中,其他相關的權重也會使用。有些應用是聲望證明和空間證明。
7.聲望證明
好處
對于私有和限制性區塊鏈網絡很好
壞處:
只能在私有鏈和許可區塊鏈系統中使用。
類型:合作類型共識
解釋:聲望證明算法模型取決于參與者的聲望,來保持網絡的安全。參與者(區塊簽署者)必須要有足夠重要的聲望,如果他們想要欺騙系統,就會獲得非常嚴重的財務和品牌后果。這是個相對的概念,因為大多數企業如果在被抓到欺騙后,都會覺得很難過,但是更大的企業會失去更多,因此會比小公司更可能獲選。
一旦公司證明了自己的聲望,并且通過了驗證,他們或許會通過網絡的選舉,成為合格的節點,就像權威證明中那樣,只有認證過的節點才有資格去簽署和驗證區塊。
8.消逝時間證明
好處:
參與者成本低。因此更多人可以很容易地參與,從而去中心化。
對于參與者來說,很容易去驗證領導者是合法選出的。
控制領導者選舉流程是和獲得的利益成正比的。
壞處:
盡管很便宜,你需要使用特定的硬件。因此不能大規模采用。
不適合公鏈。
類型:競爭性共識
解釋:消逝時間證明算法通常使用在許可區塊鏈網絡,從而可以決定挖礦權或者區塊獲勝者。許可區塊鏈網絡是需要特定參與者認證,才能加入的區塊鏈。基于這種系統的原則,每單個節點就會成為勝者,消逝時間證明機制是基于在最大可能的網絡參與者中,傳播分享公平獲勝的機會。
消逝時間證明算法的流程如下。網絡中每個參與節點都要求等到隨機的時間段,并且第一個完成指定等待時間的人就會贏得新區塊。每個節點都會有隨機的等待時間,然后進行休眠。第一個蘇醒的,也就是有最短的等待時間,就可以產生新的區塊,并且在整個網絡中廣播必要的信息。同樣的過程會重復為發現下個區塊。
消逝時間證明網絡公示機制需要確保兩個重要的因素。首先,參與的節點選擇的時間是隨機的,不會因為想贏,節點就可以選擇更短的時間,其次是獲勝者必須要完成等待時間。
消逝時間證明的概念是在2016年早期由英特爾提出,我們都知道它是著名的芯片生產制造巨頭。它提供了高科技工具來解決了計算問題“隨機領導者選擇。”
這個機制可以讓參與者在受到保護的環境下,執行可信的代碼,而且可以保證下面兩個需求,對于所有參與節點來說,隨機選擇等待時間,獲勝的參與者會完成等待時間。
在安全的環境下運行可信節點的機制,也會考慮到網絡中很多其他的需求。它保證了可信代碼確實是在可信的環境下運行,而且不會被任何外部人員修改。它也保證了,結果是可被外部參與者和個體所驗證的,因此強調了網絡共識的透明度。
消逝時間證明控制了共識過程的成本,并且保證靈活,從而在整個過程中,價值和成本成正比,這是數字貨幣經濟能夠持續下去的關鍵需求。
9.能力證明,即空間證明
好處:
類似工作量證明,但是使用空間而不是算力。因此更加環保。
可以刪除惡意軟件,通過決定是否處理器的L1內存是否是空的(例如,有足夠的空間來評估,不會錯過任何的內存)或者包含一個可以防止被驅逐。
可以用作防止欺詐的手段,并且防止服務器攻擊。
壞處:
激勵制度是個問題。
類型:合作共識
解釋:空間證明,也被稱為能力證明,是展示有人對于某個服務有合法的興趣(例如發送郵件),這是通過部署一定量的記憶存儲或者磁盤空間,來解決服務提供者給出的問題。
空間證明和工作量證明很類似,除了前者不是用算力,而是存儲能力。空間證明和記憶容量和可恢復性證明相關,但是其中也有不同。
空間證明是證明者發給驗證者的一部分數據,來證明這個驗證者收到了部分空間。
空間證明看起來更加公平,由于存儲的目標和更低的能源損耗,看起來是更好的解決方案。
10.歷史證明
解釋:這個共識的想法是,和相信轉賬時間戳不同,你可以證明轉賬會在這個事件的前后某個時間發生。
當你在紐約時間記錄下的時候,你可以給出證明你的照片是在這個報紙發布之后才記錄,或者你有些方式來影響紐約時報發布信息。通過歷史證明,你可以創建歷史記錄,從而證明這件事發生在每個特定的時刻。
歷史證明會有高頻的驗證延遲功能。驗證性延遲功能需要特定的步驟來評估,然后產品特別的輸出,這個可以被有效和公開的驗證。
這個特定的方式使用了連續的預圖像抗性哈希,可以和之前的輸出作為下個輸入,然后連續運行。周期性地,計數和目前的輸出是被記錄的。
對于SHA256哈希的功能,這個過程是不可能和使用212?強制攻擊同時進行的。
然后我們可以確認,在生成過程中,真正的時間已經流失了。并且這個記錄順序和真實時間相同。
11.權益流通證明
解釋:權益流通證明可以作為工作量證明和權益證明的替代解決方案,來讓P2P網絡得到安全保證。權益流通證明的設計是用來鼓勵擁有權和行為。
12. 重要性證明
好處,在評估權益的時候,比權益證明好
解釋:這個共識算法不只取決于代幣的數量,還有生產系統行為應得到報酬的可能性。抵押區塊的機會是由多個因素組成的,包括惡名(由不同的框架來控制),余額,還有轉賬數量。這個被稱為重要性計算。這提供了一個更全面的“有用”系統成員的圖像。
13.燃燒證明
解釋:通過燃燒證明,而不是將錢投入昂貴的計算設備,你可以通過將代幣發入不可逆的地址,從而燃燒它們。通過將代幣發送到從未出現過的土地,你可以在一個基于隨機選擇過程的系統上獲得終身的特權。
取決于燃燒證明如何實施,礦工也許會然后原生代幣或者替代鏈的代幣,例如比特幣。你燃燒的代幣越多,那么你就有更高的可能性,去挖出下個區塊。
隨著時間的發展,你在系統中的權益就會延遲,所以最終你會想要燃燒更多代幣去增加你中獎的概念。(這里是指比特幣挖礦的過程,你必須要連續地去投入設備來維持哈希力。)
雖然燃燒證明是個很有趣的解決方案,但是這個協議仍然浪費了很多資源。還有個問題就是,挖礦算力會很容易地偏向于那些想要燃燒更多代幣的人。
14.身份證明
解釋:身份證明(PoI)是一個加密證據(一部分數據),它會說明任何知道私鑰的用戶,就會和一個認證的身份相比較,然后和特定的轉賬連接。同個群體的每個人可以創建PoF(只有一個區塊的數據),然后將它展示給任何人,例如處理節點。
15.行動證明
解釋:為了避免惡性通貨膨脹,比特幣只有2100個。這也就意味著,在某些時刻,比特幣區塊獎勵會結束,而且比特幣礦工只會收到轉賬費。
有人會說,這可能會因為公地悲劇導致安全問題,人們會總是按照自己的興趣來做事,從而孤立了整個系統。所以,行動證明創建了可以代替比特幣的另一個激勵方案。行動證明是一個混合解決方案,這是由工作量證明和權益證明結合起來的。
在行動證明中,挖礦會按照工作量證明的形式開始,同時礦工也在賽跑去解決難題。取決于實施情況,區塊挖礦不會包含任何轉賬,所以獲勝的區塊只會包含區塊頭部,并且礦工的獎勵地址。
在這個時候,系統會轉移到權益證明。基于區塊頭部的信息,隨機的驗證者會簽名新的區塊。擁有更多的代幣,他就能被選擇為區塊生成者。一旦所有驗證者簽名,模板就成為一個完整的塊。
如果選擇的驗證者不能去完成區塊,那么下個獲勝的區塊就會被選擇,新的驗證者會被選擇,以此類推,直到區塊獲得了正確數量的簽名。費用會在礦工和簽署區塊的驗證者之間分離。
行動證明的關鍵是和工作量證明(挖區塊需要很多的能源)和權益證明(沒有什么可以阻止驗證者進行雙重簽名一樣的。
16.存在證明
解釋:存在證明是在線服務,能夠通過比特幣時間戳轉賬,從而驗證計算機文件的存在。
案例:
不用揭露真實內容,就可以獲得數字簽名協議。不用揭露真實數據,就可以展示數據所有權
文件時間戳
證明所有權
檢測文件的完整性
17.可回收證明
解釋:可回收證明(POR)是一個通過文件系統到客戶端的證明形式,目標文件F是完整的,在這種情況下,客戶端能夠完全覆蓋它。因為可回收證明(POR)會比F本身的傳輸更加低的通信難度,對于高信任的遠程存儲系統,他們是更具吸引的創建區塊。它可以真正作為共識算法,為云計算系統有用。
18. 拜占庭容錯算法
好處:快速,擴容性好
壞處:通常是為私有鏈,以及許可類區塊鏈使用
解釋:拜占庭將軍問題是現在分布式計算,都面臨的問題。這個問題是幾個拜占庭將軍,他們在包圍一個城市,但是他們必須決定是否要攻擊城市。如果有的將軍在沒有和別人一起進攻,那么他們的策略就是失敗。這些將軍通常是各自分開的,并且需要傳遞信息來進行溝通。
實用型拜占庭容錯(PBFT):這個問題的首個解決方案,就是實用型拜占庭容錯(PBFT)。目前被用在超級賬本,會有小于20個提取選擇的PBFT有效運行。好處:很高的吞吐量。壞處:中心化
聯邦拜占庭協議:FBA是拜占庭將軍的另一種經典的解決方案。主要的方法,是讓每個拜占庭將近都負責他們自己的鏈,從而完成信任。它有難以置信的吞吐量,很低的轉賬費用以及網絡穩定性。
19.委托拜占庭協議(dBFT)
好處:快速且擴容性好。
壞處:每個人都在為成為根鏈而競爭。可以會有幾個根鏈出現。
解釋:dBFT被稱為委托拜占庭協議,這種拜占庭容錯的共識機制能夠讓通過代理投票來讓大規模的人參與到共識。持有代幣的人可以通過投票,選擇他們想支持的人。這個選擇的群體會通過拜占庭算法,達成共識并且挖出新的區塊。
委托拜占庭協議(dBFT)提供拜占庭容錯f = [(n-1) / 3],這個系統由n個共識節點組成。委托拜占庭協議(dBFT)有很好的最終結果,意味著一旦確認了,區塊就不能分叉,并且轉賬也不可以回滾。
20. DAG(有向無環圖)
好處:
由于非線性結構,所以有高度擴容性
快速
節能省電
即時獲得最終結果
壞處:
智能合約的部署只可以通過預言機獲得
解釋:DAG或者叫有向無環圖,是區塊鏈更加寬泛的形式。他們由于特殊的造型,從而獲得很高的擴容性而出名。
基本上來說,任何的區塊鏈系統中,都是線性結構,一個個區塊組成了鏈。這會讓區塊鏈速度很慢,因為區塊們不能和鏈平行添加。但是在DAG區塊/轉賬的案例中,這些是可以平行添加的,每個區塊/轉賬都會確認之前區塊的數量。這就讓DAG可以無限地擴容。
評論
查看更多