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