共識演算法(POW,POS,DPOS,PBFT)

2021-09-01 00:14:34 字數 1591 閱讀 1166

位元幣在block的生成過程中使用了pow機制,乙個符合要求的block hash由n個前導零構成,零的個數取決於網路的難度值。要得到合理的block hash需要經過大量嘗試計算,計算時間取決於機器的雜湊運算速度。當某個節點提供出乙個合理的block hash值,說明該節點確實經過了大量的嘗試計算,當然,並不能得出計算次數的絕對值,因為尋找合理hash是乙個概率事件。當節點擁有佔全網n%的算力時,該節點即有n/100的概率找到block hash。

pos:也稱股權證明,類似於財產儲存在銀行,這種模式會根據你持有數字貨幣的量和時間,分配給你相應的利息。

簡單來說,就是乙個根據你持有貨幣的量和時間,給你發利息的乙個制度,在股權證明pos模式下,有乙個名詞叫幣齡,每個幣每天產生1幣齡,比如你持有100個幣,總共持有了30天,那麼,此時你的幣齡就為3000,這個時候,如果你發現了乙個pos區塊,你的幣齡就會被清空為0。你每被清空365幣齡,你將會從區塊中獲得0.05個幣的利息(假定利息可理解為年利率5%),那麼在這個案例中,利息 = 3000 * 5% / 365 = 0.41個幣,這下就很有意思了,持幣有利息。

位元股的dpos機制,中文名叫做股份授權證明機制(又稱受託人機制),它的原理是讓每乙個持有位元股的人進行投票,由此產生101位代表 , 我們可以將其理解為101個超級節點或者礦池,而這101個超級節點彼此的權利是完全相等的。從某種角度來看,dpos有點像是議會制度或人民代表大會制度。如果代表不能履行他們的職責(當輪到他們時,沒能生成區塊),他們會被除名,網路會選出新的超級節點來取代他們。dpos的出現最主要還是因為礦機的產生,大量的算力在不了解也不關心位元幣的人身上,類似演唱會的黃牛,大量囤票而絲毫不關心演唱會的內容。

pbft是一種狀態機副本複製演算法,即服務作為狀態機進行建模,狀態機在分布式系統的不同節點進行副本複製。每個狀態機的副本都儲存了服務的狀態,同時也實現了服務的操作。將所有的副本組成的集合使用大寫字母r表示,使用0到|r|-1的整數表示每乙個副本。為了描述方便,假設|r|=3f+1,這裡f是有可能失效的副本的最大個數。儘管可以存在多於3f+1個副本,但是額外的副本除了降低效能之外不能提高可靠性。

以上主要是目前主流的共識演算法。

從時間上來看,這個順序也是按該共識演算法從誕生到熱門的順序來定。

對於pow,直接讓位元幣成為了現實,並投入使用。而pos的存在主要是從經濟學上的考慮和創新。而最終由於專業礦工和礦機的存在,讓社群對這個標榜去中心化的演算法有了實質性的中心化擔憂,即傳聞60%~70%的算力集中在中國。因此後來又出現dpos,這種不需要消耗太多額外的算力來進行礦池產出物的分配權益方式。但要說能起到替代作用,dpos來單獨替代pow,pos或者pow+pos也不太可能,畢竟存在即合理。每種演算法都在特定的時間段中有各自的考慮和意義,無論是技術上,還是業務上。

如果跳出技術者的角度,更多結合政治與經濟的思考方式在裡面,或許還會跳出更多的共識演算法,如結合類似ppp概念的共識方式,不僅能達到對惡意者的懲罰性質,還能達到最高效節約算力的目的也說不定。

至於說演算法的選擇,這裡引用季總的這一段話作為結束:

一言以蔽之,共識最好的設計是模組化,例如notary,共識演算法的選擇與應用場景高度相關,可信環境使用paxos 或者raft,帶許可的聯盟可使用pbft ,非許可鏈可以是pow,pos,ripple共識等,根據對手方信任度分級,自由選擇共識機制,這樣才是真的最優。

4 2 共識演算法

共識 consensus 在很多時候會與一致性 consistency 術語放在一起討論。嚴謹地講,兩者的含義並不完全相同。一致性往往指分布式系統中多個副本對外呈現的資料的狀態。如前面提到的順序一致性 線性一致性,描述了多個節點對資料狀 態的維護能力。而共識則描述了分布式系統中多個節點之間,彼此對某...

共識演算法 POW POS

pow pos 在區塊鏈系統中,共識演算法是區塊鏈保持資料安全 不可篡改 透明性等特色的關鍵技術。共識機制是區塊鏈的靈魂,是區塊鏈建立信任的基礎。乙個區塊鏈專案選擇使用何種共識機制,決定了這個專案是否能建立起完善的激勵機制,從而起到鼓勵更多節點參與到專案中,進而增加系統的去中心化程度。工作量證明機制...

共識演算法 BFT

bft byzantine fault tolerance 稱為拜占庭容錯。拜占庭容錯技術是一類分布式計算領域的容錯技術。拜占庭假設是對現實世界的模型化,由於硬體錯誤 網路擁塞或中斷以及遭到惡意攻擊等原因,計算機和網路可能出現不可預料的行為。拜占庭容錯技術被設計用來處理這些異常行為,並滿足所要解決的...