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