區(qū)塊鏈共識(shí)算法簡(jiǎn)要介紹
不要恐慌。在每一個(gè)偉大的加密貨幣背后,都有一個(gè)偉大的共識(shí)算法。沒(méi)有一種共識(shí)算法是完美的,但它們各有優(yōu)點(diǎn)。在密碼學(xué)的世界里,共識(shí)算法是用來(lái)防止雙重支出的。下面是一些迄今為止最流行的共識(shí)算法的簡(jiǎn)要介紹,從區(qū)塊鏈到DAG,以及中間的所有算法。
工作量證明(PoW)——OG共識(shí)
流行實(shí)現(xiàn): 比特幣,Ethereum, Litecoin, Dogecoin,(大部分)
優(yōu)點(diǎn):我們知道它有效
缺點(diǎn):緩慢的吞吐量;
工作量證明是第一個(gè)區(qū)塊鏈共識(shí)算法。由中本聰(Satoshi Nakamoto)設(shè)計(jì),用于比特幣區(qū)塊鏈。我們要感謝全世界的大規(guī)模采礦活動(dòng)和電力消耗。我們知道它是有效的,但它開(kāi)始被認(rèn)為是一種遺留技術(shù)。就連以太坊也在從PoW轉(zhuǎn)向更節(jié)能、更經(jīng)濟(jì)的PoS。有了這么多新的替代品,很難理解為什么新的區(qū)塊鏈會(huì)使用PoW。
在POW中,礦工們要解決難以解決的、無(wú)用的問(wèn)題,以制造塊。POW以“最長(zhǎng)鏈獲勝”為原則?!耙虼?,假設(shè)大多數(shù)礦商都在同一條鏈上工作,那么增長(zhǎng)最快的那條鏈將是最長(zhǎng)、最值得信賴(lài)的?!币虼耍灰V商投入的50%以上的工作是誠(chéng)實(shí)的,比特幣就是安全的。
權(quán)益證明(PoS)
流行實(shí)現(xiàn): Decred、Ethereum (soon)、Peercoin
優(yōu)點(diǎn): 攻擊更昂貴;更多的分散;
缺點(diǎn): 沒(méi)有什么權(quán)益關(guān)系
在PoS中,塊不是由正在工作的礦工創(chuàng)建的,而是由礦工用他們的代幣來(lái)下注于哪些塊是有效的。如果要進(jìn)行分叉, 那么礦工使用代幣投票支持哪個(gè)分叉就可以。
令人擔(dān)憂(yōu)的是,由于驗(yàn)證器幾乎不需要計(jì)算能力就可以支持與PoW不同的分叉,因此驗(yàn)證器可以為發(fā)生的每個(gè)分叉的兩邊投票。這樣一來(lái),PoS的分叉就會(huì)比POW的常見(jiàn)得多,一些人擔(dān)心這會(huì)損害貨幣的信譽(yù)。
委托權(quán)益證明(DPoS)——選擇驗(yàn)證器
流行的實(shí)現(xiàn):Steemit, EOS, bitshare
優(yōu)點(diǎn):廉價(jià)的交易;可伸縮的;
缺點(diǎn):部分集中
DPoS是Daniel Larimer的大腦產(chǎn)物,實(shí)際上和PoS有很大的不同。在DPoS中,代幣持有者并不對(duì)塊本身的有效性進(jìn)行投票,而是投票選舉代表來(lái)代表他們進(jìn)行驗(yàn)證。在DPoS系統(tǒng)中,一般有21-100名當(dāng)選代表。代表們定期進(jìn)行洗牌,并被要求提交他們的區(qū)塊。只有少量的代表允許它們有效地組織自己,并為每個(gè)代表創(chuàng)建指定的時(shí)間槽來(lái)發(fā)布它們的塊。如果代表們不斷錯(cuò)過(guò)他們的區(qū)塊,或者發(fā)布無(wú)效的交易,他們會(huì)投票表決通過(guò),用一個(gè)更好的代表代替他們。
在DPoS中,采礦者可以合作生成塊,而不是像PoW和PoS那樣進(jìn)行競(jìng)爭(zhēng)。通過(guò)部分集中化塊的創(chuàng)建,DPoS能夠比大多數(shù)其他共識(shí)算法運(yùn)行速度快幾個(gè)數(shù)量級(jí)。EOS設(shè)置為第一個(gè)區(qū)塊鏈塊乘以《 1秒,比比特幣的10分鐘阻塞時(shí)間快一點(diǎn)。
權(quán)威證明(PoA) -相信無(wú)所不知的人
流行的實(shí)現(xiàn): POA.Network, Ethereum Kovan testnet
優(yōu)點(diǎn): 高吞吐量;可伸縮的
缺點(diǎn): 集中系統(tǒng)
權(quán)威證明是一種協(xié)商共識(shí)的算法,其中事務(wù)由批準(zhǔn)的帳戶(hù)進(jìn)行驗(yàn)證,有點(diǎn)像系統(tǒng)的“管理員”。 PoA具有高吞吐量,并且針對(duì)私有網(wǎng)絡(luò)進(jìn)行了優(yōu)化。由于PoA的集中性,您不太可能看到它在公共鏈上運(yùn)行。
權(quán)重證明(PoWeight) -越大越好
流行的實(shí)現(xiàn):Algorand、Filecoin、Chia
優(yōu)點(diǎn):可定制;可伸縮的
缺點(diǎn):激勵(lì)可能是一個(gè)挑戰(zhàn)
PoWeight是一種廣泛的基于Algorand共識(shí)性模型的算法分類(lèi)。一般的想法是,在PoS中,您在網(wǎng)絡(luò)中擁有代幣的百分比表示您“發(fā)現(xiàn)”下一個(gè)塊的概率,在PoWeight系統(tǒng)中,就是使用其他一些相對(duì)加權(quán)的值。具體的例子:Filecoin的PoWeight證明是根據(jù)您存儲(chǔ)的IPFS數(shù)據(jù)的多少進(jìn)行加權(quán)的。其他系統(tǒng)可能包括諸如聲譽(yù)證明之類(lèi)的權(quán)重。
拜占庭容錯(cuò)(BFT) -圍攻區(qū)塊鏈!
流行的實(shí)現(xiàn): Hyperledger, Stellar,
優(yōu)點(diǎn): 高吞吐量;低成本;可伸縮的
缺點(diǎn): 不完全受信任的
有一個(gè)經(jīng)典的問(wèn)題是分布式計(jì)算,通常用拜占庭將軍來(lái)解釋。問(wèn)題是幾個(gè)拜占庭將軍和他們各自所在的拜占庭軍隊(duì)包圍了一座城市。他們必須一致決定是否進(jìn)攻。如果一些將軍獨(dú)自進(jìn)攻,他們的圍攻將以悲劇告終。將軍們之間通常隔著距離,必須傳遞信息才能交流。一些加密貨幣協(xié)議使用某些版本的BFT來(lái)達(dá)成共識(shí),每個(gè)協(xié)議都有其優(yōu)缺點(diǎn):
實(shí)用拜占庭式容錯(cuò)(PBFT): 最早解決這個(gè)問(wèn)題的方法之一就是提出實(shí)用拜占庭式容錯(cuò)。目前使用的Hyperledger Fabric,用很少(《 20,以后的事情得到一點(diǎn))預(yù)先選定的將軍PBFT運(yùn)行非常有效。優(yōu)點(diǎn):高事務(wù)吞吐量、缺點(diǎn):集中式的。
聯(lián)邦拜占庭協(xié)議(FBA): FBA是另一類(lèi)解決拜占庭將軍問(wèn)題的貨幣,如Stellar和Ripple。一般的想法是,每一個(gè)拜占庭將軍,都要對(duì)自己的鏈條負(fù)責(zé),在他們進(jìn)來(lái)建立真理時(shí),對(duì)信息進(jìn)行分類(lèi)。在Ripple中,將軍(驗(yàn)證器)由Ripple基金會(huì)預(yù)先選擇。在Stellar中,任何人都可以是驗(yàn)證器,因此您可以選擇信任哪個(gè)驗(yàn)證器。
由于其驚人的吞吐量、低事務(wù)成本和網(wǎng)絡(luò)可伸縮性,我相信FBA類(lèi)的協(xié)商共識(shí)算法是我們發(fā)現(xiàn)的用于分布式協(xié)商共識(shí)的最佳算法。
定向無(wú)環(huán)圖(DAG) -又名區(qū)塊鏈殺手!
流行的實(shí)現(xiàn):Iota、Hashgraph、Raiblocks/Nano
優(yōu)點(diǎn):網(wǎng)絡(luò)可伸縮性;低成本
缺點(diǎn):取決于實(shí)現(xiàn)
DAG現(xiàn)在比Vitalik的Tinder還火。DAG是一種共識(shí)形式,它不使用區(qū)塊鏈數(shù)據(jù)結(jié)構(gòu),主要以異步方式處理事務(wù)。理論上,專(zhuān)業(yè)人士每秒的交易是無(wú)限的,但DAG和其他共識(shí)一樣,也有優(yōu)點(diǎn)和缺點(diǎn)。
Tangle: Tangle是Iota使用的DAG共識(shí)算法。為了發(fā)送Iota事務(wù),您需要驗(yàn)證接收到前兩個(gè)事務(wù)。隨著交易的增多,“一賠二、先付后付”的共識(shí)增強(qiáng)了交易的有效性。因?yàn)楣沧R(shí)是由事務(wù)建立的,理論上,如果有人可以生成1/3的事務(wù),他們就可以說(shuō)服網(wǎng)絡(luò)的其他部分是有效的。直到有足夠的事務(wù)量使得創(chuàng)建1/3的事務(wù)量變得不可行的時(shí)候,Iota有點(diǎn)像在一個(gè)名為“協(xié)調(diào)器”的集中節(jié)點(diǎn)上“重復(fù)檢查”所有網(wǎng)絡(luò)事務(wù)。Iota協(xié)調(diào)器就像系統(tǒng)的輔助輪,一旦纏結(jié)足夠大,就會(huì)被移除。
Hashgraph: Hashgraph是由Leemon Baird開(kāi)發(fā)的一種八卦協(xié)議共識(shí)。節(jié)點(diǎn)隨機(jī)地與其他節(jié)點(diǎn)共享它們已知的事務(wù),因此最終所有的事務(wù)都被散布到所有節(jié)點(diǎn)。Hashgraph非???,但對(duì)Sybil攻擊沒(méi)有抵抗力。所以Hashgraph對(duì)于私有網(wǎng)絡(luò)是一個(gè)很好的選擇,但是您不會(huì)很快看到它在像以太坊這樣的公共網(wǎng)絡(luò)中實(shí)現(xiàn)或分發(fā)。
Block-lattice: Nano(以前稱(chēng)為Raiblocks)在區(qū)塊鏈上運(yùn)行時(shí)帶有一個(gè)稱(chēng)為Block-latTIce的結(jié)構(gòu)。Block-latTIce是這樣一種結(jié)構(gòu):每個(gè)用戶(hù)(地址)都有自己的鏈,每個(gè)人都持有所有鏈的副本。每個(gè)事務(wù)都被分解為發(fā)送方鏈上的發(fā)送塊和接收方鏈上的接收塊。
Block-latTIce似乎太簡(jiǎn)單而無(wú)法工作,但它已經(jīng)在野外運(yùn)行了。這種獨(dú)特的結(jié)構(gòu)確實(shí)讓Block-latTIce向一些獨(dú)特的攻擊向量開(kāi)放,比如Penny-spend攻擊,攻擊者通過(guò)向大量的空錢(qián)包發(fā)送微不足道的數(shù)據(jù)來(lái)增加節(jié)點(diǎn)必須跟蹤鏈的數(shù)量。
工作證明事件的序列化: 通過(guò)確認(rèn)事務(wù)
Recursive Elections (更廣為人知的名稱(chēng)是SPECTRE)是一種提議的比特幣伸縮解決方案,它利用PoW和DAG的組合來(lái)達(dá)成可伸縮的共識(shí)。在SPECTRE中,塊被挖掘指向多個(gè)父節(jié)點(diǎn),而不僅僅是一個(gè)父節(jié)點(diǎn),因此網(wǎng)絡(luò)可能每秒處理多個(gè)塊。挖掘指向某些父節(jié)點(diǎn)的塊來(lái)支持這些塊的有效性。與POW “最長(zhǎng)鏈勝利”相比,SPECTRE使用的是“子節(jié)點(diǎn)獲勝最多的區(qū)塊”。 SPECTRE尚未在野外進(jìn)行過(guò)實(shí)戰(zhàn)測(cè)試,新的攻擊載體可能會(huì)出現(xiàn),但它似乎是修復(fù)比特幣的一種非常聰明的潛在方式。