原文來自:http://www.infoq.com/cn/articles/consensuspedia-an-encyclopedia-of-29-consensus-algorithms
共識算法是所有區(qū)塊鏈 / DAG 的基礎,它們構成了區(qū)塊鏈 / DAG 平臺中的最重要部分玩裙。
如果沒有共識算法,我們得到只是一個不可寫的喴猎肌(dummy)數(shù)據(jù)庫。
我將在本文中盡可能列出所有主要的共識算法,評估各自的優(yōu)劣之處挑辆。如果讀者發(fā)現(xiàn)有所遺漏鳖藕,或是存在錯誤魔慷,希望能通過評論指出。此外吊奢,我個人也在逐步深入研究共識算法及其對經濟的影響民逼,為此本文也將做定期的更新。
另:本文假定讀者理解共識算法及其在區(qū)塊鏈中的重要性持寄。
下面列出 30 種共識算法菲茬。
1. 工作量證明(PoW,Proof of Work)
優(yōu)點:
- 自 2009 年以來得到了廣泛測試裹驰,目前依然得到廣泛的使用隧熙。
不足:
- 速度慢。
- 耗能巨大幻林,對環(huán)境不好贞盯。
- 易受 “規(guī)模經濟”(economies of scale)的影響。
使用者:Bitcoin沪饺、Ethereum躏敢、Litecoin、Dogecoin 等整葡。
類型:有競爭共識(Competitive consensus)件余。
解釋:PoW 是是首個共識算法。它是由中本聰在他的論文中提出的遭居,用于建立分布式無信任共識并識別 “雙重支付”(double spend)問題啼器。PoW 并非一個新理念,但是中本聰將 Pow 與加密簽名俱萍、Merkle 鏈和 P2P 網絡等已有理念結合端壳,形成一種可用的分布式共識系統(tǒng)。加密貨幣是這樣系統(tǒng)的首個基礎和應用枪蘑,因而獨具創(chuàng)新性损谦。
在 PoW 的工作方式中岖免,區(qū)塊鏈參與者(稱為 “礦工”)要在區(qū)塊鏈中添加一塊交易,必須解決某種“復雜但是無用” 的計算問題成翩。
本質上觅捆,這種做法可確保礦工花費了一些金錢或資源(礦機)完成工作,這表示了它們將不會損害區(qū)塊鏈系統(tǒng)麻敌,因為對系統(tǒng)的損害也將會導致投資的損失栅炒,進而損害他們自身。
為保證運行區(qū)塊時間不變术羔,問題的復雜性會發(fā)生變化赢赊。有時,會存在多名礦工同時解決了問題级历。在這種情況下释移,每位礦工從中選取一個區(qū)塊鏈,并以選取最長鏈者為獲勝者寥殖。因此玩讳,如果假定大多數(shù)礦工工作在同一個鏈上,那么成長最快的鏈將成為最長和最值得信任的鏈嚼贡。這樣熏纯,只要由礦工提交的工作有超過一半是值得信任的,那么 Bitcoin 就是安全的粤策。
擴展閱讀: Proof of work
2. 權益證明(PoS樟澜,Proof of Stake)
優(yōu)點:
- 節(jié)能。
- 攻擊者代價更大叮盘。
- 不易受 “規(guī)模經濟” 的影響秩贰。
不足:
- “無利害關系 “(Nothing at stake)” 攻擊問題。
使用者:Ethereum(即將推出)柔吼、Peercoin毒费、Nxt。
類型:有競爭共識愈魏。
解釋:PoS 是作為** Pow 的替代技術**提出的蝗罗,意在解決 PoW 的一些內在問題。PoS 沒有使用挖礦方法蝌戒,而是用戶必須具有系統(tǒng)中的一些權益(幣)。因此沼琉,如果用戶擁有 10% 的權益(代幣)北苟,那么該用戶挖掘下一個區(qū)塊的可能性就是 10%。
挖礦為解決計算上的挑戰(zhàn)打瘪,需要運行各種加密計算友鼻,這需要耗費大量的算力傻昙。算力將轉變?yōu)?PoW 所需的大量電能。據(jù)估計在 2015 年時彩扔,一個 Bitcoin 交易所需的電力妆档,可達 1.57 個美國家庭一日所需的電力。PoS 的提出是為了節(jié)約電力耗費虫碉。
在 PoS 中贾惦,一個美元就是一個美元。例如敦捧,假定有一萬名每位每分鐘花費 1 美元(一年 8760 萬美元)的礦工须板,要比一位具有每分鐘花費一萬美元挖掘礦池能力的礦工擁有更少的哈希能力(Hashing Power)。但是在 PoS 中不支持一次用光所有算力兢卵,一美元就是一美元习瑰。因此 PoS 不易受 “規(guī)模經濟” 的影響。
此外秽荤,攻擊 PoS 系統(tǒng)也要比攻擊 PoW 系統(tǒng)的代價更大甜奄。引用 Vlad Zamfir 的說法:
在 PoS 中,重復 51% 攻擊的代價窃款,可類比為每額外運行一輪课兄,都會 “燒毀你的 ASIC 農場”。
這意味著雁乡,每次攻擊 PoS 系統(tǒng)第喳,攻擊者都會失去自己的權益。而在 PoW 中踱稍,攻擊者不會丟失挖礦設備曲饱,或是代幣。對 PoW 系統(tǒng)的攻擊只會使攻擊本身難以執(zhí)行珠月。
但是 PoS 會在** “無厲害關系”** 上出問題扩淀。這種對多個區(qū)塊歷史(forks)投票的方式不會讓區(qū)塊生成器有任何損失,進而阻礙了達成共識啤挎。
在 PoS 中驻谆,你可以在區(qū)塊鏈的雙方押注資產(“無厲害關系” 問題)。而在 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)模式下弥雹,必須校準不同節(jié)點(公證員或正常節(jié)點)的哈希率,否則哈希率間的差異會爆炸(下文將給出詳細解釋)延届。
采用者:Komodo
類型:協(xié)同型共識(Collaborative consensus)
解釋:dPoW 是一種混合共識方法剪勿,允許一個區(qū)塊鏈利用第二個區(qū)塊鏈的哈希算力(Hashing Power)所提供的安全。該機制是通過一組公證員節(jié)點(Notary Node)實現(xiàn)的方庭。公證員節(jié)點實現(xiàn)將第一個區(qū)塊鏈的數(shù)據(jù)添加到第二個區(qū)塊鏈中厕吉。進而,第二個區(qū)塊鏈請求在兩個區(qū)塊鏈間達成妥協(xié)械念,弱化第一個區(qū)塊鏈的安全头朱。Komodo 是首個使用該共識方法的區(qū)塊鏈,它就是附加于 Bitcoin 區(qū)塊鏈之上的龄减。
使用 dPoW 的區(qū)塊鏈也可以使用 PoW 或 PoS 共識方法工作项钮,并可以附加在任何采用 PoW 的區(qū)塊鏈上。但對于由 dPoW 提供安全的區(qū)塊鏈希停,當前 Bitcoin 給出了最高安全層級的哈希率烁巫。下圖展示了主區(qū)塊鏈的單個記錄以及其所附著的 PoW 區(qū)塊鏈。
圖片來源:https://wiki.komodoplatform.com/wiki/Delayed_Proof_of_Work_%28dPoW%29
dPoW 系統(tǒng)中有兩種類型的節(jié)點:公證人節(jié)點和正常節(jié)點宠能。64 個公證人節(jié)點是由 dPoW 區(qū)塊鏈的權益持有者(stakeholder)選舉產生的亚隙,它們可從 dPoW 區(qū)塊鏈向所附加的 PoW 區(qū)塊鏈添加經公證確認的塊。一旦添加了一個塊违崇,該塊的哈希值將被添加到由 33 個公證人節(jié)點簽署的 Bitcoin 交易中阿弃,并創(chuàng)建一個哈希到 Bitcoin 區(qū)塊鏈的 dPow 塊記錄。該記錄已被網絡中的大多數(shù)公證人節(jié)點公證羞延。
為避免公證人節(jié)點間在挖礦上產生戰(zhàn)爭渣淳,進而降低網絡的效率,Komodo 設計了一種采用輪詢機制的挖礦方法伴箩。該方法具有兩種運行模式水由。在 “無公證人”(No Notary)模式下,支持所有網絡節(jié)點參與挖礦,這類似于傳統(tǒng) PoW 共識機制砂客。而在“公證人激活”(Notaries Active)模式下,網絡公證人使用一種顯著降低的網絡難度率挖礦呵恢【现担“公證人激活” 模式下,允許每位公證人使用其當前的難度挖掘一個區(qū)塊渗钉,而其它公證人節(jié)點必須采用 10 倍難度挖礦彤恶,所有正常節(jié)點使用公證人節(jié)點難度的 100 倍挖礦。
但這會導致一些問題鳄橘。我在與 Komodo 創(chuàng)始人的一次談話中提及声离,這將導致公證人礦工和正常礦工間的哈希率存在很高的差異:
圖 本文作者與 Komodo 創(chuàng)始人間就不一致性問題進行交流的截圖
dPoW 系統(tǒng)在設計上支持區(qū)塊鏈在沒有公證人節(jié)點的情況下繼續(xù)運行。在這種情況下瘫怜,dPoW 區(qū)塊鏈可以基于初始的共識方法繼續(xù)運行术徊,但將不再具有所附著區(qū)塊鏈增添的安全。
圖片來源: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ù)運行。這種相互獨立性建立了一種獎勵機制浪漠,使得其它網絡無需依賴于 Bitcoin 網絡的直接功能陕习,即可支持 Bitcoin 網絡的繼續(xù)維護。
4. 授權 PoS(DPoS址愿,Delegated Proof-of-Stake)
優(yōu)點:
- 節(jié)能该镣。
- 快速。高流量博客網站 Steemit 就使用了它响谓。EOS 的塊時間是 0.5 秒损合。
不足:
- 略為中心化省艳。
- 擁有高權益的參與者可投票使自己成為一名驗證者。這是近期已在 EOS 中出現(xiàn)的問題嫁审。
采用者:BitShares跋炕、Steemit、EOS律适、Lisk辐烂、Ark。
類型:協(xié)同型共識
解釋:在 DPoS 系統(tǒng)中捂贿,權益持有者可以選舉領導者(或稱為見證人纠修,Witness)。經權益持有者授權厂僧,這些領導者可進行投票扣草。該機制使得 DPoS 要快于正常的 PoS。
例如吁系,EOS 中選舉出 21 位見證人德召,并且有一堆節(jié)點(潛在的見證人)作為候選者。一旦見證人節(jié)點死亡或是做出了惡意行為汽纤,新節(jié)點就會立刻替代見證人節(jié)點上岗。見證人會因為生成區(qū)塊而獲得一筆支付費用。該費用是由權益持有者設立的 蕴坪。
通常肴掷,所有節(jié)點采用輪詢方式,一次生成一個區(qū)塊背传。該機制防止一個節(jié)點發(fā)布連續(xù)的塊呆瞻,進而執(zhí)行 “雙重支付” 攻擊。如果一個見證人在分配給他的時間槽中未生成區(qū)塊径玖,那么該時間槽就被跳過痴脾,并由下一位見證人生成下一個區(qū)塊。如果見證人持續(xù)丟失他的區(qū)塊梳星,或是發(fā)布了錯誤的交易赞赖,那么權益持有者將投票決定其退出,用更好的見證人替換他冤灾。
在 DPoS 中前域,礦工可以合作生成塊,而不是像在 PoW 和 PoS 中那樣競爭生成韵吨。通過區(qū)塊生成的部分中心化匿垄,DPoS 的運行可以比其它共識算法呈數(shù)量級快。EOS(使用了 DPoS)是首個實現(xiàn) 0.5 秒生成塊的區(qū)塊鏈!
這非炒涣疲快漏峰!
5. 權威證明(PoA,Proof-of-Authority)
優(yōu)點:
- 節(jié)能变丧。
- 快速芽狗。
不足:
- 略為中心化。雖然可用于公有區(qū)塊鏈痒蓬,但是通常用于私有區(qū)塊鏈和許可區(qū)塊鏈。
使用者:POA.Network滴劲、Ethereum Kovan testnet攻晒、VeChain。
類型:協(xié)同型共識班挖。
解釋:基于 PoA 的網絡鲁捏、事務和區(qū)塊,是由一些經認可的賬戶認證的萧芙,這些被認可的賬戶稱為 “驗證者”(Validator)给梅。驗證者運行的軟件,支持驗證者將交易(transaction)置于區(qū)塊中双揪。該過程是自動的动羽,無需驗證者持續(xù)監(jiān)控計算機,但需要維護計算機(權威節(jié)點)不妥協(xié)(uncompromised)渔期。
驗證者必須滿足以下三個條件:
- 其身份必須在鏈上得到正式驗證运吓,信息可在公有可用域中交叉驗證。
- 其資格必須難以獲得疯趟,這樣所得到的驗證塊的權利才彌足珍貴(例如拘哨,潛在的驗證者需要獲得公證書)。
- 建立權威的檢查和程序必須完全統(tǒng)一信峻。
使用 PoA倦青,每個個體都具有變成驗證者的權利,因此存在一旦獲取就保持驗證者位置的動機盹舞。通過對身份附加一個聲譽产镐,可以鼓勵驗證者去維護交易的過程。因為驗證者并不希望讓自己獲得負面聲譽矾策,這會使其失去來之不易的驗證者地位磷账。
擴展閱讀:Proof of Authority
6. 權重證明(PoWeight,Proof-of-Weight)
優(yōu)點:
- 節(jié)能贾虽。
- 高度可定制和可擴展
不足:
- 可能難以實現(xiàn)激勵逃糟。
采用者:Algorand。
類型:有競爭共識。
解釋:權重證明(PoWeight)是一類很寬泛的共識算法绰咽,它基于 Algorand 共識模型菇肃。其基本理念是在 PoS 中,用戶所擁有的網絡中令牌的百分比取募,表示了該用戶 “發(fā)現(xiàn)” 下一個區(qū)塊的概率琐谤。PoWeight 系統(tǒng)中還使用了其它一些相對加權值,實現(xiàn)包括聲望證明(PoR玩敏,Proof of Reputation)和空間證明(Proof of Space)斗忌。
擴展閱讀:Proof of Weight
7. 聲譽證明(PoR,Proof of Reputation)
優(yōu)點:
- 非常適用于私有區(qū)塊鏈和許可區(qū)塊鏈旺聚。
不足:
- 只能用于私有區(qū)塊鏈和許可區(qū)塊鏈织阳。
采用者:GoChain。
類型:協(xié)同型共識砰粹。
解釋:PoR 類似于 PoA唧躲。GoChain 文檔中給出了如下描述:
PoR 共識模型依賴參與者在保持網絡安全中的聲譽。參與者(區(qū)塊簽名者)必須具有足夠重要的聲譽碱璃。一旦他們嘗試欺騙系統(tǒng)弄痹,那么他們將要面對嚴重的財政上的和自己名聲上的后果。這是一個相對的概念嵌器,如果他們被抓到試圖欺騙肛真,那么幾乎所有的業(yè)務將會受到嚴重的影響。規(guī)模越大的企業(yè)嘴秸,通常將會失去更多毁欣。這樣,相比使用更少的企業(yè)(即更小規(guī)模的商業(yè))岳掐,規(guī)模更大的企業(yè)更易于被選定凭疮。
一旦一個企業(yè)證明了自己的聲譽,并通過了驗證串述,那么他們必須經投票參與到權威節(jié)點網絡中执解。這時,PoR 的操作與 PoA 網絡一樣纲酗,即只有權威節(jié)點可以簽名并驗證區(qū)塊衰腌。
在 “擴展閱讀” 中提供了更多詳細信息。
擴展閱讀:Proof of Reputation
8. 所用時間證明(PoET觅赊,Proof of Elapsed Time)
優(yōu)點:
- 參與代價低右蕊。更多人可輕易加入,進而達到去中心化吮螺。
- 對于所有參與者而言饶囚,更易于驗證領導者是通過合法選舉產生的症脂。
- 控制領導者選舉過程的代價叶堆,是與從中獲得的價值成正比的。
不足:
- 盡管 PoET 的代價低塑荒,但是必須要使用特定的硬件迎吵。因此不會被大規(guī)模采納火邓。
- 不適用于公有區(qū)塊鏈空厌。
類型:有競爭共識
解釋:PoET 共識機制算法通常用于許可區(qū)塊鏈網絡堤器,它可決定網絡中獲得區(qū)塊者的挖礦權利。許可區(qū)塊鏈網絡需要任何預期參與者在加入前驗證身份歇万。根據(jù)公平彩票系統(tǒng)的原則揩晴,每個節(jié)點具有同等的可能成為勝出者。PoET 機制賦予大量可能的網絡參與者以平等勝出的機會贪磺。
PoET 的工作機制如下:網絡中的每位參與節(jié)點都必須等待一個隨機選取的時期文狱,首個完成設定等待時間的節(jié)點將獲得一個新區(qū)塊。區(qū)塊鏈網絡中的每個節(jié)點會生成一個隨機的等待時間缘挽,并休眠一個設定的時間。最先醒來的節(jié)點呻粹,即具有最短等待時間的節(jié)點壕曼,喚醒并向區(qū)塊鏈提交一個新區(qū)塊,然后廣播必要的信息到整個對等網絡中等浊。同一過程將會重復腮郊,以發(fā)現(xiàn)下一個區(qū)塊。
在 PoET 網絡共識機制中筹燕,需要確保兩個重要因素轧飞。第一,參與節(jié)點在本質上會自然地選取一個隨機的時間撒踪,而非某一個參與者為勝出而刻意選取了較短的時間过咬。第二,勝出者的確完成了等待時間制妄。
PoET 理念是由著名的芯片制造巨頭 Intel 于 2016 年早期提出的掸绞。Intel 為解決 “隨機領導者選舉” 的計算問題,實現(xiàn)了一個可用的高科技工具耕捞。
這種內在機制允許應用在受保護的環(huán)境中執(zhí)行受信任的代碼衔掸,它確保了上面提出的兩個要求得到滿足畜普,即隨機選擇所有參與節(jié)點的等待時間糙臼,以及勝出參與者真正完成了等待時間。
這種在安全環(huán)境中運行可信代碼的機制也同時考慮到了其它一些網絡的需求糕珊。它確保了受信代碼的確運行在安全環(huán)境中磷斧,并不可被其它外部參與者更改振愿。它也確保了結果可被外部參與者和實體驗證捷犹,進而提高了網絡共識的透明度。
PoET 通過控制代價實現(xiàn)了共識過程埃疫,該代價依然是與從過程中獲得的價值成正比伏恐。這是保證加密貨幣經濟持續(xù)繁榮的一個關鍵需求。
9. 容量證明(PoC栓霜,Proof of Capacity)翠桦,也稱為空間證明(PoSpace,Proof of Space)
優(yōu)點:
- 它類似于 PoW胳蛮,只是使用空間替代了計算销凑。因此更加環(huán)境友好。
- 可用于惡意軟件檢測仅炊。通過確定處理器的 L1 緩存是否為空(例如斗幼,具有足夠空間在沒有緩存未命中的情況下計算 PoSpace 過程),或是包含一個拒絕被逐出(evicted)的例程抚垄。
- 可用于反垃圾郵件措施蜕窿,以及防范拒絕服務(DoS)攻擊。
不足:
- 激勵機制可能存在問題呆馁。
使用者: Burstcoin桐经、Chia、SpaceMint浙滤。
類型:協(xié)同型共識阴挣。
解釋:PoSpace,也稱為 PoC纺腊,通過分配一定數(shù)量的內存或磁盤空間用于解決服務提供者所提供挑戰(zhàn)的方式畔咧,顯示了某個人對某個服務(例如發(fā)送郵件)具有合法的興趣。該理念是由 Dziembowski 等在 2015 年形式化定義的揖膜。雖然 Ateniese 等人的論文名稱也是 “Proof-of-space”誓沸,但它事實上一種采用 MHF(Memory Hard Function,一種計算代價取決內存的哈希算法)的 PoW 協(xié)議次氨。
PoSpace 非常類似于 PoW蔽介,只是使用存儲替代了 Pow 中的計算。PoSpace 與 MHF 和可回收性證明(PoR煮寡,Proof of Retrievability)有關虹蓄,但也在很大程度上存在著差異。
PoSpace 是由證明者 (Prover) 發(fā)送給驗證者 (Verifier) 的一小塊數(shù)據(jù)幸撕,該數(shù)據(jù)確認了證明者已經保留了一定量的空間薇组。出于實用性上的考慮,驗證過程需要盡量高效坐儿,即消耗盡可能少的空間和時間律胀。出于公平性上的考慮宋光,如果驗證者沒有保留所聲明數(shù)量的空間,那么它應該難以通過驗證炭菌。PoSpace 的一種實現(xiàn)方式是通過使用一個難以實現(xiàn) Pebbling 的圖罪佳。驗證者請求證明者構建對一個“非 Pebbling 圖” 標記。證明者提交標記黑低,進而驗證者請求證明者在提交中開放多個隨機位置赘艳。
由于存儲的通用本質,以及存儲所需的更低耗能克握,PoSpace 被認為是一種更公平蕾管、更綠色的替換方法。
擴展閱讀:Proof of Space
10. 歷史證明(PoHistory菩暗,Proof of History)
采用者:Solana
解釋:其基本理念是不相信交易中的時間戳掰曾,而是證明交易在某個事件之前或之后的某個時刻發(fā)生。
如果我們對某期《紐約時報》的封面拍了張照片停团,那么我們就創(chuàng)建了一個證明旷坦,即我們的拍照時間是在該報紙發(fā)行之后,或許也可能是我們有某種途徑影響了紐約時報的正常發(fā)行佑稠。我們可以使用 PoHistory 創(chuàng)建一個歷史記錄塞蹭,證明一個事件是發(fā)生在特定時間之后的。
PoHistory 是一種高頻可驗證延遲函數(shù)(VDF讶坯,Verifiable Delay Function)。VDF 求值需要完成特定數(shù)量的順序步驟岗屏,然后生成一個唯一的輸出辆琅。該輸出可被高效地和公開地驗證。
VDF 的一個特定實現(xiàn)使用了持續(xù)運行于其上的順序抗預映射哈希(Pre-image Resistant Hash)这刷,其中前一次循環(huán)生成的輸出將用于下一次循環(huán)的輸入婉烟。計數(shù)和當前輸出形成周期性記錄。
如果使用了 SHA256 哈希函數(shù)暇屋,那么不使用 2128 核的暴力攻擊似袁,該過程是不可能并行化的。
因此我們可以確認咐刨,每個計數(shù)器在生成過程中都的確經歷了一定的時間昙衅。進而,每個計數(shù)器記錄的順序與實時情況是一致的定鸟。
在 “擴展閱讀” 中提供了更多詳細信息而涉。
擴展閱讀:Proof of History
11. 權益流通證明(PoSV,Proof of Stake Velocity)
采用者:Reddcoin
解釋:PoSV 是作為 PoW 和 PoS 的一種替代方法而提出的联予,其目的是提高 P2P 網絡的安全性啼县,進而用于確認 Reddcoin 交易材原。Reddcoin 是一種加密貨幣,專為加速數(shù)字化時代的社交交互而提出的季眷。PoSV 在設計上鼓勵所有者(權益)和活動(流通)余蟹,直接對應于 Reddcoin 作為真實貨幣的兩個主要功能,即存儲價值和交換中介子刮。Reddcoin 也可在異構社交場景中作為計量單位使用威酒。
在 “擴展閱讀” 中提供了更多詳細信息。
12. 重要性證明(PoImportance话告,Proof of Importance)
優(yōu)點:
- 在權益計算方面要優(yōu)于 PoS兼搏。
使用者:NEM
解釋:NEM 共識網絡不僅依賴于代幣的數(shù)量,而且依賴于生成系統(tǒng)行動得到回報的可能性沙郭。區(qū)塊收益機率是各種因素之一佛呻,此外還包括不好的名聲(受控于不同的框架設計目的)、差額病线,以及從該處做出和得到的交易數(shù)量吓著。它也被稱為 “重要性計算”(Importance Calculation),因為它可為“有用的” 系統(tǒng)成員提供更全面的圖像送挑。
一名用戶要具有資格執(zhí)行重要性計算绑莺,其賬戶余額至少需要為 10000 枚 XEM√韪考慮到只有不到 90 億枚 XEM 在流通纺裁,實現(xiàn)這一目標并非過于昂貴。在未來 10000 枚 XEM 的閾值有可能會發(fā)生變化司澎,但就目前而言欺缘,它仍然沒有變化。重要性計算是使用特定算法完成的挤安,而不僅僅考慮用戶份額的概率和規(guī)模谚殊。
需要指出的是,NEM 的 PoImportance 對任何操控都具有抵制力蛤铜。該共識的底層機制可緩解女巫攻擊(Sybil Attack)和循環(huán)攻擊問題嫩絮。謹記,“PoImportance 并非 PoS”围肥,盡管兩者很容易被同等看待剿干。
擴展閱讀:Proof of Importance
13. 燒毀證明(PoBurn,Proof of Burn)
采用者:Slimcoin穆刻、TGCoin(第三代代幣)怨愤。
解釋:PoBurn 并非在昂貴的計算設備上一擲千金,而通過發(fā)送代幣到一個不可檢索地址實現(xiàn) “燒錢”(Burn)蛹批。將代幣發(fā)送到一個并不存在的地址撰洗,用戶將根據(jù)某個隨機選擇過程篮愉,獲得整個生命時間內對系統(tǒng)挖礦的特權。
PoBurn 有多種實現(xiàn)方式差导,礦工可以燒毀原生的貨幣试躏,或者燒毀一些其它區(qū)塊鏈的貨幣,例如比特幣等设褐。燒毀的代幣越多颠蕴,用戶就越有機會被選中去挖掘下一個區(qū)塊。
隨時間的流逝助析,用戶在系統(tǒng)的權益會得到弱化犀被。因此,最終用戶為增加在這個博彩中被選中的機會外冀,會考慮燒掉更多的代幣(這可類比于比特幣的挖礦過程寡键,用戶必須不斷投資更現(xiàn)代的計算設備以維持哈希能力)。
盡管 PoBurn 是一種有意思的 PoW 替代者雪隧,但是該協(xié)議依然會毫無必要地浪費資源西轩。另一個批評是,挖礦能力只會偏向于那些愿意燒掉更多錢的人脑沿。
14. 身份證明(PoI藕畔,Proof of Identity)
解釋:PoI 是一塊表示了加密事實的數(shù)據(jù)。它支持用戶指定一個私鑰庄拇,并對應到一個經認證的身份注服,加密將附著到一個指定的交易。來自于某些組中的每個個體都可以創(chuàng)建 PoF(因為它只是一塊數(shù)據(jù))措近,并將該數(shù)據(jù)展示給其它任何處理節(jié)點的人祠汇。
擴展閱讀:Proof of Identity
15. 活動證明(PoActivity,Proof Of Activity)
使用者:Decred
解釋:為避免出現(xiàn)惡性通貨膨脹(當大量貨幣充斥系統(tǒng)時就會發(fā)生)熄诡,比特幣將只生成兩千一百萬枚。這意味著诗力,在某些時候凰浮,比特幣區(qū)塊獎勵補貼將終止,比特幣礦工將只能收取交易費用苇本。
一些人猜測這可能會導致由 “公地悲勍嗉搿(Tragedy of the commons)” 所引發(fā)的安全問題,人們出于自身利益考慮行事并破壞系統(tǒng)瓣窄。因此笛厦,人們提出了 PoActivity 作為一種替代 Bitcoin 的激勵結構。PoActivity 是一種結合了 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ū)塊上簽名的驗證者分攤荞雏。
對 PoActivity 的批評包括挖掘區(qū)塊耗能過高(與 PoW 一樣),以及無法阻止驗證者做雙重簽名(與 PoS 一樣)平酿。
16. 時間證明(PoTime凤优,Proof of Time)
使用者:Chronologic
解釋:PoTime 是一種由 Chronologic 提出的共識算法。Chronologic 設計構建一種獨立的區(qū)塊鏈蜈彼,其首席開發(fā)人員提出:
我們的問題在于筑辨,Solidity 中一個變量可存儲的最大數(shù)是 1076 的數(shù)量級。這使我們很難處理時間生成和令牌生成幸逆。
擴展閱讀:Proof of Time
17. 存在證明(PoExistence罐氨,Proof of Existence)
使用者:Poex.io漫雕、HeroNode炮姨、DragonChain冈涧。
解釋:PoExistence 是一種在線服務,它通過比特幣區(qū)塊鏈對交易打時間戳拍顷,驗證在特定時間是否存在計算機文件抚太。
PoExistence 是作為一項開源項目在 2013 年提出的,由 Manuel Araoz 和 Esteban Ordano 開發(fā)。
用例:
- 不泄露實際內容的數(shù)字簽署協(xié)議(Digital Sign Agreement)尿贫。
- 不泄露實際數(shù)據(jù)电媳,展示數(shù)據(jù)的屬主。
- 記錄時間戳帅霜。
- 證明屬主匆背。
- 檢查文檔完整性。
擴展閱讀:Proof of Existence
18. Ouroboros
采用者:Cardano
解釋:Ouroboros 是 Cardano 使用的共識算法身冀。它是 PoS 的一個變種钝尸,具有嚴格的安全性保證。
擴展閱讀:Ouroboros
19. 可收回證明(PoR搂根,Proof of Retrievability)
采用者:Microsoft
解釋:PoR 是一種緊湊證明珍促,表示文件系統(tǒng)(證明者)中的目標文件 F 對客戶端(驗證者)而言是完整的。由于使用 PoR 比傳輸文件 F 本身而言具有更低的通信復雜性剩愧,因此 PoR 對于構建高可靠的遠程存儲系統(tǒng)是一種頗具吸引力的構建模塊猪叙。作為一種共識算法,PoR 對于云計算系統(tǒng)非常有用仁卷。
在 “擴展閱讀” 中提供了更多詳細信息穴翩。
20. 拜占庭容錯(Byzantine Fault Tolerance)
優(yōu)點:
- 高速。
- 可擴展锦积。
不足:
- 通常用于私有網絡和許可網絡芒帕。
采用者:Hyperledger Fabric、Stellar丰介、Ripple背蟆、Dispatch
解釋:拜占庭將軍問題是分布式計算中的一個經典問題。問題描述為哮幢,幾位拜占庭將軍分別率領部隊合力包圍了一座城市带膀。他們必須一致決定是否發(fā)起攻城。如果一些將軍在沒有其他將軍參與的情況下決定發(fā)起攻城橙垢,那么他們的行動將以失敗告終垛叨。將軍們之間相互隔著一定的距離,必須依靠信息傳遞進行交流柜某。 一些加密貨幣協(xié)議在達成共識時使用了特定版本的 BFT嗽元,每種版本都具有各自的優(yōu)缺點:
實用拜占庭容錯(PBFT,Practical Byzantine Fault Tolerance):首個提出的該問題解決方案稱為 “實用拜占庭容錯”(PBFT)莺琳,當前已被 Hyperledger Fabric 采用。PBFT 使用了較少(少于 20 個载慈,之后會稍有增加)的預選定將軍數(shù)惭等,因此運行非常高效。它的優(yōu)點是高交易通量和吞吐量办铡,但是不足之處在于是中心化的辞做,并用于許可網絡琳要。
聯(lián)邦拜占庭協(xié)議(FBA,F(xiàn)ederated Byzantine Agreement):另一類拜占庭將軍問題的解決方案是 FBA秤茅,已被 Stellar 和 Ripple 等代幣使用稚补。FBA 的通用理念是每個拜占庭將軍負責自身的鏈、消息一旦到來框喳,通過排序建立事實课幕。在 Ripple 中,將軍(驗證者)是 Ripple 基金會預先選定的五垮。在 Stellar 中乍惊,任何人都可以成為驗證者,需要用戶選擇去相信哪個驗證者放仗。
由于 FBA 可提供令人難以置信的吞吐量润绎、低交易開銷和網絡擴展性,我相信 FBA 類公式算法是目前提出的最好的分布式共識發(fā)現(xiàn)算法诞挨。
21. 授權拜占庭容錯算法(dBFT莉撇,Delegated Byzantine Fault Tolerance)
優(yōu)點:
- 快速。
- 可擴展惶傻。
不足:
- 每個人都爭相成為根鏈棍郎。其中可能存在多個根鏈。
采用者:Neo达罗。
解釋:授權拜占庭容錯算法坝撑,簡稱 dBFT,是一種支持通過代理投票實現(xiàn)大規(guī)模參與共識的拜占庭容錯共識算法粮揉。在 Neo 中巡李,令牌持有者可以通過投票選取其支持的 bookkeeper。之后扶认,選定的 bookkeeper 組采用 BFT 算法達成共識侨拦,并生成新區(qū)塊。Neo 網絡中的投票是實時的辐宾,而非因人而異的狱从。
dBFT 可為具有個共識節(jié)點的共識系統(tǒng)提供容錯。這種容錯也涵蓋了安全性和可用性叠纹、不受將軍和拜占庭錯誤影響季研,并且適合任何網絡環(huán)境。dBFT 具有很好的最終性(finality)誉察,這意味著一旦最終確認与涡,區(qū)塊將不可分叉,交易將不可再撤銷或是回滾。
Neo 的 dBFT 機制生成一個區(qū)塊需 15 到 20 秒鐘驼卖。交易吞吐量測定約為 1000 TPS氨肌。這對于公共區(qū)塊鏈而言,這是很好的性能酌畜。通過一定優(yōu)化怎囚,dBFT 具有達到一萬 TPSS 的潛力,這樣就可支持大規(guī)模的商業(yè)應用桥胞。
dBFT 中加入了數(shù)字身份技術恳守,這意味著 bookkeeper 可以是真實的個人,也可以是某些機構埠戳。因此井誉,dBFT 根據(jù)存在于其本身之中的司法判決,可以凍結整胃、撤銷颗圣、繼承、檢索和擁有代幣兌換權屁使。它有利于實現(xiàn)合規(guī)金融資產在 Neo 網絡中的注冊在岂。Neo 網絡從設計上,就是在必要時為此提供支持蛮寂。
擴展閱讀:dBFT
22. RAFT
優(yōu)點:
- 模型比 Paxos 更簡單蔽午,但提供了同等的安全性。
- 有多種語言的實現(xiàn)可用酬蹋。
不足:
- 通常用于私有網絡和許可網絡及老。
采用者:IPFS Private Cluster、Quorum范抓。
解釋:Raft 是一種是設計用于替代 Paxos 的共識算法骄恶。它的本意就是通過實現(xiàn)邏輯分離,比 Paxos 更易于理解匕垫。但是它也可以通過形式化證明是安全的僧鲁,并提供了一些額外的特性。Raft 提供一種在計算系統(tǒng)集群中實現(xiàn)分布狀態(tài)機的通用方式象泵,確保了集群中的每個節(jié)點在同一組狀態(tài)轉移上取得一致寞秃。它具有一系列的開源參考實現(xiàn),包括 Go偶惠、C++春寿、Java、Scala 等語言的完全聲明實現(xiàn)忽孽。
Raft 通過選取領導者實現(xiàn)共識绑改。在 Raft 集群中馋缅,一個服務器可以是領導者(leader),也可以是追隨者(follower)绢淀,也可以作為一些特定選舉情況下(例如缺少領導者)的候選者。領導者負責向追隨者發(fā)送日志副本瘾腰。領導者通過發(fā)送心跳消息皆的,定期通知追隨者自身的存活情況。每位追隨者維護一個超時(通常在 150 到 300 毫秒之間)蹋盆,正常情況下應在此時間范圍內收到領導者的心跳费薄。一旦收到心跳,超時就會重置栖雾。如果沒有收到心跳楞抡,那么追隨者就將自身狀態(tài)更改為候選者,并開始領導者選舉析藕。
為理解 RAFT召廷,我強烈推薦該信息圖。
擴展閱讀:Raft账胧。
23. 恒星共識(Stellar Consensus)
優(yōu)點:
- 去中心化控制竞慢。
- 低延遲。
- 靈活的信任機制治泥。
- 漸進安全(Asymptotic security)筹煮。
采用者:Stellar
解釋:恒星共識基于上文介紹的聯(lián)邦拜占庭共識(FBA)。
恒星共識協(xié)議(SCP居夹,Stellar Consensus Protocol)提供了一種不依賴閉合系統(tǒng)實現(xiàn)準確記錄金融交易而達成共識的方法败潦。SCP 具有一組可驗證的安全屬性,這些屬性根據(jù)如何安全地保持活力而做了優(yōu)化准脂。一旦出現(xiàn)分區(qū)或不當行為節(jié)點劫扒,它將會終止網絡過程,直至達成共識意狠。SCP 同時具備四種屬性:去中心控制粟关、低延遲、靈活信任機制和漸進安全环戈。
擴展閱讀:Stellar Consensus
24. 置信度證明(PoB闷板,Proof of Believability)
優(yōu)點:
- 通過使用一種稱為 “Servi” 的理念,PoB 比傳統(tǒng) PoS 更加去中心化(細節(jié)在下文給出)院塞。
- 相比于傳統(tǒng)的 PoS遮晚,具有更快的最終性(Finality)。
采用者:IOST
解釋:傳統(tǒng)的 PoS 共識機制面臨的主要挑戰(zhàn)是趨向于中心化拦止。為了降低這種風險县遣,IOST 引入了 “Servi” 概念糜颠。Servi 不僅衡量了用戶對社區(qū)的貢獻,而且鼓勵成員為 IOSChain 的持續(xù)發(fā)展做出貢獻萧求。Servi 具有以下屬性:
- 不可交易性(Non-tradable):由于 Servi 并非設計作為一種交換媒介其兴,因此 Servi 不能以任何方式交易或做交換。
- 自毀性(Self-destructive):驗證區(qū)塊后夸政,系統(tǒng)將自動清除驗證者擁有的 Servi 余額元旬。通過這種方式,具有高可信度分值的節(jié)點可輪流驗證區(qū)塊守问,確保了公平區(qū)塊的生成匀归。
- 自發(fā)行性(Self-issuance):Servi 在做出某些貢獻之后(例如,提供社區(qū)服務耗帕、估其他實體提供的服務穆端,以及其它一些特殊貢獻),將會自動生成并存入用戶帳戶仿便。
傳統(tǒng)的區(qū)塊鏈系統(tǒng)在安全性和吞吐量間存在著固有的折衷体啰,具體取決于分片(shard)的大小。具有大量小分片的系統(tǒng)可提供更好的性能嗽仪,但抵抗不良行為者的穩(wěn)定性低狡赐,反之也是如此(這也是 Casper 面臨的一個問題)。為了在保持安全和提高吞吐量的情況下打破這種權衡钦幔,IOST 創(chuàng)新性地提出了一種用于 IOSChain 的 PoB 共識協(xié)議枕屉。PoB 確保了節(jié)點產生行為不端的可能性微乎其微,同時通過確定分片規(guī)模(size-one-shard)鲤氢,顯著地提高了交易吞吐量搀擂。
PoB 共識協(xié)議使用一種分片內 “可信度優(yōu)先” 的方法。該協(xié)議將所有的驗證者分為兩組卷玉,一組是可信的聯(lián)盟哨颂,另一組是正常的聯(lián)盟。在第一階段相种,可信的驗證者快速地處理交易威恼。之后在第二階段,普通驗證者對交易做抽樣并驗證寝并,提供最終結果箫措,確保可驗證性衬潦。節(jié)點被選入可信聯(lián)盟的機會是由可信度分值確定的斤蔓。可信度分值由多個因素計算镀岛,包括令牌余額弦牡、對社區(qū)的貢獻友驮、評論等。具有較高可信度分值的人驾锰,更有可能被選入可信聯(lián)盟卸留。可信驗證者遵循一定的程序椭豫,決定已提交的交易及其訂單的集合艾猜,并按順序處理它們鸦概。可信驗證者也會構成一些較小的組微饥,甚至可以每組一名驗證者酸舍。交易將在這些可信驗證者之間隨機分配。因此察皇,PoB 會產生具有極低延遲的較小區(qū)塊。
但是,由于只有一個節(jié)點在執(zhí)行驗證姓言,因此 PoB 可能會存在安全問題。行為不當?shù)尿炞C者可能會提交一些已損壞的交易蔗蹋。為了解決這個安全問題何荚,PoB 指定了一個采樣概率。普通驗證者根據(jù)概率對交易做采樣猪杭,并檢測交易的不一致性餐塘。如果驗證者被檢測出存在不良行為,那么該驗證者將會失去所有系統(tǒng)中的令牌和聲譽皂吮,而被欺詐的用戶將獲得所有損失的補償戒傻。“可信度優(yōu)先” 使處理交易非撤涑铮快需纳,因為只有一個(可信的)驗證者執(zhí)行驗證,并且該驗證者不太可能存在行為不端艺挪。
關于分片策略的更多信息不翩,可參閱 “擴展閱讀” 內容。
25. 有向無環(huán)圖(DAG麻裳,Directed Acyclic Graphs)
優(yōu)點:
- 由于 DAG 的非線性結構口蝠,它是高度可擴展的。
- 快速津坑。
- 節(jié)能亚皂。
- 立即實現(xiàn)終結性(Finality)。
不足:
- 只能通過使用 Oracle 實現(xiàn)智能合約国瓮。
采用者:Iota灭必、HashGraph狞谱、Byteball、RaiBlocks/Nano禁漓。
解釋:DAG 是一種更通用形式的區(qū)塊鏈跟衅。由于其獨特結構,DAG 內在支持高可擴展性播歼,因此也得到了廣泛的使用伶跷。
從根本上說,任何區(qū)塊鏈系統(tǒng)都具有線性結構秘狞,因為區(qū)塊是依次添加到鏈中的叭莫。這使得相比于并行向鏈中添加區(qū)塊,線性區(qū)塊鏈在本質上是非常緩慢的烁试。但是對于 DAG 而言雇初,每個區(qū)塊和交易只需數(shù)個前期區(qū)塊得到確認,就可以并行地添加到區(qū)塊和交易中减响。這意味著靖诗,DAG 在本質上是高可擴展的。
DAG 存在多種變體支示,取決于:
- 如何選取前期區(qū)塊驗證的算法刊橘,也稱為 “Tip 選擇算法”。
- 交易完成的順序颂鸿。
- 如何抵達完成狀態(tài)促绵。
下面列出一些廣為使用的 DAG 項目。
25.1 Tangle(IOTA)
解釋:Tangle 是一種 DAG 共識算法嘴纺,由 IOTA 使用绞愚。為了發(fā)送一個 IOTA 交易,用戶需要驗證接收到的前兩個交易颖医。在更多交易添加到 Tangle 的情況下位衩,這種二對一、前瞻性支付的共識可加強交易的有效性熔萧。由于共識是由交易確定的糖驴,因此理論上,如果有人可以生成三分之一的交易佛致,那么他就可以說服網絡中的其余部分贮缕,使得他的無效交易變成有效的。一旦交易量足夠大俺榆,使得個人難以創(chuàng)建三分之一交易量感昼,這時 IOTA 就會在一個稱為 “協(xié)調器(The Coordinator)” 的中心節(jié)點上對網絡中的所有交易做 “復核”(double-checking)。按 ITOA 的說法罐脊,協(xié)調員的工作類似于輔助輪定嗓。一旦 Tangle 達到一定的規(guī)模蜕琴,協(xié)調員就會被從中移除。
擴展閱讀: Tangle
25.2 Hashgraph
解釋:Hashgraph 是由 Leemon Baird 開發(fā)的一種 Gossip 協(xié)議共識宵溅。節(jié)點隨機與其它節(jié)點共享自身已知的交易凌简,最終所有交易都被以 Gossip 協(xié)議傳播到(Gossip around)到所有節(jié)點。Hashgraph 對于私有網絡是一個很好的選擇恃逻。但我們并不會看到它實現(xiàn)在以太坊這樣的公共網絡中雏搂,或是不通過 Gossip 協(xié)議隨機傳播交易。
擴展閱讀:HashGraph
25.3 Holochain
解釋:Holochain 十分類似于 HashGraph寇损,但不同于 Hashgraph凸郑。它提供了一種可用于構建去中心化應用的數(shù)據(jù)結構。用戶可以具有自己的鏈矛市,并向其中添加包括金融交易在內的數(shù)據(jù)芙沥。鏈可以采用復雜的方式合并、拆分和交互尘盼。數(shù)據(jù)以去中心化的方式存儲(類似于 Bittorrent)。數(shù)據(jù)具有一個哈希值烦绳,即一個對應于數(shù)據(jù)的數(shù)學指紋卿捎。如果有人意圖篡改數(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 結構中惧眠,每個用戶(地址)都有自己的鏈籽懦,只有用戶本身可寫,每個用戶都擁有所有鏈的副本氛魁。
每個交易都可分解為發(fā)送者鏈上的發(fā)送區(qū)塊暮顺,以及接收者鏈上的接收區(qū)塊。Block-lattice 看上似乎太簡單秀存,以至于無法工作捶码,但它已經在實際運行了。Block-lattice 的獨特結構的確無法抵制一些獨特的攻擊向量或链,例如 Penny-spend 攻擊惫恼。在這種攻擊中,攻擊者通過向大量空錢包發(fā)送數(shù)額可忽略不計的金錢澳盐,導致必須要追蹤的鏈數(shù)量急劇膨脹祈纯。
擴展閱讀:Nano
25.5 SPECTRE
解釋:SPECTRE令宿,即 “序列化 PoW 事件并通過遞歸選舉確認交易”(Serialization of Proof-of-work Events, Confirming Transactions via Recursive Elections),是提議的一種 Bitcoin 擴展解決方案盆繁。它利用 PoW 和 DAG 的組合實現(xiàn)可擴展的共識掀淘。在 SPECTER 中,一個挖掘的區(qū)塊指向多個父節(jié)點油昂,而不僅僅是單個節(jié)點革娄,這使得網絡每秒可以處理多個區(qū)塊。而挖掘指向某些父區(qū)塊的區(qū)塊冕碟,這將支持區(qū)塊的有效性拦惋。與 PoW 的“最長鏈勝出” 的原則相比,SPECTER 使用的原則可描述為“擁有最多子節(jié)點的區(qū)塊勝出”安寺。SPECTRE 尚未得到實際運行測試厕妖,因此可能會存在一些新的攻擊向量。但我認為挑庶,SPECTRE 很有可能成為一種修正 Bitcoin 問題的潛在好做法言秸。
擴展閱讀:SPECTRE
25.6 ByteBall
解釋:ByteBall 使用 DAG 建立交易間的偏序關系,此外還在 DAG 中添加了 “主鏈”(MC迎捺,Main Chain)举畸。
圖 DAG 中加粗顯示的 “主鏈”
MC 允許在交易間定義全序關系,即更早加入(直接或間接)MC 的交易凳枝,必定更早出現(xiàn)在全序中抄沮。如果存在 “雙重支付” 問題,那么將視較早出現(xiàn)在全序中的交易版本為有效的岖瑰,而其它所有的交易均被視為是無效的叛买。
根據(jù)交易在圖中的位置,MC 可得到確定性的定義蹋订。相關詳細信息率挣,請參閱白皮書。作為一般性規(guī)則露戒,MC 傾向于采納由一些總所周知用戶所給出的交易难礼,這樣的用戶被稱為 “證人”(Witnesses)。證人列表是由用戶自己定義的玫锋,因為列表中包括了用戶發(fā)布的每個交易蛾茉。然后,MC 沿著 DAG 內路徑推進撩鹿。推進原則包括:
- MC 上相鄰交易的證人列表要么完全相同谦炬,要么只存在一個突變。
- 與其它鏈相比,MC 中為經過最多數(shù)量的由見證人認證的交易键思。
ByteBall 也是首個在系統(tǒng)中包含 Oracle 的平臺础爬。Oracle 是在 DAG 中添加智能合約功能所必需的。
這里只給出了一些非常簡短和粗略的描述吼鳞,其中省略了大量重要的細節(jié)看蚜。要整體了解相關技術,請參閱 ByteBall 白皮書赔桌。
擴展閱讀:ByteBall
結束語
到此為止供炎。如果讀者發(fā)現(xiàn)其中有所遺漏,或是存在錯誤疾党,歡迎在評論中留言音诫。
感謝閱讀。
作者簡介
Vaibhav Saini 是一家由 MIT Cambridge Innovation Center 孵化的初創(chuàng)企業(yè) TowardsBlockchain 的聯(lián)合創(chuàng)始人雪位。Saini 是一名高級區(qū)塊鏈開發(fā)人員竭钝,具有 Ethereum、Quorum雹洗、EOS香罐、Nano、Hashgraph时肿、IOTA 等多種區(qū)塊鏈平臺的工作經驗庇茫。Saini 目前是德里印度理工學院(IIT Delhi)的一名大二學生。