區(qū)塊鏈的共識(shí)算法是什么共有哪些類型
談起區(qū)塊鏈里的熱門(mén)詞,一定離不開(kāi)偉大的共識(shí)算法,它是構(gòu)筑區(qū)塊鏈信任特性的基礎(chǔ)。到底有哪些共識(shí)算法?今天來(lái)了解一下:
共識(shí)算法是什么?
共識(shí)機(jī)制就是用來(lái)解決分布式系統(tǒng)的一致性問(wèn)題,其核心為在某個(gè)協(xié)議(共識(shí)算法)保障下,在有限的時(shí)間內(nèi),使得指定操作在分布式網(wǎng)絡(luò)中是一致的、被承認(rèn)的、不可篡改的。在區(qū)塊鏈系統(tǒng)中,特定的共識(shí)算法用于解決去中心化多方互信的問(wèn)題。
其實(shí)簡(jiǎn)單理解就是達(dá)成一致?,F(xiàn)實(shí)生活中很多場(chǎng)景是需要達(dá)成一致的。區(qū)塊鏈系統(tǒng)中,每個(gè)節(jié)點(diǎn)必須讓自己的賬本和其他節(jié)點(diǎn)的賬本保持一致。而中心化世界里,這幾乎不可能,因?yàn)橛幸粋€(gè)中心服務(wù)器存在。
共識(shí)算法有幾類?
在區(qū)塊鏈系統(tǒng)中,共識(shí)算法則通過(guò)經(jīng)濟(jì)利益的博弈,來(lái)鼓勵(lì)對(duì)系統(tǒng)的貢獻(xiàn)及提高不可信節(jié)點(diǎn)的作惡成本。常用算法如PoW、PoS、DPoS等,不同的算法,其實(shí)就是不同的游戲玩法。
基于挖礦方式分類:
PoW(Proof of Work,工作量證明)—主要代表:比特幣所謂的比特幣挖礦就是通過(guò)計(jì)算符合某一個(gè)比特幣區(qū)塊頭的哈希散列值爭(zhēng)奪記賬權(quán)。這個(gè)過(guò)程需要通過(guò)大量的計(jì)算實(shí)現(xiàn),簡(jiǎn)單理解就是你進(jìn)行的計(jì)算量大(工作量大),你就有大概率獲得記賬權(quán)。包括:Bitcoin,Ethereum,Litecoin,Zcash。優(yōu)點(diǎn):隨機(jī)性、公平性好;缺點(diǎn):耗能。
PoS(Proof of Stake,權(quán)益證明)—主要代表:點(diǎn)點(diǎn)幣簡(jiǎn)單理解就是根據(jù)資產(chǎn)的多寡分配獲取記賬權(quán)的概率,類似股份公司中的股東。包括:Ethereum-PoS,Tendermint,Algorand,EOS DPoS,DFINITY,VBFT。優(yōu)點(diǎn):攻擊更昂貴,性能效率高;缺點(diǎn):權(quán)利集中。
DPoS(Delegate Proof of Stake,委托權(quán)益證明)—主要代表:EOSPoS的改進(jìn),通過(guò)社區(qū)選舉產(chǎn)生記賬者,類似股份公司中的董事會(huì)。如:Steemit, EOS, bitshare優(yōu)點(diǎn):廉價(jià)的交易,可伸縮的;缺點(diǎn):目前部分集中。
為適應(yīng)不同的應(yīng)用場(chǎng)景,區(qū)塊鏈共識(shí)機(jī)制的研究集中于優(yōu)化系統(tǒng)的可擴(kuò)展性、運(yùn)行效率、容錯(cuò)性等方面。在新興的區(qū)塊鏈方案中,會(huì)將各種共識(shí)機(jī)制結(jié)合使用,例如在分層/分片方案中,最上層的主鏈?zhǔn)褂肞oW機(jī)制以確保全局共識(shí)的有效性并用來(lái)對(duì)抗女巫攻擊,而在相對(duì)小范圍的分片中,使用PoS或者BFT算法來(lái)實(shí)現(xiàn)更高效率的共識(shí)。典型的案例包括未來(lái)引入基于校驗(yàn)器管理和約分片方案的以太坊以及Zilliqa等。盡管這些方案尚未落地驗(yàn)證,但他們代表了未來(lái)區(qū)塊鏈設(shè)計(jì)的趨勢(shì)。
實(shí)際上,共識(shí)算法還有很多種,如用于解決可信節(jié)點(diǎn)間的網(wǎng)絡(luò)通信故障問(wèn)題,常用算法包括Paxos、Raft、ZAB等,常見(jiàn)于大數(shù)據(jù)分布式系統(tǒng),這些算法不具備對(duì)不可信節(jié)點(diǎn)的容錯(cuò)性。這類算法也包括用于解決拜占庭將軍問(wèn)題的拜占庭容錯(cuò)算法(BFT)等,該算法允許有一定比例的不可信節(jié)點(diǎn)。
共識(shí)算法發(fā)展歷程:
從歷史上看,共識(shí)算法起源于多處理器計(jì)算的研究;它們解決的是處理器可能出現(xiàn)故障(即變得無(wú)響應(yīng))時(shí)的全局狀態(tài)問(wèn)題。在這些情況下通信是同步的,即受一些已知的時(shí)間上限。
后來(lái),隨著電信和計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展,出現(xiàn)了另外兩個(gè)問(wèn)題:未知的通信延遲和對(duì)手的存在。前者導(dǎo)致了部分新的研究同步和異步共識(shí)算法和創(chuàng)建算法可以容忍任意代理行為(拜占庭行為)——即所謂的拜占庭容錯(cuò)算法(或BFT共識(shí))。
隨著互聯(lián)網(wǎng)的廣泛應(yīng)用,對(duì)手的問(wèn)題變得更加嚴(yán)重。如果在多處理器環(huán)境或電信基礎(chǔ)設(shè)施中可以識(shí)別每個(gè)代理,那么在Internet的許多情況下就不能這樣做。因此,出現(xiàn)了一種新的公共(或無(wú)許可)共識(shí),共識(shí)算法必須成為一種協(xié)議,其中嵌入了識(shí)別和排除拜占庭式代理的規(guī)則和程序——就像一些附帶機(jī)制降低了此類代理進(jìn)一步參與協(xié)議的經(jīng)濟(jì)能力一樣。這種制度以POW 和POS的名義引起了公眾的注意。我們將以經(jīng)濟(jì)激勵(lì)(BFT- ei)命名這些協(xié)議。在許多情況下,異步性和無(wú)許可性要求犧牲其他共識(shí)品質(zhì),比如決定論或適用于領(lǐng)導(dǎo)人選舉場(chǎng)景的能力。
共識(shí)算法應(yīng)用:
通常,共識(shí)算法用于解決以下問(wèn)題:
· 領(lǐng)袖選舉(在所有共識(shí)參與者中選擇代理人,有權(quán)更新系統(tǒng)的全球狀態(tài))
· 原子交換(不能根據(jù)事件的內(nèi)部屬性確定其順序事件的確切順序)
· 狀態(tài)復(fù)制(維護(hù)所有或大多數(shù)代理共享的全局狀態(tài))
這是共識(shí)算法的三個(gè)主要用例是高度相關(guān)的。例如,狀態(tài)復(fù)制可以通過(guò)狀態(tài)更改的適當(dāng)順序(即原子廣播)來(lái)解決,而適當(dāng)?shù)念I(lǐng)導(dǎo)人選舉過(guò)程本身可能允許有序的原子廣播(但是,在沒(méi)有領(lǐng)導(dǎo)人選舉過(guò)程的情況下,有達(dá)成相同結(jié)果的共識(shí))。
總體來(lái)說(shuō),主流共識(shí)算法逐漸由PoW轉(zhuǎn)向PoS共識(shí)算法,出現(xiàn)POW和POS混合的趨勢(shì),POW的公平性和POS的效率得到融合補(bǔ)充。但即便是每種加密貨幣背后都有一種偉大的共識(shí)算法,沒(méi)有一種共識(shí)算法是完美的,各有優(yōu)缺點(diǎn)。隨著區(qū)塊鏈項(xiàng)目越來(lái)越多,而共識(shí)算法也會(huì)不斷改進(jìn)。





