中本聰當年之所以設(shè)計挖礦,其原意是希望每一個比特幣錢包的擁有者都能夠參
與整個系統(tǒng)的決策機制,如果有任何人試圖對系統(tǒng)作惡,或者某一部分節(jié)點收到
損失,都可以讓其他節(jié)點迅速補上,并且只要有51%的節(jié)點(算力)投票就可以選
擇對系統(tǒng)發(fā)展更有利的方向。比特幣在Block的生成過程中使用了POW機制,一個?
符合要求的Block Hash由N個前導零構(gòu)成,零的個數(shù)取決于網(wǎng)絡(luò)的難度值。要得到
合理的Block Hash需要經(jīng)過大量嘗試計算,計算時間取決于機器的哈希運算速
度。當某個節(jié)點提供出一個合理的Block Hash值,說明該節(jié)點確實經(jīng)過了大量的
嘗試計算,當然,并不能得出計算次數(shù)的絕對值,因為尋找合理hash是一個概率
事件。當節(jié)點擁有占全網(wǎng)n%的算力時,該節(jié)點即有n/100的概率找到Block Hash。
隨著參與挖礦的節(jié)點增加, 在 PoW 協(xié)議下維持生態(tài)健康發(fā)展的成本將會持續(xù)升
高
POS:也稱股權(quán)證明,類似于財產(chǎn)儲存在銀行,這種模式會根據(jù)你持有數(shù)字貨幣的
量和時間,分配給你相應的利息。
簡單來說,就是一個根據(jù)你持有貨幣的量和時間,給你發(fā)利息的一個制度,在股
權(quán)證明POS模式下,有一個名詞叫幣齡,每個幣每天產(chǎn)生1幣齡,比如你持有100個
幣,總共持有了30天,那么,此時你的幣齡就為3000,這個時候,如果你發(fā)現(xiàn)了
一個POS區(qū)塊,你的幣齡就會被清空為0。你每被清空365幣齡,你將會從區(qū)塊中獲
得0.05個幣的利息(假定利息可理解為年利率5%),那么在這個案例中,利息 =
3000 * 5% / 365 = 0.41個幣,這下就很有意思了,持幣有利息。這種算法解決
了 PoW 的弊端, 但放大了資本對記賬權(quán)概率分配的影響, 導致大資本更容易占
據(jù)生態(tài)的話語權(quán), 形成寡頭壟斷,喪失了記賬的公平性。
比特股的DPoS機制,中文名叫做股份授權(quán)證明機制(又稱受托人機制),它的原
理是讓每一個持有比特股的人進行投票,由此產(chǎn)生101位代表 , 我們可以將其理
解為101個超級節(jié)點或者礦池,而這101個超級節(jié)點彼此的權(quán)利是完全相等的。從
某種角度來看,DPOS有點像是議會制度或人民代表大會制度。如果代表不能履行
他們的職責(當輪到他們時,沒能生成區(qū)塊),他們會被除名,網(wǎng)絡(luò)會選出新的
超級節(jié)點來取代他們。DPOS的出現(xiàn)最主要還是因為礦機的產(chǎn)生,大量的算力在不
了解也不關(guān)心比特幣的人身上,類似演唱會的黃牛,大量囤票而絲毫不關(guān)心演唱
會的內(nèi)容。作為 PoS 的改進, 由社區(qū)通過選舉產(chǎn)生記賬者。記賬者數(shù)量的減
少, 可以讓整個共識算法運行速度更快; 記賬者得到社區(qū)的承認, 讓整個記賬
過程更民主化,更公平。
PBFT是一種狀態(tài)機副本復制算法,即服務(wù)作為狀態(tài)機進行建模,狀態(tài)機在分布式
系統(tǒng)的不同節(jié)點進行副本復制。每個狀態(tài)機的副本都保存了服務(wù)的狀態(tài),同時也
實現(xiàn)了服務(wù)的操作。將所有的副本組成的集合使用大寫字母R表示,使用0到|R|-1
的整數(shù)表示每一個副本。為了描述方便,假設(shè)|R|=3f+1,這里f是有可能失效的副
本的最大個數(shù)。盡管可以存在多于3f+1個副本,但是額外的副本除了降低性能之
外不能提高可靠性。
這是一種基于消息傳遞的一致性算法,算法經(jīng)過三個階段達成一致性,這些階段
可能因為失敗而重復進行。
假設(shè)節(jié)點總數(shù)為3f+1,f為拜贊庭錯誤節(jié)點:
1、當節(jié)點發(fā)現(xiàn)leader作惡時,通過算法選舉其他的replica為leader。
2、leader通過pre-prepare 消息把它選擇的 value廣播給其他replica節(jié)點,其
他的replica節(jié)點如果接受則發(fā)送 prepare,如果失敗則不發(fā)送。
3、一旦2f個節(jié)點接受prepare消息,則節(jié)點發(fā)送commit消息。
4、當2f+1個節(jié)點接受commit消息后,代表該value值被確定
如下圖表示了4個節(jié)點,0為leader,同時節(jié)點3為fault節(jié)點,該節(jié)點不響應和發(fā)
出任何消息。最終節(jié)點狀態(tài)達到commited時,表示該輪共識成功達成。
以上主要是目前主流的共識算法。
從時間上來看,這個順序也是按該共識算法從誕生到熱門的順序來定。
對于POW,直接讓比特幣成為了現(xiàn)實,并投入使用。而POS的存在主要是從經(jīng)濟學
上的考慮和創(chuàng)新。而最終由于專業(yè)礦工和礦機的存在,讓社區(qū)對這個標榜去中心
化的算法有了實質(zhì)性的中心化擔憂,即傳聞60%~70%的算力集中在中國。因此后
來又出現(xiàn)DPOS,這種不需要消耗太多額外的算力來進行礦池產(chǎn)出物的分配權(quán)益方
式。但要說能起到替代作用,DPOS來單獨替代POW,POS或者POW+POS也不太可
能,畢竟存在即合理。每種算法都在特定的時間段中有各自的考慮和意義,無論
是技術(shù)上,還是業(yè)務(wù)上。
如果跳出技術(shù)者的角度,還會跳出更多的共識算法,如PoP共識算法,既能確保對
設(shè)備的公平性, 又擁有社區(qū)的共識。
PoP 將 PoI 和DPoS 的思想結(jié)合。在 PoP 共識機制中, 系統(tǒng)將首先選取生態(tài)中
廣泛的具有代表性的賬戶作為候選賬戶。 選擇候選賬戶時, 系統(tǒng)同時考慮多種
因素: 如賬戶的地域分布;賬戶的業(yè)務(wù)類型; 和此賬戶關(guān)聯(lián)的設(shè)備貢獻度。 候
選賬戶是具有廣泛的代表性,這個方法非常接近于人民代表大會制度, 每個人民
代表具有相同的投票權(quán)力,而他們又是各自的省份和各自行業(yè)中的佼佼者。