30種共識算法完全列表

原文來自:http://www.infoq.com/cn/articles/consensuspedia-an-encyclopedia-of-29-consensus-algorithms


共識算法是所有區(qū)塊鏈 / DAG 的基礎(chǔ)乐纸,它們構(gòu)成了區(qū)塊鏈 / DAG 平臺中的最重要部分橄维。

如果沒有共識算法,我們得到只是一個不可寫的啞(dummy)數(shù)據(jù)庫。

我將在本文中盡可能列出所有主要的共識算法矢腻,評估各自的優(yōu)劣之處。如果讀者發(fā)現(xiàn)有所遺漏,或是存在錯誤焰檩,希望能通過評論指出。此外订框,我個人也在逐步深入研究共識算法及其對經(jīng)濟的影響析苫,為此本文也將做定期的更新。

另:本文假定讀者理解共識算法及其在區(qū)塊鏈中的重要性穿扳。

下面列出 30 種共識算法衩侥。

1. 工作量證明(PoW,Proof of Work)

優(yōu)點:

  • 自 2009 年以來得到了廣泛測試矛物,目前依然得到廣泛的使用茫死。

不足

  • 速度慢。
  • 耗能巨大履羞,對環(huán)境不好璧榄。
  • 易受 “規(guī)模經(jīng)濟”(economies of scale)的影響。

使用者:Bitcoin吧雹、Ethereum骨杂、LitecoinDogecoin 等雄卷。

類型:有競爭共識(Competitive consensus)搓蚪。

解釋:PoW 是是首個共識算法。它是由中本聰在他的論文中提出的丁鹉,用于建立分布式無信任共識并識別 “雙重支付”(double spend)問題妒潭。PoW 并非一個新理念,但是中本聰將 Pow 與加密簽名揣钦、Merkle 鏈和 P2P 網(wǎng)絡(luò)等已有理念結(jié)合雳灾,形成一種可用的分布式共識系統(tǒng)。加密貨幣是這樣系統(tǒng)的首個基礎(chǔ)和應(yīng)用冯凹,因而獨具創(chuàng)新性谎亩。

在 PoW 的工作方式中,區(qū)塊鏈參與者(稱為 “礦工”)要在區(qū)塊鏈中添加一塊交易宇姚,必須解決某種“復(fù)雜但是無用” 的計算問題匈庭。

本質(zhì)上,這種做法可確保礦工花費了一些金錢或資源(礦機)完成工作浑劳,這表示了它們將不會損害區(qū)塊鏈系統(tǒng)阱持,因為對系統(tǒng)的損害也將會導(dǎo)致投資的損失,進(jìn)而損害他們自身魔熏。

為保證運行區(qū)塊時間不變衷咽,問題的復(fù)雜性會發(fā)生變化鸽扁。有時,會存在多名礦工同時解決了問題镶骗。在這種情況下献烦,每位礦工從中選取一個區(qū)塊鏈,并以選取最長鏈者為獲勝者卖词。因此,如果假定大多數(shù)礦工工作在同一個鏈上吏夯,那么成長最快的鏈將成為最長和最值得信任的鏈此蜈。這樣,只要由礦工提交的工作有超過一半是值得信任的噪生,那么 Bitcoin 就是安全的裆赵。

擴展閱讀Proof of work

2. 權(quán)益證明(PoS,Proof of Stake)

優(yōu)點

  • 節(jié)能跺嗽。
  • 攻擊者代價更大战授。
  • 不易受 “規(guī)模經(jīng)濟” 的影響。

不足

  • “無利害關(guān)系 “(Nothing at stake)” 攻擊問題桨嫁。

使用者Ethereum(即將推出)植兰、PeercoinNxt璃吧。

類型:有競爭共識楣导。

解釋:PoS 是作為** Pow 的替代技術(shù)**提出的,意在解決 PoW 的一些內(nèi)在問題畜挨。PoS 沒有使用挖礦方法筒繁,而是用戶必須具有系統(tǒng)中的一些權(quán)益(幣)。因此巴元,如果用戶擁有 10% 的權(quán)益(代幣)毡咏,那么該用戶挖掘下一個區(qū)塊的可能性就是 10%。

挖礦為解決計算上的挑戰(zhàn)逮刨,需要運行各種加密計算呕缭,這需要耗費大量的算力。算力將轉(zhuǎn)變?yōu)?PoW 所需的大量電能修己。據(jù)估計在 2015 年時臊旭,一個 Bitcoin 交易所需的電力,可達(dá) 1.57 個美國家庭一日所需的電力箩退。PoS 的提出是為了節(jié)約電力耗費离熏。

在 PoS 中,一個美元就是一個美元戴涝。例如滋戳,假定有一萬名每位每分鐘花費 1 美元(一年 8760 萬美元)的礦工钻蔑,要比一位具有每分鐘花費一萬美元挖掘礦池能力的礦工擁有更少的哈希能力(Hashing Power)。但是在 PoS 中不支持一次用光所有算力奸鸯,一美元就是一美元咪笑。因此 PoS 不易受 “規(guī)模經(jīng)濟” 的影響。

此外娄涩,攻擊 PoS 系統(tǒng)也要比攻擊 PoW 系統(tǒng)的代價更大窗怒。引用 Vlad Zamfir 的說法:

在 PoS 中,重復(fù) 51% 攻擊的代價蓄拣,可類比為每額外運行一輪扬虚,都會 “燒毀你的 ASIC 農(nóng)場”。

這意味著球恤,每次攻擊 PoS 系統(tǒng)辜昵,攻擊者都會失去自己的權(quán)益。而在 PoW 中咽斧,攻擊者不會丟失挖礦設(shè)備桂躏,或是代幣躁垛。對 PoW 系統(tǒng)的攻擊只會使攻擊本身難以執(zhí)行孝扛。

但是 PoS 會在** “無厲害關(guān)系”** 上出問題蝇更。這種對多個區(qū)塊歷史(forks)投票的方式不會讓區(qū)塊生成器有任何損失,進(jìn)而阻礙了達(dá)成共識宛逗。

image

在 PoS 中雁竞,你可以在區(qū)塊鏈的雙方押注資產(chǎn)(“無厲害關(guān)系” 問題)。而在 PoW 中拧额,你不能從鏈的兩個方向同時挖礦碑诉,因為這難以實現(xiàn)。

不同于 PoW 系統(tǒng)(用戶為擴展鏈必須做大量的計算)侥锦,PoS 在多個鏈上工作的代價很小进栽。有一些項目試圖通過多種方式解決這個問題(參見 “擴展閱讀”)。例如恭垦,一個解決方案就是上文所介紹的快毛,對不好的驗證者做懲罰。

擴展閱讀Proof of stake

3. 延遲工作量證明(dPoW番挺,Delayed Proof-of-Work)

優(yōu)點

  • 節(jié)能唠帝。
  • 安全性增加。
  • 可以通過非直接提供 Bitcoin(或是其它任何安全鏈)玄柏,添加價值到其它區(qū)塊鏈襟衰,無需付出 Bitcoin(或是其它任何安全鏈)交易的代價。

不足

* 只有使用 PoW 或 PoS 的區(qū)塊鏈粪摘,才能采用這種共識算法瀑晒。
* 在 “公證員激活”(Notaries Active)模式下绍坝,必須校準(zhǔn)不同節(jié)點(公證員或正常節(jié)點)的哈希率,否則哈希率間的差異會爆炸(下文將給出詳細(xì)解釋)苔悦。

采用者Komodo

類型:協(xié)同型共識(Collaborative consensus)

解釋:dPoW 是一種混合共識方法轩褐,允許一個區(qū)塊鏈利用第二個區(qū)塊鏈的哈希算力(Hashing Power)所提供的安全。該機制是通過一組公證員節(jié)點(Notary Node)實現(xiàn)的玖详。公證員節(jié)點實現(xiàn)將第一個區(qū)塊鏈的數(shù)據(jù)添加到第二個區(qū)塊鏈中把介。進(jìn)而,第二個區(qū)塊鏈請求在兩個區(qū)塊鏈間達(dá)成妥協(xié)蟋座,弱化第一個區(qū)塊鏈的安全拗踢。Komodo 是首個使用該共識方法的區(qū)塊鏈,它就是附加于 Bitcoin 區(qū)塊鏈之上的蜈七。

image

使用 dPoW 的區(qū)塊鏈也可以使用 PoW 或 PoS 共識方法工作,并可以附加在任何采用 PoW 的區(qū)塊鏈上莫矗。但對于由 dPoW 提供安全的區(qū)塊鏈飒硅,當(dāng)前 Bitcoin 給出了最高安全層級的哈希率。下圖展示了主區(qū)塊鏈的單個記錄以及其所附著的 PoW 區(qū)塊鏈作谚。

image

圖片來源:https://wiki.komodoplatform.com/wiki/Delayed_Proof_of_Work_%28dPoW%29

dPoW 系統(tǒng)中有兩種類型的節(jié)點:公證人節(jié)點和正常節(jié)點三娩。64 個公證人節(jié)點是由 dPoW 區(qū)塊鏈的權(quán)益持有者(stakeholder)選舉產(chǎn)生的,它們可從 dPoW 區(qū)塊鏈向所附加的 PoW 區(qū)塊鏈添加經(jīng)公證確認(rèn)的塊妹懒。一旦添加了一個塊雀监,該塊的哈希值將被添加到由 33 個公證人節(jié)點簽署的 Bitcoin 交易中,并創(chuàng)建一個哈希到 Bitcoin 區(qū)塊鏈的 dPow 塊記錄眨唬。該記錄已被網(wǎng)絡(luò)中的大多數(shù)公證人節(jié)點公證会前。

為避免公證人節(jié)點間在挖礦上產(chǎn)生戰(zhàn)爭,進(jìn)而降低網(wǎng)絡(luò)的效率匾竿,Komodo 設(shè)計了一種采用輪詢機制的挖礦方法瓦宜。該方法具有兩種運行模式。在 “無公證人”(No Notary)模式下岭妖,支持所有網(wǎng)絡(luò)節(jié)點參與挖礦临庇,這類似于傳統(tǒng) PoW 共識機制。而在“公證人激活”(Notaries Active)模式下昵慌,網(wǎng)絡(luò)公證人使用一種顯著降低的網(wǎng)絡(luò)難度率挖礦假夺。“公證人激活” 模式下斋攀,允許每位公證人使用其當(dāng)前的難度挖掘一個區(qū)塊已卷,而其它公證人節(jié)點必須采用 10 倍難度挖礦,所有正常節(jié)點使用公證人節(jié)點難度的 100 倍挖礦淳蔼。

但這會導(dǎo)致一些問題悼尾。我在與 Komodo 創(chuàng)始人的一次談話中提及柿扣,這將導(dǎo)致公證人礦工和正常礦工間的哈希率存在很高的差異:

image

圖 本文作者與 Komodo 創(chuàng)始人間就不一致性問題進(jìn)行交流的截圖

dPoW 系統(tǒng)在設(shè)計上支持區(qū)塊鏈在沒有公證人節(jié)點的情況下繼續(xù)運行。在這種情況下闺魏,dPoW 區(qū)塊鏈可以基于初始的共識方法繼續(xù)運行未状,但將不再具有所附著區(qū)塊鏈增添的安全。

image

圖片來源:https://wiki.komodoplatform.com/wiki/Delayed_Proof_of_Work_%28dPoW%29

所有使用 dPoW 的區(qū)塊鏈可增加安全析桥,同時降低能耗司草。例如,Komodo 使用 Equihash 哈希算法防止使用 ASIC 挖礦泡仗。其公證人節(jié)點依賴于一種輪詢挖礦方法埋虹,獎勵機制考慮了降低節(jié)點間競爭的可能性。這些節(jié)點將會引發(fā)過度耗能或算力娩怎。

此外通過非直接提供 Bitcoin 安全搔课,Komodo 這類 dPoW 區(qū)塊鏈可以向其它區(qū)塊鏈添加價值,無需付出任何 Bitcoin 交易的代價截亦。Komodo 此后附著到 Bitcoin爬泥,而第三個使用 dPoW 的區(qū)塊鏈可以將自身附著到 Komodo。使用這種方式崩瓤,dPoW 區(qū)塊鏈不必直接附著到 Bitcoin 區(qū)塊鏈袍啡,就從 Bitcoin 的高哈希率中受益。

最后一點却桶,公證人節(jié)點和正常節(jié)點分離的功能境输,確保了初始共識機制在公證人節(jié)點失敗時繼續(xù)運行。這種相互獨立性建立了一種獎勵機制颖系,使得其它網(wǎng)絡(luò)無需依賴于 Bitcoin 網(wǎng)絡(luò)的直接功能嗅剖,即可支持 Bitcoin 網(wǎng)絡(luò)的繼續(xù)維護(hù)。

擴展閱讀Delegated-Proof of Work

4. 授權(quán) PoS(DPoS嘁扼,Delegated Proof-of-Stake)

優(yōu)點

  • 節(jié)能窗悯。
  • 快速。高流量博客網(wǎng)站 Steemit 就使用了它偷拔。EOS 的塊時間是 0.5 秒蒋院。

不足

  • 略為中心化。
  • 擁有高權(quán)益的參與者可投票使自己成為一名驗證者莲绰。這是近期已在 EOS 中出現(xiàn)的問題欺旧。

采用者BitSharesSteemit蛤签、EOS辞友、LiskArk

類型:協(xié)同型共識

解釋:在 DPoS 系統(tǒng)中称龙,權(quán)益持有者可以選舉領(lǐng)導(dǎo)者(或稱為見證人留拾,Witness)。經(jīng)權(quán)益持有者授權(quán)鲫尊,這些領(lǐng)導(dǎo)者可進(jìn)行投票痴柔。該機制使得 DPoS 要快于正常的 PoS。

例如疫向,EOS 中選舉出 21 位見證人咳蔚,并且有一堆節(jié)點(潛在的見證人)作為候選者。一旦見證人節(jié)點死亡或是做出了惡意行為搔驼,新節(jié)點就會立刻替代見證人節(jié)點谈火。見證人會因為生成區(qū)塊而獲得一筆支付費用。該費用是由權(quán)益持有者設(shè)立的 舌涨。

通常糯耍,所有節(jié)點采用輪詢方式,一次生成一個區(qū)塊囊嘉。該機制防止一個節(jié)點發(fā)布連續(xù)的塊温技,進(jìn)而執(zhí)行 “雙重支付” 攻擊。如果一個見證人在分配給他的時間槽中未生成區(qū)塊哗伯,那么該時間槽就被跳過荒揣,并由下一位見證人生成下一個區(qū)塊篷角。如果見證人持續(xù)丟失他的區(qū)塊焊刹,或是發(fā)布了錯誤的交易,那么權(quán)益持有者將投票決定其退出恳蹲,用更好的見證人替換他虐块。

在 DPoS 中,礦工可以合作生成塊嘉蕾,而不是像在 PoW 和 PoS 中那樣競爭生成贺奠。通過區(qū)塊生成的部分中心化,DPoS 的運行可以比其它共識算法呈數(shù)量級快错忱。EOS(使用了 DPoS)是首個實現(xiàn) 0.5 秒生成塊的區(qū)塊鏈儡率!

這非常快以清!

擴展閱讀Delegated-Proof of Stake

5. 權(quán)威證明(PoA儿普,Proof-of-Authority)

優(yōu)點

  • 節(jié)能。
  • 快速掷倔。

不足

  • 略為中心化眉孩。雖然可用于公有區(qū)塊鏈,但是通常用于私有區(qū)塊鏈和許可區(qū)塊鏈。

使用者POA.Network浪汪、Ethereum Kovan testnet巴柿、VeChain

類型:協(xié)同型共識死遭。

解釋:基于 PoA 的網(wǎng)絡(luò)广恢、事務(wù)和區(qū)塊,是由一些經(jīng)認(rèn)可的賬戶認(rèn)證的殃姓,這些被認(rèn)可的賬戶稱為 “驗證者”(Validator)袁波。驗證者運行的軟件,支持驗證者將交易(transaction)置于區(qū)塊中蜗侈。該過程是自動的篷牌,無需驗證者持續(xù)監(jiān)控計算機,但需要維護(hù)計算機(權(quán)威節(jié)點)不妥協(xié)(uncompromised)踏幻。

驗證者必須滿足以下三個條件:

  1. 其身份必須在鏈上得到正式驗證枷颊,信息可在公有可用域中交叉驗證。
  2. 其資格必須難以獲得该面,這樣所得到的驗證塊的權(quán)利才彌足珍貴(例如夭苗,潛在的驗證者需要獲得公證書)。
  3. 建立權(quán)威的檢查和程序必須完全統(tǒng)一隔缀。

使用 PoA题造,每個個體都具有變成驗證者的權(quán)利,因此存在一旦獲取就保持驗證者位置的動機猾瘸。通過對身份附加一個聲譽界赔,可以鼓勵驗證者去維護(hù)交易的過程。因為驗證者并不希望讓自己獲得負(fù)面聲譽牵触,這會使其失去來之不易的驗證者地位淮悼。

擴展閱讀Proof of Authority

6. 權(quán)重證明(PoWeight,Proof-of-Weight)

優(yōu)點

  • 節(jié)能揽思。
  • 高度可定制和可擴展

不足

  • 可能難以實現(xiàn)激勵袜腥。

采用者Algorand

類型:有競爭共識钉汗。

解釋:權(quán)重證明(PoWeight)是一類很寬泛的共識算法羹令,它基于 Algorand 共識模型。其基本理念是在 PoS 中损痰,用戶所擁有的網(wǎng)絡(luò)中令牌的百分比福侈,表示了該用戶 “發(fā)現(xiàn)” 下一個區(qū)塊的概率。PoWeight 系統(tǒng)中還使用了其它一些相對加權(quán)值徐钠,實現(xiàn)包括聲望證明(PoR癌刽,Proof of Reputation)和空間證明(Proof of Space)。

擴展閱讀Proof of Weight

7. 聲譽證明(PoR,Proof of Reputation)

image

優(yōu)點

  • 非常適用于私有區(qū)塊鏈和許可區(qū)塊鏈显拜。

不足

  • 只能用于私有區(qū)塊鏈和許可區(qū)塊鏈衡奥。

采用者GoChain

類型:協(xié)同型共識远荠。

解釋:PoR 類似于 PoA矮固。GoChain 文檔中給出了如下描述

PoR 共識模型依賴參與者在保持網(wǎng)絡(luò)安全中的聲譽。參與者(區(qū)塊簽名者)必須具有足夠重要的聲譽譬淳。一旦他們嘗試欺騙系統(tǒng)档址,那么他們將要面對嚴(yán)重的財政上的和自己名聲上的后果。這是一個相對的概念邻梆,如果他們被抓到試圖欺騙守伸,那么幾乎所有的業(yè)務(wù)將會受到嚴(yán)重的影響。規(guī)模越大的企業(yè)浦妄,通常將會失去更多尼摹。這樣,相比使用更少的企業(yè)(即更小規(guī)模的商業(yè))剂娄,規(guī)模更大的企業(yè)更易于被選定蠢涝。

一旦一個企業(yè)證明了自己的聲譽,并通過了驗證阅懦,那么他們必須經(jīng)投票參與到權(quán)威節(jié)點網(wǎng)絡(luò)中和二。這時,PoR 的操作與 PoA 網(wǎng)絡(luò)一樣耳胎,即只有權(quán)威節(jié)點可以簽名并驗證區(qū)塊惯吕。

在 “擴展閱讀” 中提供了更多詳細(xì)信息。

擴展閱讀Proof of Reputation

8. 所用時間證明(PoET场晶,Proof of Elapsed Time)

優(yōu)點

  • 參與代價低混埠。更多人可輕易加入怠缸,進(jìn)而達(dá)到去中心化诗轻。
  • 對于所有參與者而言,更易于驗證領(lǐng)導(dǎo)者是通過合法選舉產(chǎn)生的揭北。
  • 控制領(lǐng)導(dǎo)者選舉過程的代價扳炬,是與從中獲得的價值成正比的。

不足

  • 盡管 PoET 的代價低搔体,但是必須要使用特定的硬件恨樟。因此不會被大規(guī)模采納。
  • 不適用于公有區(qū)塊鏈疚俱。

采用者HyperLedger Sawtooth

類型:有競爭共識

解釋:PoET 共識機制算法通常用于許可區(qū)塊鏈網(wǎng)絡(luò)劝术,它可決定網(wǎng)絡(luò)中獲得區(qū)塊者的挖礦權(quán)利。許可區(qū)塊鏈網(wǎng)絡(luò)需要任何預(yù)期參與者在加入前驗證身份。根據(jù)公平彩票系統(tǒng)的原則养晋,每個節(jié)點具有同等的可能成為勝出者衬吆。PoET 機制賦予大量可能的網(wǎng)絡(luò)參與者以平等勝出的機會。

PoET 的工作機制如下:網(wǎng)絡(luò)中的每位參與節(jié)點都必須等待一個隨機選取的時期绳泉,首個完成設(shè)定等待時間的節(jié)點將獲得一個新區(qū)塊逊抡。區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點會生成一個隨機的等待時間,并休眠一個設(shè)定的時間零酪。最先醒來的節(jié)點冒嫡,即具有最短等待時間的節(jié)點,喚醒并向區(qū)塊鏈提交一個新區(qū)塊四苇,然后廣播必要的信息到整個對等網(wǎng)絡(luò)中孝凌。同一過程將會重復(fù),以發(fā)現(xiàn)下一個區(qū)塊月腋。

在 PoET 網(wǎng)絡(luò)共識機制中胎许,需要確保兩個重要因素。第一罗售,參與節(jié)點在本質(zhì)上會自然地選取一個隨機的時間辜窑,而非某一個參與者為勝出而刻意選取了較短的時間。第二寨躁,勝出者的確完成了等待時間穆碎。

PoET 理念是由著名的芯片制造巨頭 Intel 于 2016 年早期提出的。Intel 為解決 “隨機領(lǐng)導(dǎo)者選舉” 的計算問題职恳,實現(xiàn)了一個可用的高科技工具所禀。

這種內(nèi)在機制允許應(yīng)用在受保護(hù)的環(huán)境中執(zhí)行受信任的代碼,它確保了上面提出的兩個要求得到滿足放钦,即隨機選擇所有參與節(jié)點的等待時間色徘,以及勝出參與者真正完成了等待時間。

這種在安全環(huán)境中運行可信代碼的機制也同時考慮到了其它一些網(wǎng)絡(luò)的需求操禀。它確保了受信代碼的確運行在安全環(huán)境中褂策,并不可被其它外部參與者更改。它也確保了結(jié)果可被外部參與者和實體驗證颓屑,進(jìn)而提高了網(wǎng)絡(luò)共識的透明度斤寂。

PoET 通過控制代價實現(xiàn)了共識過程,該代價依然是與從過程中獲得的價值成正比揪惦。這是保證加密貨幣經(jīng)濟持續(xù)繁榮的一個關(guān)鍵需求遍搞。

擴展閱讀Proof of Elapsed Time

9. 容量證明(PoC,Proof of Capacity)器腋,也稱為空間證明(PoSpace溪猿,Proof of Space)

image

優(yōu)點

  • 它類似于 PoW钩杰,只是使用空間替代了計算。因此更加環(huán)境友好诊县。
  • 可用于惡意軟件檢測榜苫。通過確定處理器的 L1 緩存是否為空(例如,具有足夠空間在沒有緩存未命中的情況下計算 PoSpace 過程)翎冲,或是包含一個拒絕被逐出(evicted)的例程垂睬。
  • 可用于反垃圾郵件措施,以及防范拒絕服務(wù)(DoS)攻擊抗悍。

不足

  • 激勵機制可能存在問題驹饺。

使用者BurstcoinChia缴渊、SpaceMint赏壹。

類型:協(xié)同型共識。

解釋:PoSpace衔沼,也稱為 PoC蝌借,通過分配一定數(shù)量的內(nèi)存或磁盤空間用于解決服務(wù)提供者所提供挑戰(zhàn)的方式,顯示了某個人對某個服務(wù)(例如發(fā)送郵件)具有合法的興趣指蚁。該理念是由 Dziembowski 等在 2015 年形式化定義的菩佑。雖然 Ateniese 等人的論文名稱也是 “Proof-of-space”,但它事實上一種采用 MHF(Memory Hard Function凝化,一種計算代價取決內(nèi)存的哈希算法)的 PoW 協(xié)議稍坯。

PoSpace 非常類似于 PoW,只是使用存儲替代了 Pow 中的計算搓劫。PoSpace 與 MHF 和可回收性證明(PoR瞧哟,Proof of Retrievability)有關(guān),但也在很大程度上存在著差異枪向。

PoSpace 是由證明者 (Prover) 發(fā)送給驗證者 (Verifier) 的一小塊數(shù)據(jù)勤揩,該數(shù)據(jù)確認(rèn)了證明者已經(jīng)保留了一定量的空間。出于實用性上的考慮秘蛔,驗證過程需要盡量高效陨亡,即消耗盡可能少的空間和時間。出于公平性上的考慮缠犀,如果驗證者沒有保留所聲明數(shù)量的空間数苫,那么它應(yīng)該難以通過驗證聪舒。PoSpace 的一種實現(xiàn)方式是通過使用一個難以實現(xiàn) Pebbling 的圖辨液。驗證者請求證明者構(gòu)建對一個“非 Pebbling 圖” 標(biāo)記。證明者提交標(biāo)記箱残,進(jìn)而驗證者請求證明者在提交中開放多個隨機位置滔迈。

由于存儲的通用本質(zhì)止吁,以及存儲所需的更低耗能,PoSpace 被認(rèn)為是一種更公平燎悍、更綠色的替換方法敬惦。

擴展閱讀Proof of Space

10. 歷史證明(PoHistory,Proof of History)

采用者Solana

解釋:其基本理念是不相信交易中的時間戳谈山,而是證明交易在某個事件之前或之后的某個時刻發(fā)生俄删。

如果我們對某期《紐約時報》的封面拍了張照片夏漱,那么我們就創(chuàng)建了一個證明允乐,即我們的拍照時間是在該報紙發(fā)行之后,或許也可能是我們有某種途徑影響了紐約時報的正常發(fā)行癞埠。我們可以使用 PoHistory 創(chuàng)建一個歷史記錄鸽粉,證明一個事件是發(fā)生在特定時間之后的斜脂。

image

PoHistory 是一種高頻可驗證延遲函數(shù)(VDF,Verifiable Delay Function)触机。VDF 求值需要完成特定數(shù)量的順序步驟帚戳,然后生成一個唯一的輸出。該輸出可被高效地和公開地驗證儡首。

VDF 的一個特定實現(xiàn)使用了持續(xù)運行于其上的順序抗預(yù)映射哈希(Pre-image Resistant Hash)片任,其中前一次循環(huán)生成的輸出將用于下一次循環(huán)的輸入。計數(shù)和當(dāng)前輸出形成周期性記錄蔬胯。

如果使用了 SHA256 哈希函數(shù)蚂踊,那么不使用 2128 核的暴力攻擊,該過程是不可能并行化的笔宿。

因此我們可以確認(rèn)犁钟,每個計數(shù)器在生成過程中都的確經(jīng)歷了一定的時間。進(jìn)而泼橘,每個計數(shù)器記錄的順序與實時情況是一致的涝动。

在 “擴展閱讀” 中提供了更多詳細(xì)信息。

擴展閱讀Proof of History

11. 權(quán)益流通證明(PoSV炬灭,Proof of Stake Velocity)

采用者Reddcoin

解釋:PoSV 是作為 PoW 和 PoS 的一種替代方法而提出的醋粟,其目的是提高 P2P 網(wǎng)絡(luò)的安全性,進(jìn)而用于確認(rèn) Reddcoin 交易重归。Reddcoin 是一種加密貨幣米愿,專為加速數(shù)字化時代的社交交互而提出的。PoSV 在設(shè)計上鼓勵所有者(權(quán)益)和活動(流通)鼻吮,直接對應(yīng)于 Reddcoin 作為真實貨幣的兩個主要功能育苟,即存儲價值和交換中介。Reddcoin 也可在異構(gòu)社交場景中作為計量單位使用椎木。

在 “擴展閱讀” 中提供了更多詳細(xì)信息违柏。

擴展閱讀Proof of Stake Velocity

12. 重要性證明(PoImportance博烂,Proof of Importance)

優(yōu)點

  • 在權(quán)益計算方面要優(yōu)于 PoS。

使用者NEM

解釋:NEM 共識網(wǎng)絡(luò)不僅依賴于代幣的數(shù)量漱竖,而且依賴于生成系統(tǒng)行動得到回報的可能性禽篱。區(qū)塊收益機率是各種因素之一,此外還包括不好的名聲(受控于不同的框架設(shè)計目的)馍惹、差額躺率,以及從該處做出和得到的交易數(shù)量。它也被稱為 “重要性計算”(Importance Calculation)万矾,因為它可為“有用的” 系統(tǒng)成員提供更全面的圖像肥照。

一名用戶要具有資格執(zhí)行重要性計算,其賬戶余額至少需要為 10000 枚 XEM勤众∮咭铮考慮到只有不到 90 億枚 XEM 在流通,實現(xiàn)這一目標(biāo)并非過于昂貴们颜。在未來 10000 枚 XEM 的閾值有可能會發(fā)生變化吕朵,但就目前而言,它仍然沒有變化窥突。重要性計算是使用特定算法完成的努溃,而不僅僅考慮用戶份額的概率和規(guī)模。

需要指出的是阻问,NEM 的 PoImportance 對任何操控都具有抵制力梧税。該共識的底層機制可緩解女巫攻擊(Sybil Attack)和循環(huán)攻擊問題。謹(jǐn)記称近,“PoImportance 并非 PoS”第队,盡管兩者很容易被同等看待。

擴展閱讀Proof of Importance

13. 燒毀證明(PoBurn刨秆,Proof of Burn)

image

采用者Slimcoin凳谦、TGCoin(第三代代幣)。

解釋:PoBurn 并非在昂貴的計算設(shè)備上一擲千金衡未,而通過發(fā)送代幣到一個不可檢索地址實現(xiàn) “燒錢”(Burn)尸执。將代幣發(fā)送到一個并不存在的地址,用戶將根據(jù)某個隨機選擇過程缓醋,獲得整個生命時間內(nèi)對系統(tǒng)挖礦的特權(quán)如失。

PoBurn 有多種實現(xiàn)方式,礦工可以燒毀原生的貨幣送粱,或者燒毀一些其它區(qū)塊鏈的貨幣褪贵,例如比特幣等。燒毀的代幣越多葫督,用戶就越有機會被選中去挖掘下一個區(qū)塊竭鞍。

隨時間的流逝板惑,用戶在系統(tǒng)的權(quán)益會得到弱化橄镜。因此偎快,最終用戶為增加在這個博彩中被選中的機會,會考慮燒掉更多的代幣(這可類比于比特幣的挖礦過程洽胶,用戶必須不斷投資更現(xiàn)代的計算設(shè)備以維持哈希能力)晒夹。

盡管 PoBurn 是一種有意思的 PoW 替代者,但是該協(xié)議依然會毫無必要地浪費資源姊氓。另一個批評是丐怯,挖礦能力只會偏向于那些愿意燒掉更多錢的人。

14. 身份證明(PoI翔横,Proof of Identity)

image

解釋:PoI 是一塊表示了加密事實的數(shù)據(jù)读跷。它支持用戶指定一個私鑰,并對應(yīng)到一個經(jīng)認(rèn)證的身份禾唁,加密將附著到一個指定的交易效览。來自于某些組中的每個個體都可以創(chuàng)建 PoF(因為它只是一塊數(shù)據(jù)),并將該數(shù)據(jù)展示給其它任何處理節(jié)點的人荡短。

擴展閱讀Proof of Identity

15. 活動證明(PoActivity丐枉,Proof Of Activity)

使用者Decred

解釋:為避免出現(xiàn)惡性通貨膨脹(當(dāng)大量貨幣充斥系統(tǒng)時就會發(fā)生),比特幣將只生成兩千一百萬枚掘托。這意味著瘦锹,在某些時候,比特幣區(qū)塊獎勵補貼將終止闪盔,比特幣礦工將只能收取交易費用弯院。

一些人猜測這可能會導(dǎo)致由 “公地悲劇(Tragedy of the commons)” 所引發(fā)的安全問題泪掀,人們出于自身利益考慮行事并破壞系統(tǒng)抽兆。因此,人們提出了 PoActivity 作為一種替代 Bitcoin 的激勵結(jié)構(gòu)族淮。PoActivity 是一種結(jié)合了 PoW 和 PoS 的混合方法辫红。

在 PoActivity 中,挖礦一開始使用的是傳統(tǒng)的 PoW祝辣,礦工們爭相解決加密難題贴妻。根據(jù)實現(xiàn),挖掘的區(qū)塊不包含任何交易蝙斜,它們更像模板名惩。因此,勝出的區(qū)塊將只包含頭部信息孕荠,以及礦工的獎勵地址娩鹉。

此時攻谁,系統(tǒng)將切換到 PoS。PoActivity 根據(jù)頭部信息選擇一組隨機驗證者對新區(qū)塊簽名弯予。如果一位驗證者所擁有的系統(tǒng)中代幣越多戚宦,那么該驗證者被選中的可能性也會越大。一旦所有驗證者已簽名锈嫩,那么模板就會變成一個完整的區(qū)塊受楼。

如果在完成區(qū)塊時,某些選定的驗證者是不可用的呼寸,那么就選擇下一個勝出區(qū)塊艳汽,并選擇一組新的驗證者,依此類推对雪,直到區(qū)塊收到到正確數(shù)量的簽名河狐。費用由礦工和在區(qū)塊上簽名的驗證者分?jǐn)偂?/p>

對 PoActivity 的批評包括挖掘區(qū)塊耗能過高(與 PoW 一樣),以及無法阻止驗證者做雙重簽名(與 PoS 一樣)瑟捣。

16. 時間證明(PoTime馋艺,Proof of Time)

使用者Chronologic

解釋:PoTime 是一種由 Chronologic 提出的共識算法。Chronologic 設(shè)計構(gòu)建一種獨立的區(qū)塊鏈蝶柿,其首席開發(fā)人員提出:

我們的問題在于丈钙,Solidity 中一個變量可存儲的最大數(shù)是 1076 的數(shù)量級。這使我們很難處理時間生成和令牌生成交汤。
擴展閱讀Proof of Time

17. 存在證明(PoExistence雏赦,Proof of Existence)

使用者Poex.ioHeroNode芙扎、DragonChain星岗。

解釋:PoExistence 是一種在線服務(wù),它通過比特幣區(qū)塊鏈對交易打時間戳戒洼,驗證在特定時間是否存在計算機文件俏橘。

PoExistence 是作為一項開源項目在 2013 年提出的,由 Manuel Araoz 和 Esteban Ordano 開發(fā)圈浇。

用例:

  • 不泄露實際內(nèi)容的數(shù)字簽署協(xié)議(Digital Sign Agreement)寥掐。
  • 不泄露實際數(shù)據(jù),展示數(shù)據(jù)的屬主磷蜀。
  • 記錄時間戳召耘。
  • 證明屬主。
  • 檢查文檔完整性褐隆。

擴展閱讀Proof of Existence

18. Ouroboros

采用者Cardano

解釋:Ouroboros 是 Cardano 使用的共識算法污它。它是 PoS 的一個變種,具有嚴(yán)格的安全性保證。

擴展閱讀Ouroboros

19. 可收回證明(PoR衫贬,Proof of Retrievability)

采用者Microsoft

解釋:PoR 是一種緊湊證明德澈,表示文件系統(tǒng)(證明者)中的目標(biāo)文件 F 對客戶端(驗證者)而言是完整的。由于使用 PoR 比傳輸文件 F 本身而言具有更低的通信復(fù)雜性固惯,因此 PoR 對于構(gòu)建高可靠的遠(yuǎn)程存儲系統(tǒng)是一種頗具吸引力的構(gòu)建模塊梆造。作為一種共識算法,PoR 對于云計算系統(tǒng)非常有用缝呕。

在 “擴展閱讀” 中提供了更多詳細(xì)信息澳窑。

擴展閱讀Proof of Retrievability

20. 拜占庭容錯(Byzantine Fault Tolerance)

image

優(yōu)點

  • 高速斧散。
  • 可擴展供常。

不足

  • 通常用于私有網(wǎng)絡(luò)和許可網(wǎng)絡(luò)。

采用者Hyperledger Fabric鸡捐、Stellar栈暇、RippleDispatch

解釋:拜占庭將軍問題是分布式計算中的一個經(jīng)典問題箍镜。問題描述為源祈,幾位拜占庭將軍分別率領(lǐng)部隊合力包圍了一座城市。他們必須一致決定是否發(fā)起攻城色迂。如果一些將軍在沒有其他將軍參與的情況下決定發(fā)起攻城香缺,那么他們的行動將以失敗告終。將軍們之間相互隔著一定的距離歇僧,必須依靠信息傳遞進(jìn)行交流图张。 一些加密貨幣協(xié)議在達(dá)成共識時使用了特定版本的 BFT,每種版本都具有各自的優(yōu)缺點:

實用拜占庭容錯(PBFT诈悍,Practical Byzantine Fault Tolerance):首個提出的該問題解決方案稱為 “實用拜占庭容錯”(PBFT)祸轮,當(dāng)前已被 Hyperledger Fabric 采用。PBFT 使用了較少(少于 20 個侥钳,之后會稍有增加)的預(yù)選定將軍數(shù)适袜,因此運行非常高效。它的優(yōu)點是高交易通量和吞吐量舷夺,但是不足之處在于是中心化的苦酱,并用于許可網(wǎng)絡(luò)。

聯(lián)邦拜占庭協(xié)議(FBA给猾,F(xiàn)ederated Byzantine Agreement):另一類拜占庭將軍問題的解決方案是 FBA疫萤,已被 Stellar 和 Ripple 等代幣使用。FBA 的通用理念是每個拜占庭將軍負(fù)責(zé)自身的鏈耙册、消息一旦到來给僵,通過排序建立事實。在 Ripple 中,將軍(驗證者)是 Ripple 基金會預(yù)先選定的帝际。在 Stellar 中蔓同,任何人都可以成為驗證者,需要用戶選擇去相信哪個驗證者蹲诀。

由于 FBA 可提供令人難以置信的吞吐量斑粱、低交易開銷和網(wǎng)絡(luò)擴展性,我相信 FBA 類公式算法是目前提出的最好的分布式共識發(fā)現(xiàn)算法脯爪。

21. 授權(quán)拜占庭容錯算法(dBFT则北,Delegated Byzantine Fault Tolerance)

優(yōu)點

  • 快速。
  • 可擴展痕慢。

不足

  • 每個人都爭相成為根鏈尚揣。其中可能存在多個根鏈。

采用者Neo掖举。

解釋:授權(quán)拜占庭容錯算法快骗,簡稱 dBFT,是一種支持通過代理投票實現(xiàn)大規(guī)模參與共識的拜占庭容錯共識算法塔次。在 Neo 中方篮,令牌持有者可以通過投票選取其支持的 bookkeeper。之后励负,選定的 bookkeeper 組采用 BFT 算法達(dá)成共識藕溅,并生成新區(qū)塊。Neo 網(wǎng)絡(luò)中的投票是實時的继榆,而非因人而異的巾表。

dBFT 可為具有個共識節(jié)點的共識系統(tǒng)提供

image

容錯。這種容錯也涵蓋了安全性和可用性裕照、不受將軍和拜占庭錯誤影響攒发,并且適合任何網(wǎng)絡(luò)環(huán)境。dBFT 具有很好的最終性(finality)晋南,這意味著一旦最終確認(rèn)惠猿,區(qū)塊將不可分叉,交易將不可再撤銷或是回滾负间。

Neo 的 dBFT 機制生成一個區(qū)塊需 15 到 20 秒鐘偶妖。交易吞吐量測定約為 1000 TPS。這對于公共區(qū)塊鏈而言政溃,這是很好的性能趾访。通過一定優(yōu)化,dBFT 具有達(dá)到一萬 TPSS 的潛力董虱,這樣就可支持大規(guī)模的商業(yè)應(yīng)用扼鞋。

dBFT 中加入了數(shù)字身份技術(shù)申鱼,這意味著 bookkeeper 可以是真實的個人,也可以是某些機構(gòu)云头。因此捐友,dBFT 根據(jù)存在于其本身之中的司法判決,可以凍結(jié)溃槐、撤銷匣砖、繼承、檢索和擁有代幣兌換權(quán)昏滴。它有利于實現(xiàn)合規(guī)金融資產(chǎn)在 Neo 網(wǎng)絡(luò)中的注冊猴鲫。Neo 網(wǎng)絡(luò)從設(shè)計上,就是在必要時為此提供支持谣殊。

擴展閱讀dBFT

22. RAFT

image

優(yōu)點

  • 模型比 Paxos 更簡單拂共,但提供了同等的安全性。
  • 有多種語言的實現(xiàn)可用蟹倾。

不足

  • 通常用于私有網(wǎng)絡(luò)和許可網(wǎng)絡(luò)匣缘。

采用者IPFS Private Cluster猖闪、Quorum鲜棠。

解釋:Raft 是一種是設(shè)計用于替代 Paxos共識算法。它的本意就是通過實現(xiàn)邏輯分離培慌,比 Paxos 更易于理解豁陆。但是它也可以通過形式化證明是安全的,并提供了一些額外的特性吵护。Raft 提供一種在計算系統(tǒng)集群中實現(xiàn)分布狀態(tài)機的通用方式盒音,確保了集群中的每個節(jié)點在同一組狀態(tài)轉(zhuǎn)移上取得一致。它具有一系列的開源參考實現(xiàn)馅而,包括 Go祥诽、C++Java瓮恭、Scala 等語言的完全聲明實現(xiàn)雄坪。

Raft 通過選取領(lǐng)導(dǎo)者實現(xiàn)共識。在 Raft 集群中屯蹦,一個服務(wù)器可以是領(lǐng)導(dǎo)者(leader)维哈,也可以是追隨者(follower),也可以作為一些特定選舉情況下(例如缺少領(lǐng)導(dǎo)者)的候選者登澜。領(lǐng)導(dǎo)者負(fù)責(zé)向追隨者發(fā)送日志副本阔挠。領(lǐng)導(dǎo)者通過發(fā)送心跳消息,定期通知追隨者自身的存活情況脑蠕。每位追隨者維護(hù)一個超時(通常在 150 到 300 毫秒之間)购撼,正常情況下應(yīng)在此時間范圍內(nèi)收到領(lǐng)導(dǎo)者的心跳。一旦收到心跳,超時就會重置迂求。如果沒有收到心跳切揭,那么追隨者就將自身狀態(tài)更改為候選者,并開始領(lǐng)導(dǎo)者選舉锁摔。

為理解 RAFT廓旬,我強烈推薦該信息圖

擴展閱讀Raft谐腰。

23. 恒星共識(Stellar Consensus)

image

優(yōu)點

  • 去中心化控制孕豹。
  • 低延遲。
  • 靈活的信任機制十气。
  • 漸進(jìn)安全(Asymptotic security)励背。

采用者Stellar

解釋:恒星共識基于上文介紹的聯(lián)邦拜占庭共識(FBA)。

恒星共識協(xié)議(SCP砸西,Stellar Consensus Protocol)提供了一種不依賴閉合系統(tǒng)實現(xiàn)準(zhǔn)確記錄金融交易而達(dá)成共識的方法叶眉。SCP 具有一組可驗證的安全屬性,這些屬性根據(jù)如何安全地保持活力而做了優(yōu)化芹枷。一旦出現(xiàn)分區(qū)或不當(dāng)行為節(jié)點衅疙,它將會終止網(wǎng)絡(luò)過程,直至達(dá)成共識鸳慈。SCP 同時具備四種屬性:去中心控制饱溢、低延遲、靈活信任機制和漸進(jìn)安全走芋。

擴展閱讀Stellar Consensus

24. 置信度證明(PoB绩郎,Proof of Believability)

image

優(yōu)點

  • 通過使用一種稱為 “Servi” 的理念,PoB 比傳統(tǒng) PoS 更加去中心化(細(xì)節(jié)在下文給出)翁逞。
  • 相比于傳統(tǒng)的 PoS肋杖,具有更快的最終性(Finality)。

采用者IOST

解釋:傳統(tǒng)的 PoS 共識機制面臨的主要挑戰(zhàn)是趨向于中心化挖函。為了降低這種風(fēng)險状植,IOST 引入了 “Servi” 概念。Servi 不僅衡量了用戶對社區(qū)的貢獻(xiàn)挪圾,而且鼓勵成員為 IOSChain 的持續(xù)發(fā)展做出貢獻(xiàn)浅萧。Servi 具有以下屬性:

  • 不可交易性(Non-tradable):由于 Servi 并非設(shè)計作為一種交換媒介,因此 Servi 不能以任何方式交易或做交換哲思。
  • 自毀性(Self-destructive):驗證區(qū)塊后洼畅,系統(tǒng)將自動清除驗證者擁有的 Servi 余額。通過這種方式棚赔,具有高可信度分值的節(jié)點可輪流驗證區(qū)塊帝簇,確保了公平區(qū)塊的生成徘郭。
  • 自發(fā)行性(Self-issuance):Servi 在做出某些貢獻(xiàn)之后(例如,提供社區(qū)服務(wù)丧肴、估其他實體提供的服務(wù)残揉,以及其它一些特殊貢獻(xiàn)),將會自動生成并存入用戶帳戶芋浮。

傳統(tǒng)的區(qū)塊鏈系統(tǒng)在安全性和吞吐量間存在著固有的折衷抱环,具體取決于分片(shard)的大小。具有大量小分片的系統(tǒng)可提供更好的性能纸巷,但抵抗不良行為者的穩(wěn)定性低镇草,反之也是如此(這也是 Casper 面臨的一個問題)。為了在保持安全和提高吞吐量的情況下打破這種權(quán)衡瘤旨,IOST 創(chuàng)新性地提出了一種用于 IOSChain 的 PoB 共識協(xié)議梯啤。PoB 確保了節(jié)點產(chǎn)生行為不端的可能性微乎其微,同時通過確定分片規(guī)模(size-one-shard)存哲,顯著地提高了交易吞吐量因宇。

PoB 共識協(xié)議使用一種分片內(nèi) “可信度優(yōu)先” 的方法。該協(xié)議將所有的驗證者分為兩組祟偷,一組是可信的聯(lián)盟察滑,另一組是正常的聯(lián)盟。在第一階段肩袍,可信的驗證者快速地處理交易杭棵。之后在第二階段,普通驗證者對交易做抽樣并驗證氛赐,提供最終結(jié)果,確毕认希可驗證性艰管。節(jié)點被選入可信聯(lián)盟的機會是由可信度分值確定的〗ǎ可信度分值由多個因素計算牲芋,包括令牌余額、對社區(qū)的貢獻(xiàn)捺球、評論等缸浦。具有較高可信度分值的人,更有可能被選入可信聯(lián)盟氮兵』谭可信驗證者遵循一定的程序窒朋,決定已提交的交易及其訂單的集合,并按順序處理它們夺刑。可信驗證者也會構(gòu)成一些較小的組银亲,甚至可以每組一名驗證者。交易將在這些可信驗證者之間隨機分配。因此庭敦,PoB 會產(chǎn)生具有極低延遲的較小區(qū)塊。

但是薪缆,由于只有一個節(jié)點在執(zhí)行驗證秧廉,因此 PoB 可能會存在安全問題。行為不當(dāng)?shù)尿炞C者可能會提交一些已損壞的交易拣帽。為了解決這個安全問題定血,PoB 指定了一個采樣概率。普通驗證者根據(jù)概率對交易做采樣诞外,并檢測交易的不一致性澜沟。如果驗證者被檢測出存在不良行為,那么該驗證者將會失去所有系統(tǒng)中的令牌和聲譽峡谊,而被欺詐的用戶將獲得所有損失的補償茫虽。“可信度優(yōu)先” 使處理交易非臣让牵快濒析,因為只有一個(可信的)驗證者執(zhí)行驗證,并且該驗證者不太可能存在行為不端啥纸。

關(guān)于分片策略的更多信息号杏,可參閱 “擴展閱讀” 內(nèi)容。

擴展閱讀Proof of Believability

25. 有向無環(huán)圖(DAG斯棒,Directed Acyclic Graphs)

image

優(yōu)點

  • 由于 DAG 的非線性結(jié)構(gòu)盾致,它是高度可擴展的。
  • 快速荣暮。
  • 節(jié)能庭惜。
  • 立即實現(xiàn)終結(jié)性(Finality)。

不足

  • 只能通過使用 Oracle 實現(xiàn)智能合約穗酥。

采用者Iota护赊、HashGraphByteball砾跃、RaiBlocks/Nano骏啰。

解釋:DAG 是一種更通用形式的區(qū)塊鏈。由于其獨特結(jié)構(gòu)抽高,DAG 內(nèi)在支持高可擴展性判耕,因此也得到了廣泛的使用。

從根本上說厨内,任何區(qū)塊鏈系統(tǒng)都具有線性結(jié)構(gòu)祈秕,因為區(qū)塊是依次添加到鏈中的渺贤。這使得相比于并行向鏈中添加區(qū)塊,線性區(qū)塊鏈在本質(zhì)上是非常緩慢的请毛。但是對于 DAG 而言志鞍,每個區(qū)塊和交易只需數(shù)個前期區(qū)塊得到確認(rèn),就可以并行地添加到區(qū)塊和交易中方仿。這意味著固棚,DAG 在本質(zhì)上是高可擴展的。

DAG 存在多種變體仙蚜,取決于:

  • 如何選取前期區(qū)塊驗證的算法此洲,也稱為 “Tip 選擇算法”。
  • 交易完成的順序委粉。
  • 如何抵達(dá)完成狀態(tài)呜师。

下面列出一些廣為使用的 DAG 項目。

25.1 Tangle(IOTA)

image

解釋Tangle 是一種 DAG 共識算法贾节,由 IOTA 使用汁汗。為了發(fā)送一個 IOTA 交易,用戶需要驗證接收到的前兩個交易栗涂。在更多交易添加到 Tangle 的情況下知牌,這種二對一、前瞻性支付的共識可加強交易的有效性斤程。由于共識是由交易確定的角寸,因此理論上,如果有人可以生成三分之一的交易忿墅,那么他就可以說服網(wǎng)絡(luò)中的其余部分扁藕,使得他的無效交易變成有效的。一旦交易量足夠大球匕,使得個人難以創(chuàng)建三分之一交易量纹磺,這時 IOTA 就會在一個稱為 “協(xié)調(diào)器(The Coordinator)” 的中心節(jié)點上對網(wǎng)絡(luò)中的所有交易做 “復(fù)核”(double-checking)。按 ITOA 的說法亮曹,協(xié)調(diào)員的工作類似于輔助輪。一旦 Tangle 達(dá)到一定的規(guī)模秘症,協(xié)調(diào)員就會被從中移除照卦。

擴展閱讀Tangle

25.2 Hashgraph

image

解釋:Hashgraph 是由 Leemon Baird 開發(fā)的一種 Gossip 協(xié)議共識。節(jié)點隨機與其它節(jié)點共享自身已知的交易乡摹,最終所有交易都被以 Gossip 協(xié)議傳播到(Gossip around)到所有節(jié)點役耕。Hashgraph 對于私有網(wǎng)絡(luò)是一個很好的選擇。但我們并不會看到它實現(xiàn)在以太坊這樣的公共網(wǎng)絡(luò)中聪廉,或是不通過 Gossip 協(xié)議隨機傳播交易瞬痘。

擴展閱讀HashGraph

25.3 Holochain

解釋:Holochain 十分類似于 HashGraph故慈,但不同于 Hashgraph。它提供了一種可用于構(gòu)建去中心化應(yīng)用的數(shù)據(jù)結(jié)構(gòu)框全。用戶可以具有自己的鏈察绷,并向其中添加包括金融交易在內(nèi)的數(shù)據(jù)。鏈可以采用復(fù)雜的方式合并津辩、拆分和交互拆撼。數(shù)據(jù)以去中心化的方式存儲(類似于 Bittorrent)。數(shù)據(jù)具有一個哈希值喘沿,即一個對應(yīng)于數(shù)據(jù)的數(shù)學(xué)指紋闸度。如果有人意圖篡改數(shù)據(jù),那么我們就會注意到在數(shù)據(jù)和哈希值之間存在不匹配蚜印,這樣就可拒絕數(shù)據(jù)為無效的莺禁。數(shù)字簽名保證了數(shù)據(jù)的作者身份。Holochain 可看成是 “Bittorrent+git + 數(shù)字簽名”窄赋。

擴展閱讀HoloChain

25.4 Block-Lattice(Nano)

解釋:Nano(以前稱為 Raiblocks)是以纏繞在區(qū)塊鏈上的方式運行哟冬,這種方式被稱為 “塊狀格子”(Block-lattice)。在 Block-lattice 結(jié)構(gòu)中寝凌,每個用戶(地址)都有自己的鏈柒傻,只有用戶本身可寫,每個用戶都擁有所有鏈的副本较木。

image

每個交易都可分解為發(fā)送者鏈上的發(fā)送區(qū)塊红符,以及接收者鏈上的接收區(qū)塊。Block-lattice 看上似乎太簡單伐债,以至于無法工作预侯,但它已經(jīng)在實際運行了。Block-lattice 的獨特結(jié)構(gòu)的確無法抵制一些獨特的攻擊向量峰锁,例如 Penny-spend 攻擊萎馅。在這種攻擊中,攻擊者通過向大量空錢包發(fā)送數(shù)額可忽略不計的金錢虹蒋,導(dǎo)致必須要追蹤的鏈數(shù)量急劇膨脹糜芳。

擴展閱讀Nano

25.5 SPECTRE

解釋:SPECTRE,即 “序列化 PoW 事件并通過遞歸選舉確認(rèn)交易”(Serialization of Proof-of-work Events, Confirming Transactions via Recursive Elections)魄衅,是提議的一種 Bitcoin 擴展解決方案峭竣。它利用 PoW 和 DAG 的組合實現(xiàn)可擴展的共識。在 SPECTER 中晃虫,一個挖掘的區(qū)塊指向多個父節(jié)點皆撩,而不僅僅是單個節(jié)點,這使得網(wǎng)絡(luò)每秒可以處理多個區(qū)塊哲银。而挖掘指向某些父區(qū)塊的區(qū)塊扛吞,這將支持區(qū)塊的有效性呻惕。與 PoW 的“最長鏈勝出” 的原則相比,SPECTER 使用的原則可描述為“擁有最多子節(jié)點的區(qū)塊勝出”滥比。SPECTRE 尚未得到實際運行測試亚脆,因此可能會存在一些新的攻擊向量。但我認(rèn)為守呜,SPECTRE 很有可能成為一種修正 Bitcoin 問題的潛在好做法型酥。

擴展閱讀SPECTRE

25.6 ByteBall

解釋:ByteBall 使用 DAG 建立交易間的偏序關(guān)系,此外還在 DAG 中添加了 “主鏈”(MC查乒,Main Chain)弥喉。

image

圖 DAG 中加粗顯示的 “主鏈”

MC 允許在交易間定義全序關(guān)系,即更早加入(直接或間接)MC 的交易玛迄,必定更早出現(xiàn)在全序中由境。如果存在 “雙重支付” 問題,那么將視較早出現(xiàn)在全序中的交易版本為有效的蓖议,而其它所有的交易均被視為是無效的虏杰。

根據(jù)交易在圖中的位置,MC 可得到確定性的定義勒虾。相關(guān)詳細(xì)信息纺阔,請參閱白皮書。作為一般性規(guī)則修然,MC 傾向于采納由一些總所周知用戶所給出的交易笛钝,這樣的用戶被稱為 “證人”(Witnesses)。證人列表是由用戶自己定義的愕宋,因為列表中包括了用戶發(fā)布的每個交易玻靡。然后,MC 沿著 DAG 內(nèi)路徑推進(jìn)中贝。推進(jìn)原則包括:

  1. MC 上相鄰交易的證人列表要么完全相同囤捻,要么只存在一個突變。
  2. 與其它鏈相比邻寿,MC 中為經(jīng)過最多數(shù)量的由見證人認(rèn)證的交易蝎土。

ByteBall 也是首個在系統(tǒng)中包含 Oracle 的平臺。Oracle 是在 DAG 中添加智能合約功能所必需的绣否。

這里只給出了一些非常簡短和粗略的描述瘟则,其中省略了大量重要的細(xì)節(jié)。要整體了解相關(guān)技術(shù)枝秤,請參閱 ByteBall 白皮書。

擴展閱讀ByteBall

結(jié)束語

到此為止慷嗜。如果讀者發(fā)現(xiàn)其中有所遺漏淀弹,或是存在錯誤丹壕,歡迎在評論中留言。

感謝閱讀薇溃。

作者簡介

image

Vaibhav Saini 是一家由 MIT Cambridge Innovation Center 孵化的初創(chuàng)企業(yè) TowardsBlockchain 的聯(lián)合創(chuàng)始人菌赖。Saini 是一名高級區(qū)塊鏈開發(fā)人員,具有 Ethereum沐序、Quorum琉用、EOS、Nano策幼、Hashgraph邑时、IOTA 等多種區(qū)塊鏈平臺的工作經(jīng)驗。Saini 目前是德里印度理工學(xué)院(IIT Delhi)的一名大二學(xué)生特姐。

查看英文原文: ConsensusPedia: An Encyclopedia of 30 Consensus Algorithms --A complete list of all consensus algorithms.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晶丘,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子唐含,更是在濱河造成了極大的恐慌浅浮,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捷枯,死亡現(xiàn)場離奇詭異滚秩,居然都是意外死亡,警方通過查閱死者的電腦和手機淮捆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門郁油,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人争剿,你說我怎么就攤上這事已艰。” “怎么了蚕苇?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵哩掺,是天一觀的道長。 經(jīng)常有香客問我涩笤,道長嚼吞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任蹬碧,我火速辦了婚禮舱禽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘恩沽。我一直安慰自己誊稚,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著里伯,像睡著了一般城瞎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上疾瓮,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天脖镀,我揣著相機與錄音,去河邊找鬼狼电。 笑死蜒灰,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的肩碟。 我是一名探鬼主播强窖,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼腾务!你這毒婦竟也來了毕骡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤岩瘦,失蹤者是張志新(化名)和其女友劉穎未巫,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體启昧,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡叙凡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了密末。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片握爷。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖严里,靈堂內(nèi)的尸體忽然破棺而出新啼,到底是詐尸還是另有隱情,我是刑警寧澤刹碾,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布燥撞,位于F島的核電站,受9級特大地震影響迷帜,放射性物質(zhì)發(fā)生泄漏物舒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一戏锹、第九天 我趴在偏房一處隱蔽的房頂上張望冠胯。 院中可真熱鬧,春花似錦锦针、人聲如沸荠察。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽割粮。三九已至盾碗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間舀瓢,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工耗美, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留京髓,地道東北人。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓商架,卻偏偏與公主長得像堰怨,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蛇摸,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容