區(qū)塊鏈共識pos機(jī)制
1、兩種共識機(jī)制對比(PoW vs PoS)
區(qū)塊鏈中最核心的架構(gòu)就是共識機(jī)制,可以說是區(qū)塊鏈的驅(qū)動(dòng)引擎,發(fā)展這么多年,目前主流比較明確經(jīng)得住考驗(yàn)的就只剩下PoW(Proof of Work)與PoS(Proof of Stake)兩種機(jī)制。簡單概述下,PoW系統(tǒng)的特點(diǎn)是通過消耗大量算力來計(jì)算特定算法的解(典型如哈希),第一個(gè)算出結(jié)果的有權(quán)生成區(qū)塊,同時(shí)也會得到coin作為獎(jiǎng)勵(lì)(這也是coin的生產(chǎn)與分發(fā)過程,形象地稱為Mining),采用PoW的典型區(qū)塊鏈有Bitcoin和Ethereum,目前PoW也是運(yùn)行時(shí)間最長,被公認(rèn)為是最可靠安全的共識機(jī)制; 其本質(zhì)是通過消耗大量算力來實(shí)現(xiàn)系統(tǒng)內(nèi)的逆熵過程,保證系統(tǒng)的長期安全與穩(wěn)定 。但PoW被廣為詬病的也是其消耗太多的能源資源,這方面PoS就被認(rèn)為是更為綠色的解決方案,顧名思義PoS是通過質(zhì)押系統(tǒng)中的資產(chǎn)即coin來成為一個(gè)質(zhì)押者(staker),這樣就有權(quán)產(chǎn)出區(qū)塊,質(zhì)押份額越多,獲得產(chǎn)出區(qū)塊權(quán)的概率就越高,也代表著獎(jiǎng)勵(lì)越多。
在分布式系統(tǒng)中有一個(gè) CAP 定理,是指一個(gè)分布式系統(tǒng)中存在著三元悖論,即不可能同時(shí)滿足這三個(gè)特性:一致性(Consistency)、可用性(Availability)和分區(qū)容錯(cuò)性 (Partition tolerance),而只能滿足其中兩個(gè)。區(qū)塊鏈作為一種分布式網(wǎng)絡(luò),這個(gè)定理也逐漸演變成了區(qū)塊鏈的三元悖論,即 安全性(Security) 、 去中心化(Decentralization) 和 可擴(kuò)展性 (Scalability) ,也是同時(shí)只能滿足兩個(gè)特性。
整體上看PoW系統(tǒng)更注重的是 安全性(Security) 與 去中心化(Decentralization) ,放棄 可擴(kuò)展性 (Scalability) ,這也是Bitcoin網(wǎng)絡(luò)的吞吐量非常慢的原因。而PoS系統(tǒng)更關(guān)注的是 可擴(kuò)展性 (Scalability) 與 去中心化(Decentralization) ,但就PoS能否真的 實(shí)現(xiàn) 去中心化(Decentralization) ,我是比較持懷疑態(tài)度的。從保守主義與系統(tǒng)的更長期穩(wěn)定的角度出發(fā),我個(gè)人是堅(jiān)定地站在PoW這邊的,可能跟自身保守的性格有關(guān),并不是特別看好PoS作為基礎(chǔ)層能比較穩(wěn)定。特別是像這次 5月份的Luna事件 ,事件大概的過程是Luna鏈上的算法穩(wěn)定幣UST缺乏價(jià)值支撐最終脫錨,其核心問題在于UST的錨定設(shè)計(jì)試圖用一個(gè)PoS股權(quán)系統(tǒng)去支撐其錨定美元,而且還超發(fā)了太多UST,再加上UST與Luna的兌換設(shè)計(jì)缺陷最終導(dǎo)致Luna自身的死亡螺旋。但這個(gè)事件更大的意義應(yīng)該是敲響了一個(gè)警鐘,PoS機(jī)制在面對空頭資本砸盤時(shí)真的還能維持穩(wěn)定、維持所謂的去中心化嗎?可能到時(shí)節(jié)點(diǎn)數(shù)量萎縮的速度會很快,逐漸趨于中心化。
所有系統(tǒng)設(shè)計(jì)都需要根據(jù)自身定位來折中,以下從價(jià)值錨定的角度,簡單分析下為什么長期來看PoW會更有優(yōu)勢。
在PoW系統(tǒng)中三股主要的參與者分別是研發(fā)人員,投資者(或者叫用戶)與Miner,這三者的相互制衡,使得這個(gè)系統(tǒng)達(dá)到一個(gè)穩(wěn)定平衡的狀態(tài)。而PoS系統(tǒng)中,將Miner這個(gè)重要的制衡力量移除了,投資者和Miner變成了同一群體 質(zhì)押者(stakers) ,因此該群體濫用權(quán)力的行為會變得相對不受限制,并且該鏈隨后的發(fā)展方向也可能會更加不平衡,更容易傾向有利于 質(zhì)押者(stakers) 群體的方向。
PoW系統(tǒng)很好的闡述了什么是被普遍認(rèn)可的價(jià)值,抽象上來看就是高代價(jià)的稀缺性 ,高代價(jià)與稀缺性兩者缺一不可。PoS最多只能實(shí)現(xiàn)其中一個(gè)稀缺性。
Miner為了在鏈上生產(chǎn)區(qū)塊賺取coin,不僅需要持續(xù)支付高額電力成本,還必須不斷投入研發(fā)、升級硬件、優(yōu)化基礎(chǔ)設(shè)施和運(yùn)營規(guī)模來保持其競爭力。最終結(jié)果是,能夠長期持續(xù)盈利的Miner并不會是一個(gè)一層不變的群體,而是總在競爭中淘汰掉效率太低的Miner,使高效率的Miner能存活下來。這也更有利于 去中心化(Decentralization) ,因?yàn)椴粩嘧兓腗iner群體意味著沒有一個(gè)Miner可以在相當(dāng)長的時(shí)間內(nèi)保持網(wǎng)絡(luò)的大部分算力,除非他們通過嚴(yán)酷的競爭考驗(yàn),不斷優(yōu)化自身來提供更多的算力。
而PoS系統(tǒng)中的質(zhì)押者實(shí)際上并多少真正的風(fēng)險(xiǎn)投入,也沒有優(yōu)勝劣汰的嚴(yán)酷競爭機(jī)制,他們只需要簡單地運(yùn)行一個(gè)staker節(jié)點(diǎn)就可以躺著賺利息,本質(zhì)上只是將自己在銀行系統(tǒng)里的錢簡單的轉(zhuǎn)化為鏈上資本,就可以坐地收割后進(jìn)入這個(gè)系統(tǒng)的新人。這種行為并沒有太多難度,只是簡單地賺取“無風(fēng)險(xiǎn)”利息,他們并沒有將資本轉(zhuǎn)化為任何形式的需要面臨風(fēng)險(xiǎn)考驗(yàn)的投資。
而且當(dāng)發(fā)生硬分叉時(shí),PoW的Miner選擇支持哪條鏈時(shí)會更為謹(jǐn)慎,因?yàn)樗麄冃枰度敫甙旱碾娏Τ杀緛頌樗麄兊倪x擇背書,一旦選錯(cuò)了將損失所有投入成本。PoS系統(tǒng)如果發(fā)生硬分叉,質(zhì)押的coin作為系統(tǒng)內(nèi)部狀態(tài)的一部分,硬分叉后質(zhì)押者將在兩條不同鏈上都擁有相同數(shù)量的資產(chǎn),由于沒有什么沉默成本,導(dǎo)致質(zhì)押者更愿意兩邊都支持,從而使硬分叉更容易且更頻繁地出現(xiàn),這被稱為 nothing at stake 問題。
PoW是真正能做到無準(zhǔn)入限制的(Permissionless),就是說已經(jīng)在這個(gè)系統(tǒng)中的老人無法限制新人加入,只要你有能力提供算力,就能直接接入網(wǎng)絡(luò)中產(chǎn)出coin。而PoS系統(tǒng)中,新人要進(jìn)入,都不得不先從老人手中買coin。
而且PoW中Miner為了支付各種高昂成本(電力,設(shè)備,基礎(chǔ)設(shè)施等),產(chǎn)出coin后也不得不賣出一些以彌補(bǔ)成本,這同時(shí)也是一種把coin分發(fā)給更多人的過程; 特別是在熊市,Miner為了維持開銷也不得不低價(jià)賤賣coin,這樣新人才有機(jī)會以相對低的成本獲得籌碼入場,這才是一個(gè)健康的生態(tài)擴(kuò)張過程 。而PoS中由于質(zhì)押者并沒有什么運(yùn)行成本,也不需要面對太多競爭,質(zhì)押者出塊得到coin后不需要急著賣出,更容易哄抬價(jià)格,其實(shí)會變相激勵(lì)場內(nèi)老人剝削新入場者,不給后來人更多機(jī)會;整個(gè)系統(tǒng)會趨向于更封閉,逐漸演變成一個(gè)有限游戲,長期運(yùn)行下去只會越來越中心化;系統(tǒng)中財(cái)富越來越集中,富者更富,窮者更窮,從而更不可能實(shí)現(xiàn) 去中心化(Decentralization) 。
由于PoW系統(tǒng)中是以提供工作量的方式產(chǎn)出區(qū)塊的,隨著時(shí)間的推移這些工作量都會被累積起來并使鏈不斷向前延伸,這也是為什么叫區(qū)塊鏈;這些累積的工作量也給攻擊者造成了巨大障礙,如果想要反轉(zhuǎn)整條鏈,不僅需要非常高的算力,還需要相當(dāng)長的時(shí)間,這也為應(yīng)對攻擊提供了足夠長的時(shí)間緩沖。
而PoS系統(tǒng)其實(shí)只是維護(hù)一個(gè)分布式賬本, 并沒有工作量累積的概念,一旦攻擊成功,要反轉(zhuǎn)整條鏈就是相當(dāng)容易的,幾分鐘就可以搞定。
嚴(yán)格來說由PoW算力支撐的BTC不應(yīng)歸為高科技類,由于它整個(gè)系統(tǒng)架構(gòu)更保守更穩(wěn)定,提供的更多的是一種 物化價(jià)值(objective costliness) ,更能作為價(jià)值之錨,所以數(shù)字黃金這個(gè)稱號很貼切。而像ETH(目前還是PoW,2.0升級后為PoS)這些更接近科技類創(chuàng)新平臺,PoS本質(zhì)上更像是一種股權(quán)系統(tǒng),其實(shí)PoS系統(tǒng)反而是需要中心化,偏向更依靠整個(gè)社區(qū)的生命力,需要依靠核心團(tuán)隊(duì)的創(chuàng)新與開拓能力往前走;而PoW則需要去中心化,更偏向穩(wěn)定與提供 物化價(jià)值(objective costliness) 。
區(qū)塊鏈作為一個(gè)價(jià)值分配系統(tǒng), 算力是它的價(jià)值之錨,如果沒有算力,就會退化為一個(gè)股權(quán)系統(tǒng) 。算力在哪,資金就會跟去哪。目前的發(fā)展趨勢也是逐漸往多層網(wǎng)絡(luò)的方向發(fā)展,類似TCP/IP的多層協(xié)議棧。從作為基礎(chǔ)層(Base Layer)的角度看,更需要的是長期穩(wěn)定與提供價(jià)值支撐,因此PoW系統(tǒng)更合適;而PoS可能更多的是可以作為Layer2以實(shí)現(xiàn) 可擴(kuò)展性 (Scalability) ,彌補(bǔ)PoW基礎(chǔ)層的吞吐量不足,并通過錨定在PoW基礎(chǔ)層上來獲取算力安全性與價(jià)值支撐。
最后順帶說下最近市場行情,5,6月份以來的瀑布令很多人很恐慌,恐慌指數(shù)一度長時(shí)間停留在個(gè)位數(shù);其實(shí)我覺得也沒必要那么恐慌,要在這個(gè)圈子長期活下去,面對這種大波動(dòng)的心理預(yù)期還是要有的。想起之前紅杉資本的沈南鵬經(jīng)常提到一個(gè)詞Grit,沙礫,它是礫石在千萬次打磨后留下來的細(xì)小顆粒;Grit代表了勇氣和持之以恒的一種堅(jiān)持,有種經(jīng)常被按地上摩擦但依然勇往直前的感覺。這個(gè)和塔勒布講的反脆弱性有異曲同工之妙,承載價(jià)值的東西就應(yīng)該具有這種品質(zhì),PoW系統(tǒng)肯定是有反脆弱性的。
回望2017年入圈后經(jīng)歷過的各種事件,其實(shí)像這樣的大波動(dòng)近乎每年都有(除了2019年一年比較順利外);像2017年國內(nèi)的94事件,2018年一整年的大熊市,2020的312事件,2021的519事件,再到2022今年的5,6月份市場轉(zhuǎn)熊,每次經(jīng)歷大波動(dòng)后,市場都會淘汰掉該淘汰的,出清掉該出清的風(fēng)險(xiǎn),對整個(gè)行業(yè)發(fā)展也是好事。眼光還是應(yīng)該放遠(yuǎn)一點(diǎn),至少看5到10年后的變化,科技發(fā)展過程中所帶來的波動(dòng)和風(fēng)險(xiǎn)是不可避免的,日光之下無新鮮事,每次科技革命過程中總會夾雜著眾多的反對、質(zhì)疑,還有眾多的投機(jī)、騙局;這個(gè)過程也總是通過各種暴雷、回歸,清除泡沫后價(jià)值重估,夯實(shí)了基礎(chǔ)后積蓄能量再次進(jìn)入躍升到新的發(fā)展階段。 價(jià)值互聯(lián)網(wǎng)的到來是一件無法回避的事情 ,當(dāng)理解和看清了這種趨勢后,規(guī)避掉各種坑和市場噪音,遠(yuǎn)離合約杠桿和各種山寨的誘惑,握住核心資產(chǎn),時(shí)間本身就會帶來回報(bào)。
2、什么是pos算法和pos機(jī)制
pos是公鏈中的共識算法,作為pow的一種替換。pow是保證比特幣,當(dāng)前以太坊和許多區(qū)塊鏈安全的一種機(jī)制,但是pow算法在挖礦過程中,因?yàn)槠茐沫h(huán)境和浪費(fèi)電而受到指責(zé),pos試圖通過一種不同的機(jī)制取代挖礦的概念,從而解決這些問題。ps機(jī)制可以被描述成一種虛擬挖礦,鑒于pow主要依賴于計(jì)算硬件的稀缺性,來防止女巫攻擊。在pow中,一個(gè)用戶有可能用一千美元來買計(jì)算機(jī),加入網(wǎng)絡(luò)來挖礦,產(chǎn)生新區(qū)塊,從而得到獎(jiǎng)勵(lì)。在pos中,用戶可以拿到一千美元,買到等值的代幣,把這些代幣當(dāng)做押金放在pos機(jī)制之中,只要用戶就有機(jī)會產(chǎn)生,這樣用戶可以得到獎(jiǎng)勵(lì)。
pos算法如下,存在一個(gè)持幣人的集合,他們把手中的代幣放入pos機(jī)制中,這樣他們就變成驗(yàn)證者。
3、科普Pos共識機(jī)制
今天給大家科普下夸克區(qū)塊鏈中的POS共識機(jī)制到底是什么?PoS共識機(jī)制,中文翻譯就是權(quán)益證明。與它其名的還有另一種共識機(jī)制:pow機(jī)制。
經(jīng)過歷史發(fā)展的證明,PoW機(jī)制存在一些缺陷,如在挖掘過程中浪費(fèi)大量的資源,整個(gè)網(wǎng)絡(luò)的處理效率很低等。早在2011年,就有人曾提出:“是否可以在 PoW的基礎(chǔ)上,重新設(shè)計(jì)一種機(jī)制?”可以保留 PoW的優(yōu)點(diǎn),也可以解決它的問題"。因此 PoS的共識機(jī)制就誕生了,因此, PoS機(jī)制在共識層次上借鑒了許多 PoW機(jī)制的設(shè)計(jì),比如區(qū)塊設(shè)計(jì)、礦工選擇、分叉處理、交易驗(yàn)證等。
PoS機(jī)制采用權(quán)益法核算,解決了網(wǎng)絡(luò)效率低下、資源浪費(fèi)以及節(jié)點(diǎn)間一致性等問題,簡單地說,就是誰擁有更多的權(quán)益誰來說話。其原則如下:
說到PoW機(jī)制為何存在諸多問題,最大的原因在于其規(guī)則下造成礦工準(zhǔn)入門檻低,每個(gè)人都可以成為一個(gè)出塊節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)都可以為獲得下個(gè)區(qū)塊的記賬權(quán)進(jìn)行競爭,一個(gè)數(shù)據(jù)包要有那么多人來處理,必然會造成資源的浪費(fèi)和低效。
而PoS機(jī)制就可以有效解決這個(gè)問題,這是因?yàn)樵赑OS機(jī)制的規(guī)則下,提高了每個(gè)人成為節(jié)點(diǎn)的門檻,比如:雖然每個(gè)人都可以成為節(jié)點(diǎn),但如果想成為出塊節(jié)點(diǎn)獲得記賬權(quán),就必須滿足pos機(jī)制的一些規(guī)則,如質(zhì)押一定數(shù)量的代幣,或者持有一定數(shù)量的代幣,才可以成為出塊節(jié)點(diǎn)的候選人。
在滿足這些條件之后,系統(tǒng)進(jìn)行算法選擇,選中其中一部分人成為有效的礦工,然后每隔一個(gè)周期,進(jìn)行重新分配,并且這個(gè)過程不受人為控制,一切由系統(tǒng)算法決定,保證公平公開不被篡改,這樣就可以避免了整個(gè)鏈被某個(gè)節(jié)點(diǎn)控制。
總結(jié)一句話就是PoW機(jī)制是每個(gè)人都可以成為礦工,而 PoS機(jī)制必須通過一系列的篩選后成為礦工。
poS機(jī)制的競爭原則在于,誰擁有更多的代幣,誰就能更容易的獲得記賬權(quán)。獲得記賬權(quán)的礦工將他打包好的區(qū)塊經(jīng)過其他礦工驗(yàn)證,通過全網(wǎng)廣播,確認(rèn)沒有問題后,這個(gè)區(qū)塊才會被連接到鏈上,與全網(wǎng)其他節(jié)點(diǎn)的小賬本同步,同時(shí)他還能得到相應(yīng)的代幣獎(jiǎng)勵(lì)。
簡言之,整個(gè)過程就是:持幣者以代幣作抵押,得到記賬權(quán)力,然后PoS共識會通過選擇算法,按持幣者的數(shù)量,從中選出出塊礦工。采礦者在指定的高度上完成打包交易,生成新的區(qū)塊,并廣播它,然后由驗(yàn)證者對所廣播的區(qū)塊進(jìn)行交易驗(yàn)證,通過驗(yàn)證后,區(qū)塊得到確認(rèn)。這就是 PoS共識機(jī)制完整的一輪過程。
PoS機(jī)制的優(yōu)點(diǎn)是有效地解決 PoW協(xié)議中存在的資源浪費(fèi)和低效問題。但它也還是存在一些缺點(diǎn)。舉例來說, PoS機(jī)制中的初始代幣分配是非常模糊的,如果初始代幣分配失敗,將很難形成后續(xù)的股權(quán)證明。比如,在系統(tǒng)進(jìn)行算法選擇時(shí)如果被黑客攻擊,如果成功,選舉結(jié)果就可能被操作。除開這個(gè)問題,pos機(jī)制還存在一個(gè)問題就是,可能會造成兩極分化嚴(yán)重,持有代幣多的人會更多的獲得記賬權(quán),繼而獲得代幣獎(jiǎng)勵(lì),擁有代幣少的人,很難去爭奪記賬權(quán),造成強(qiáng)者恒強(qiáng)的局面。
總的來說,PoW機(jī)制和 PoS機(jī)制都是區(qū)塊鏈上引用的主流機(jī)制,它們會攜手帶領(lǐng)區(qū)塊鏈技術(shù)的進(jìn)一步發(fā)展,雖然兩者存在自身的一定局限性,但未來某一天,這些技術(shù)在不斷變革創(chuàng)新的同時(shí),必定鑄造區(qū)塊鏈行業(yè)的輝煌。
4、POW & POS,傻傻分不清楚的共識機(jī)制
什么是共識機(jī)制?我在開更的第一篇文章,就簡單講解了數(shù)字貨幣世界的16個(gè)最高頻名詞,其中一個(gè)就是共識機(jī)制,還記得嗎?
為什么要有共識機(jī)制呢?
這就必須要解釋一下在分布式系統(tǒng)中不得不了解的“拜占庭將軍問題”了。
拜占庭將軍問題(The Byzantine Generals Problem)可以總結(jié)為一句話:
在古代,11位忠誠的、不同位置的將軍,如何排除叛徒的影響,對進(jìn)攻或撤退達(dá)成一致。
當(dāng)然,拜占庭將軍問題并不是如今才提出的,我們大中華在春秋戰(zhàn)國時(shí)期就發(fā)明了“虎符”這個(gè)神奇的方式來保障命令的正確執(zhí)行。
在分布系數(shù)系統(tǒng)中,各個(gè)節(jié)點(diǎn)就是“拜占庭將軍”,算法執(zhí)行中的任意一個(gè)錯(cuò)誤就是“叛徒”。
為了盡可能地排除錯(cuò)誤、快速達(dá)成一致,來讓系統(tǒng)有效地、正確地運(yùn)行,便應(yīng)運(yùn)而生了各種“共識機(jī)制”。
————————————————
下面,我們就來一起學(xué)習(xí)數(shù)字貨幣世界中常見的幾種共識機(jī)制:
PoW,工作量證明 Proof of Work
PoW是比特幣所采用的共識機(jī)制,最早是由Adam Back為了解決垃圾郵件的問題而開發(fā)的一個(gè)“哈?,F(xiàn)金Hashcash”程序。
比特幣采用的是SHA256的單向函數(shù),其具體的工作原理實(shí)在太專業(yè),我們只需要理解到“SHA256的結(jié)果很容易驗(yàn)證,但是要將其計(jì)算出來,需要不斷嘗試運(yùn)算,直到匹配到某個(gè)隨機(jī)數(shù);技術(shù)上而言,任何新增區(qū)塊都需要經(jīng)過232394億運(yùn)算才能得到”的程度,感興趣的小伙伴可以搜索SHA256去深入學(xué)習(xí)。
因此,只要礦工出示運(yùn)算結(jié)果,那通過PoW,全網(wǎng)節(jié)點(diǎn)就認(rèn)可了他所付出的成本,承認(rèn)新的區(qū)塊獎(jiǎng)勵(lì)屬于他。
如此大量的運(yùn)算相當(dāng)浪費(fèi)資源,實(shí)際上并沒有任何科學(xué)或?qū)嶋H用途,只是為了實(shí)踐工作量證明機(jī)制、阻止攻擊者偽裝成節(jié)點(diǎn)來控制網(wǎng)絡(luò)。
雖然在2009年時(shí)為了構(gòu)建這種去中心化的、允許所有人可以免費(fèi)參與的全球貨幣網(wǎng)絡(luò),沒有更好的選擇;但是發(fā)展到如今,已經(jīng)有了其他不需要大量浪費(fèi)算力的證明機(jī)制,比如我們下面就要提到的,PoS權(quán)益證明。
————————————————
PoS,權(quán)益證明 Proof of Stake
主要思想是:節(jié)點(diǎn)記賬權(quán)的獲得難度與節(jié)點(diǎn)持有的權(quán)益成反比,也就是說,一個(gè)節(jié)點(diǎn)擁有的幣越多、時(shí)間越久,越容易獲取記賬權(quán),也就越容易獲取區(qū)塊獎(jiǎng)勵(lì)。
實(shí)際上,最初的PoS是PoW的一種升級,根據(jù)每個(gè)節(jié)點(diǎn)的幣齡,來等比例地降低挖礦難度,從而加快找到隨機(jī)數(shù)的速度。
什么是幣齡呢?
幣齡=數(shù)量*擁有天數(shù)。
由于區(qū)塊鏈中的每筆交易記錄都會被標(biāo)記時(shí)間戳,這個(gè)時(shí)間戳就可以作為幣齡的證明,因此幣齡也不可能被輕易偽造。
比如A從B那里收到10個(gè)幣,并且持有了90天,那么,A就擁有了900的幣齡;如果A賣了這10個(gè)幣,這900幣齡就被消耗了;
后來,為了徹底擺脫P(yáng)oW這種依靠算力的共識機(jī)制,PoS引入了“利息”的概念;年利率是在PoS機(jī)制最初確認(rèn)時(shí)就設(shè)定的,一般不會變化。
利息=(幣齡*年利率)/365 ,如果利率是1%,在上個(gè)例子中,A就可以得到0.02466個(gè)幣的利息。
如此一來,PoS區(qū)塊鏈的作用過程就可以這樣描述:
在初期,通過PoW機(jī)制,產(chǎn)生創(chuàng)世幣;
在創(chuàng)世幣達(dá)到一定規(guī)模時(shí),PoS機(jī)制開始作用,交易時(shí)消耗幣齡、獲得產(chǎn)生區(qū)塊的優(yōu)先權(quán),并獲取利息,同時(shí)PoW機(jī)制由于消耗太多資源、浪費(fèi)算力而逐漸淡出;
最終系統(tǒng)中僅剩PoS來維持正常運(yùn)作。
目前大家所熟悉的以太坊,主要還是采用PoW的機(jī)制,不過正在轉(zhuǎn)向PoS。
————————————————
大家了解了PoW和PoS,在遇到其他共識機(jī)制的時(shí)候,相信也會比較快得就能理解。
比如:股份授權(quán)證明DPOS,類似于董事會投票;燃燒證明POB;沉淀證明POD;能力證明POC;消逝時(shí)間證明PODT,等等。
就不在這里為大家一一展開了,感興趣的同學(xué)可以百度或知乎一下~
5、區(qū)塊鏈的共識機(jī)制
一、區(qū)塊鏈共識機(jī)制的目標(biāo)
區(qū)塊鏈?zhǔn)鞘裁??簡單而言,區(qū)塊鏈?zhǔn)且环N去中心化的數(shù)據(jù)庫,或可以叫作分布式賬本(distributed ledger)。傳統(tǒng)上所有的數(shù)據(jù)庫都是中心化的,例如一間銀行的賬本就儲存在銀行的中心服務(wù)器里。中心化數(shù)據(jù)庫的弊端是數(shù)據(jù)的安全及正確性全系于數(shù)據(jù)庫運(yùn)營方(即銀行),因?yàn)槿魏文軌蛟L問中心化數(shù)據(jù)庫的人(如銀行職員或黑客)都可以破壞或修改其中的數(shù)據(jù)。
而區(qū)塊鏈技術(shù)則容許數(shù)據(jù)庫存放在全球成千上萬的電腦上,每個(gè)人的賬本通過點(diǎn)對點(diǎn)網(wǎng)絡(luò)進(jìn)行同步,網(wǎng)絡(luò)中任何用戶一旦增加一筆交易,交易信息將通過網(wǎng)絡(luò)通知其他用戶驗(yàn)證,記錄到各自的賬本中。區(qū)塊鏈之所以得其名是因?yàn)樗怯梢粋€(gè)個(gè)包含交易信息的區(qū)塊(block)從后向前有序鏈接起來的數(shù)據(jù)結(jié)構(gòu)。
很多人對區(qū)塊鏈的疑問是,如果每一個(gè)用戶都擁有一個(gè)獨(dú)立的賬本,那么是否意味著可以在自己的賬本上添加任意的交易信息,而成千上萬個(gè)賬本又如何保證記賬的一致性? 解決記賬一致性問題正是區(qū)塊鏈共識機(jī)制的目標(biāo) 。區(qū)塊鏈共識機(jī)制旨在保證分布式系統(tǒng)里所有節(jié)點(diǎn)中的數(shù)據(jù)完全相同并且能夠?qū)δ硞€(gè)提案(proposal)(例如是一項(xiàng)交易紀(jì)錄)達(dá)成一致。然而分布式系統(tǒng)由于引入了多個(gè)節(jié)點(diǎn),所以系統(tǒng)中會出現(xiàn)各種非常復(fù)雜的情況;隨著節(jié)點(diǎn)數(shù)量的增加,節(jié)點(diǎn)失效或故障、節(jié)點(diǎn)之間的網(wǎng)絡(luò)通信受到干擾甚至阻斷等就變成了常見的問題,解決分布式系統(tǒng)中的各種邊界條件和意外情況也增加了解決分布式一致性問題的難度。
區(qū)塊鏈又可分為三種:
公有鏈:全世界任何人都可以隨時(shí)進(jìn)入系統(tǒng)中讀取數(shù)據(jù)、發(fā)送可確認(rèn)交易、競爭記賬的區(qū)塊鏈。公有鏈通常被認(rèn)為是“完全去中心化“的,因?yàn)闆]有任何人或機(jī)構(gòu)可以控制或篡改其中數(shù)據(jù)的讀寫。公有鏈一般會通過代幣機(jī)制鼓勵(lì)參與者競爭記賬,來確保數(shù)據(jù)的安全性。
聯(lián)盟鏈:聯(lián)盟鏈?zhǔn)侵赣腥舾蓚€(gè)機(jī)構(gòu)共同參與管理的區(qū)塊鏈。每個(gè)機(jī)構(gòu)都運(yùn)行著一個(gè)或多個(gè)節(jié)點(diǎn),其中的數(shù)據(jù)只允許系統(tǒng)內(nèi)不同的機(jī)構(gòu)進(jìn)行讀寫和發(fā)送交易,并且共同來記錄交易數(shù)據(jù)。這類區(qū)塊鏈被認(rèn)為是“部分去中心化”。
私有鏈:指其寫入權(quán)限是由某個(gè)組織和機(jī)構(gòu)控制的區(qū)塊鏈。參與節(jié)點(diǎn)的資格會被嚴(yán)格的限制,由于參與的節(jié)點(diǎn)是有限和可控的,因此私有鏈往往可以有極快的交易速度、更好的隱私保護(hù)、更低的交易成本、不容易被惡意攻擊、并且能夠做到身份認(rèn)證等金融行業(yè)必須的要求。相比中心化數(shù)據(jù)庫,私有鏈能夠防止機(jī)構(gòu)內(nèi)單節(jié)點(diǎn)故意隱瞞或篡改數(shù)據(jù)。即使發(fā)生錯(cuò)誤,也能夠迅速發(fā)現(xiàn)來源,因此許多大型金融機(jī)構(gòu)在目前更加傾向于使用私有鏈技術(shù)。
二、區(qū)塊鏈共識機(jī)制的分類
解決分布式一致性問題的難度催生了數(shù)種共識機(jī)制,它們各有其優(yōu)缺點(diǎn),亦適用于不同的環(huán)境及問題。被眾人常識的共識機(jī)制有:
l PoW(Proof of Work)工作量證明機(jī)制
l PoS(Proof of Stake)股權(quán)/權(quán)益證明機(jī)制
l DPoS(Delegated Proof of Stake)股份授權(quán)證明機(jī)制
l PBFT(Practical Byzantine Fault Tolerance)實(shí)用拜占庭容錯(cuò)算法
l DBFT(Delegated Byzantine Fault Tolerance)授權(quán)拜占庭容錯(cuò)算法
l SCP (Stellar Consensus Protocol ) 恒星共識協(xié)議
l RPCA(Ripple Protocol Consensus Algorithm)Ripple共識算法
l Pool驗(yàn)證池共識機(jī)制
(一)PoW(Proof of Work)工作量證明機(jī)制
1. 基本介紹
在該機(jī)制中,網(wǎng)絡(luò)上的每一個(gè)節(jié)點(diǎn)都在使用SHA256哈希函數(shù)(hash function) 運(yùn)算一個(gè)不斷變化的區(qū)塊頭的哈希值 (hash sum)。 共識要求算出的值必須等于或小于某個(gè)給定的值。 在分布式網(wǎng)絡(luò)中,所有的參與者都需要使用不同的隨機(jī)數(shù)來持續(xù)計(jì)算該哈希值,直至達(dá)到目標(biāo)為止。當(dāng)一個(gè)節(jié)點(diǎn)的算出確切的值,其他所有的節(jié)點(diǎn)必須相互確認(rèn)該值的正確性。之后新區(qū)塊中的交易將被驗(yàn)證以防欺詐。
在比特幣中,以上運(yùn)算哈希值的節(jié)點(diǎn)被稱作“礦工”,而PoW的過程被稱為“挖礦”。挖礦是一個(gè)耗時(shí)的過程,所以也提出了相應(yīng)的激勵(lì)機(jī)制(例如向礦工授予一小部分比特幣)。PoW的優(yōu)點(diǎn)是完全的去中心化,其缺點(diǎn)是消耗大量算力造成了的資源浪費(fèi),達(dá)成共識的周期也比較長,共識效率低下,因此其不是很適合商業(yè)使用。
2. 加密貨幣的應(yīng)用實(shí)例
比特幣(Bitcoin) 及萊特幣(Litecoin)。以太坊(Ethereum) 的前三個(gè)階段(Frontier前沿、Homestead家園、Metropolis大都會)皆采用PoW機(jī)制,其第四個(gè)階段 (Serenity寧靜) 將采用權(quán)益證明機(jī)制。PoW適用于公有鏈。
PoW機(jī)制雖然已經(jīng)成功證明了其長期穩(wěn)定和相對公平,但在現(xiàn)有框架下,采用PoW的“挖礦”形式,將消耗大量的能源。其消耗的能源只是不停的去做SHA256的運(yùn)算來保證工作量公平,并沒有其他的存在意義。而目前BTC所能達(dá)到的交易效率為約5TPS(5筆/秒),以太坊目前受到單區(qū)塊GAS總額的上限,所能達(dá)到的交易頻率大約是25TPS,與平均千次每秒、峰值能達(dá)到萬次每秒處理效率的VISA和MASTERCARD相差甚遠(yuǎn)。
3. 簡圖理解模式
(ps:其中A、B、C、D計(jì)算哈希值的過程即為“挖礦”,為了犒勞時(shí)間成本的付出,機(jī)制會以一定數(shù)量的比特幣作為激勵(lì)。)
(Ps:PoS模式下,你的“挖礦”收益正比于你的幣齡(幣的數(shù)量*天數(shù)),而與電腦的計(jì)算性能無關(guān)。我們可以認(rèn)為任何具有概率性事件的累計(jì)都是工作量證明,如淘金。假設(shè)礦石含金量為p% 質(zhì)量, 當(dāng)你得到一定量黃金時(shí),我們可以認(rèn)為你一定挖掘了1/p 質(zhì)量的礦石。而且得到的黃金數(shù)量越多,這個(gè)證明越可靠。)
(二)PoS(Proof of Stake)股權(quán)/權(quán)益證明機(jī)制
1.基本介紹
PoS要求人們證明貨幣數(shù)量的所有權(quán),其相信擁有貨幣數(shù)量多的人攻擊網(wǎng)絡(luò)的可能性低。基于賬戶余額的選擇是非常不公平的,因?yàn)閱我蛔罡挥械娜藙荼卦诰W(wǎng)絡(luò)中占主導(dǎo)地位,所以提出了許多解決方案。
在股權(quán)證明機(jī)制中,每當(dāng)創(chuàng)建一個(gè)區(qū)塊時(shí),礦工需要?jiǎng)?chuàng)建一個(gè)稱為“幣權(quán)”的交易,這個(gè)交易會按照一定比例預(yù)先將一些幣發(fā)給礦工。然后股權(quán)證明機(jī)制根據(jù)每個(gè)節(jié)點(diǎn)持有代幣的比例和時(shí)間(幣齡), 依據(jù)算法等比例地降低節(jié)點(diǎn)的挖礦難度,以加快節(jié)點(diǎn)尋找隨機(jī)數(shù)的速度,縮短達(dá)成共識所需的時(shí)間。
與PoW相比,PoS可以節(jié)省更多的能源,更有效率。但是由于挖礦成本接近于0,因此可能會遭受攻擊。且PoS在本質(zhì)上仍然需要網(wǎng)絡(luò)中的節(jié)點(diǎn)進(jìn)行挖礦運(yùn)算,所以它同樣難以應(yīng)用于商業(yè)領(lǐng)域。
2.數(shù)字貨幣的應(yīng)用實(shí)例
PoS機(jī)制下較為成熟的數(shù)字貨幣是點(diǎn)點(diǎn)幣(Peercoin)和未來幣(NXT),相比于PoW,PoS機(jī)制節(jié)省了能源,引入了" 幣天 "這個(gè)概念來參與隨機(jī)運(yùn)算。PoS機(jī)制能夠讓更多的持幣人參與到記賬這個(gè)工作中去,而不需要額外購買設(shè)備(礦機(jī)、顯卡等)。每個(gè)單位代幣的運(yùn)算能力與其持有的時(shí)間長成正相關(guān),即持有人持有的代幣數(shù)量越多、時(shí)間越長,其所能簽署、生產(chǎn)下一個(gè)區(qū)塊的概率越大。一旦其簽署了下一個(gè)區(qū)塊,持幣人持有的幣天即清零,重新進(jìn)入新的循環(huán)。
PoS適用于公有鏈。
3.區(qū)塊簽署人的產(chǎn)生方式
在PoS機(jī)制下,因?yàn)閰^(qū)塊的簽署人由隨機(jī)產(chǎn)生,則一些持幣人會長期、大額持有代幣以獲得更大概率地產(chǎn)生區(qū)塊,盡可能多的去清零他的"幣天"。因此整個(gè)網(wǎng)絡(luò)中的流通代幣會減少,從而不利于代幣在鏈上的流通,價(jià)格也更容易受到波動(dòng)。由于可能會存在少量大戶持有整個(gè)網(wǎng)絡(luò)中大多數(shù)代幣的情況,整個(gè)網(wǎng)絡(luò)有可能會隨著運(yùn)行時(shí)間的增長而越來越趨向于中心化。相對于PoW而言,PoS機(jī)制下作惡的成本很低,因此對于分叉或是雙重支付的攻擊,需要更多的機(jī)制來保證共識。穩(wěn)定情況下,每秒大約能產(chǎn)生12筆交易,但因?yàn)榫W(wǎng)絡(luò)延遲及共識問題,需要約60秒才能完整廣播共識區(qū)塊。長期來看,生成區(qū)塊(即清零"幣天")的速度遠(yuǎn)低于網(wǎng)絡(luò)傳播和廣播的速度,因此在PoS機(jī)制下需要對生成區(qū)塊進(jìn)行"限速",來保證主網(wǎng)的穩(wěn)定運(yùn)行。
4.簡圖理解模式
(PS:擁有越多“股份”權(quán)益的人越容易獲取賬權(quán)。是指獲得多少貨幣,取決于你挖礦貢獻(xiàn)的工作量,電腦性能越好,分給你的礦就會越多。)
(在純POS體系中,如NXT,沒有挖礦過程,初始的股權(quán)分配已經(jīng)固定,之后只是股權(quán)在交易者之中流轉(zhuǎn),非常類似于現(xiàn)實(shí)世界的股票。)
(三)DPoS(Delegated Proof of Stake)股份授權(quán)證明機(jī)制
1.基本介紹
由于PoS的種種弊端,由此比特股首創(chuàng)的權(quán)益代表證明機(jī)制 DPoS(Delegated Proof of Stake)應(yīng)運(yùn)而生。DPoS 機(jī)制中的核心的要素是選舉,每個(gè)系統(tǒng)原生代幣的持有者在區(qū)塊鏈里面都可以參與選舉,所持有的代幣余額即為投票權(quán)重。通過投票,股東可以選舉出理事會成員,也可以就關(guān)系平臺發(fā)展方向的議題表明態(tài)度,這一切構(gòu)成了社區(qū)自治的基礎(chǔ)。股東除了自己投票參與選舉外,還可以通過將自己的選舉票數(shù)授權(quán)給自己信任的其它賬戶來代表自己投票。
具體來說, DPoS由比特股(Bitshares)項(xiàng)目組發(fā)明。股權(quán)擁有著選舉他們的代表來進(jìn)行區(qū)塊的生成和驗(yàn)證。DPoS類似于現(xiàn)代企業(yè)董事會制度,比特股系統(tǒng)將代幣持有者稱為股東,由股東投票選出101名代表, 然后由這些代表負(fù)責(zé)生成和驗(yàn)證區(qū)塊。 持幣者若想稱為一名代表,需先用自己的公鑰去區(qū)塊鏈注冊,獲得一個(gè)長度為32位的特有身份標(biāo)識符,股東可以對這個(gè)標(biāo)識符以交易的形式進(jìn)行投票,得票數(shù)前101位被選為代表。
代表們輪流產(chǎn)生區(qū)塊,收益(交易手續(xù)費(fèi))平分。DPoS的優(yōu)點(diǎn)在于大幅減少了參與區(qū)塊驗(yàn)證和記賬的節(jié)點(diǎn)數(shù)量,從而縮短了共識驗(yàn)證所需要的時(shí)間,大幅提高了交易效率。從某種角度來說,DPoS可以理解為多中心系統(tǒng),兼具去中心化和中心化優(yōu)勢。優(yōu)點(diǎn):大幅縮小參與驗(yàn)證和記賬節(jié)點(diǎn)的數(shù)量,可以達(dá)到秒級的共識驗(yàn)證。缺點(diǎn):投票積極性不高,絕大部分代幣持有者未參與投票;另整個(gè)共識機(jī)制還是依賴于代幣,很多商業(yè)應(yīng)用是不需要代幣存在的。
DPoS機(jī)制要求在產(chǎn)生下一個(gè)區(qū)塊之前,必須驗(yàn)證上一個(gè)區(qū)塊已經(jīng)被受信任節(jié)點(diǎn)所簽署。相比于PoS的" 全民挖礦 ",DPoS則是利用類似" 代表大會 "的制度來直接選取可信任節(jié)點(diǎn),由這些可信任節(jié)點(diǎn)(即見證人)來代替其他持幣人行使權(quán)力,見證人節(jié)點(diǎn)要求長期在線,從而解決了因?yàn)镻oS簽署區(qū)塊人不是經(jīng)常在線而可能導(dǎo)致的產(chǎn)塊延誤等一系列問題。 DPoS機(jī)制通常能達(dá)到萬次每秒的交易速度,在網(wǎng)絡(luò)延遲低的情況下可以達(dá)到十萬秒級別,非常適合企業(yè)級的應(yīng)用。 因?yàn)楣艑殧?shù)據(jù)交易所對于數(shù)據(jù)交易頻率要求高,更要求長期穩(wěn)定性,因此DPoS是非常不錯(cuò)的選擇。
2. 股份授權(quán)證明機(jī)制下的機(jī)構(gòu)與系統(tǒng)
理事會是區(qū)塊鏈網(wǎng)絡(luò)的權(quán)力機(jī)構(gòu),理事會的人選由系統(tǒng)股東(即持幣人)選舉產(chǎn)生,理事會成員有權(quán)發(fā)起議案和對議案進(jìn)行投票表決。
理事會的重要職責(zé)之一是根據(jù)需要調(diào)整系統(tǒng)的可變參數(shù),這些參數(shù)包括:
l 費(fèi)用相關(guān):各種交易類型的費(fèi)率。
l 授權(quán)相關(guān):對接入網(wǎng)絡(luò)的第三方平臺收費(fèi)及補(bǔ)貼相關(guān)參數(shù)。
l 區(qū)塊生產(chǎn)相關(guān):區(qū)塊生產(chǎn)間隔時(shí)間,區(qū)塊獎(jiǎng)勵(lì)。
l 身份審核相關(guān):審核驗(yàn)證異常機(jī)構(gòu)賬戶的信息情況。
l 同時(shí),關(guān)系到理事會利益的事項(xiàng)將不通過理事會設(shè)定。
在Finchain系統(tǒng)中,見證人負(fù)責(zé)收集網(wǎng)絡(luò)運(yùn)行時(shí)廣播出來的各種交易并打包到區(qū)塊中,其工作類似于比特幣網(wǎng)絡(luò)中的礦工,在采用 PoW(工作量證明)的比特幣網(wǎng)絡(luò)中,由一種獲獎(jiǎng)概率取決于哈希算力的抽彩票方式來決定哪個(gè)礦工節(jié)點(diǎn)產(chǎn)生下一個(gè)區(qū)塊。而在采用 DPoS 機(jī)制的金融鏈網(wǎng)絡(luò)中,通過理事會投票決定見證人的數(shù)量,由持幣人投票來決定見證人人選。入選的活躍見證人按順序打包交易并生產(chǎn)區(qū)塊,在每一輪區(qū)塊生產(chǎn)之后,見證人會在隨機(jī)洗牌決定新的順序后進(jìn)入下一輪的區(qū)塊生產(chǎn)。
3. DPoS的應(yīng)用實(shí)例
比特股(bitshares) 采用DPoS。DPoS主要適用于聯(lián)盟鏈。
4.簡圖理解模式
(四)PBFT(Practical Byzantine Fault Tolerance)實(shí)用拜占庭容錯(cuò)算法
1. 基本介紹
PBFT是一種基于嚴(yán)格數(shù)學(xué)證明的算法,需要經(jīng)過三個(gè)階段的信息交互和局部共識來達(dá)成最終的一致輸出。三個(gè)階段分別為預(yù)備 (pre-prepare)、準(zhǔn)備 (prepare)、落實(shí) (commit)。PBFT算法證明系統(tǒng)中只要有2/3比例以上的正常節(jié)點(diǎn),就能保證最終一定可以輸出一致的共識結(jié)果。換言之,在使用PBFT算法的系統(tǒng)中,至多可以容忍不超過系統(tǒng)全部節(jié)點(diǎn)數(shù)量1/3的失效節(jié)點(diǎn) (包括有意誤導(dǎo)、故意破壞系統(tǒng)、超時(shí)、重復(fù)發(fā)送消息、偽造簽名等的節(jié)點(diǎn),又稱為”拜占庭”節(jié)點(diǎn))。
2. PBFT的應(yīng)用實(shí)例
著名聯(lián)盟鏈Hyperledger Fabric v0.6采用的是PBFT,v1.0又推出PBFT的改進(jìn)版本SBFT。PBFT主要適用于私有鏈和聯(lián)盟鏈。
3. 簡圖理解模式
上圖顯示了一個(gè)簡化的PBFT的協(xié)議通信模式,其中C為客戶端,0 – 3表示服務(wù)節(jié)點(diǎn),其中0為主節(jié)點(diǎn),3為故障節(jié)點(diǎn)。整個(gè)協(xié)議的基本過程如下:
(1) 客戶端發(fā)送請求,激活主節(jié)點(diǎn)的服務(wù)操作;
(2) 當(dāng)主節(jié)點(diǎn)接收請求后,啟動(dòng)三階段的協(xié)議以向各從節(jié)點(diǎn)廣播請求;
(a) 序號分配階段,主節(jié)點(diǎn)給請求賦值一個(gè)序號n,廣播序號分配消息和客戶端的請求消息m,并將構(gòu)造pre-prepare消息給各從節(jié)點(diǎn);
(b) 交互階段,從節(jié)點(diǎn)接收pre-prepare消息,向其他服務(wù)節(jié)點(diǎn)廣播prepare消息;
(c) 序號確認(rèn)階段,各節(jié)點(diǎn)對視圖內(nèi)的請求和次序進(jìn)行驗(yàn)證后,廣播commit消息,執(zhí)行收到的客戶端的請求并給客戶端響應(yīng)。
(3) 客戶端等待來自不同節(jié)點(diǎn)的響應(yīng),若有m+1個(gè)響應(yīng)相同,則該響應(yīng)即為運(yùn)算的結(jié)果;
(五)DBFT(Delegated Byzantine Fault Tolerance)授權(quán)拜占庭容錯(cuò)算法
1. 基本介紹
DBFT建基于PBFT的基礎(chǔ)上,在這個(gè)機(jī)制當(dāng)中,存在兩種參與者,一種是專業(yè)記賬的“超級節(jié)點(diǎn)”,一種是系統(tǒng)當(dāng)中不參與記賬的普通用戶。普通用戶基于持有權(quán)益的比例來投票選出超級節(jié)點(diǎn),當(dāng)需要通過一項(xiàng)共識(記賬)時(shí),在這些超級節(jié)點(diǎn)中隨機(jī)推選出一名發(fā)言人擬定方案,然后由其他超級節(jié)點(diǎn)根據(jù)拜占庭容錯(cuò)算法(見上文),即少數(shù)服從多數(shù)的原則進(jìn)行表態(tài)。如果超過2/3的超級節(jié)點(diǎn)表示同意發(fā)言人方案,則共識達(dá)成。這個(gè)提案就成為最終發(fā)布的區(qū)塊,并且該區(qū)塊是不可逆的,所有里面的交易都是百分之百確認(rèn)的。如果在一定時(shí)間內(nèi)還未達(dá)成一致的提案,或者發(fā)現(xiàn)有非法交易的話,可以由其他超級節(jié)點(diǎn)重新發(fā)起提案,重復(fù)投票過程,直至達(dá)成共識。
2. DBFT的應(yīng)用實(shí)例
國內(nèi)加密貨幣及區(qū)塊鏈平臺NEO是 DBFT算法的研發(fā)者及采用者。
3. 簡圖理解模式
假設(shè)系統(tǒng)中只有四個(gè)由普通用戶投票選出的超級節(jié)點(diǎn),當(dāng)需要通過一項(xiàng)共識時(shí),系統(tǒng)就會從代表中隨機(jī)選出一名發(fā)言人擬定方案。發(fā)言人會將擬好的方案交給每位代表,每位代表先判斷發(fā)言人的計(jì)算結(jié)果與它們自身紀(jì)錄的是否一致,再與其它代表商討驗(yàn)證計(jì)算結(jié)果是否正確。如果2/3的代表一致表示發(fā)言人方案的計(jì)算結(jié)果是正確的,那么方案就此通過。
如果只有不到2/3的代表達(dá)成共識,將隨機(jī)選出一名新的發(fā)言人,再重復(fù)上述流程。這個(gè)體系旨在保護(hù)系統(tǒng)不受無法行使職能的領(lǐng)袖影響。
上圖假設(shè)全體節(jié)點(diǎn)都是誠實(shí)的,達(dá)成100%共識,將對方案A(區(qū)塊)進(jìn)行驗(yàn)證。
鑒于發(fā)言人是隨機(jī)選出的一名代表,因此他可能會不誠實(shí)或出現(xiàn)故障。上圖假設(shè)發(fā)言人給3名代表中的2名發(fā)送了惡意信息(方案B),同時(shí)給1名代表發(fā)送了正確信息(方案A)。
在這種情況下該惡意信息(方案B)無法通過。中間與右邊的代表自身的計(jì)算結(jié)果與發(fā)言人發(fā)送的不一致,因此就不能驗(yàn)證發(fā)言人擬定的方案,導(dǎo)致2人拒絕通過方案。左邊的代表因接收了正確信息,與自身的計(jì)算結(jié)果相符,因此能確認(rèn)方案,繼而成功完成1次驗(yàn)證。但本方案仍無法通過,因?yàn)椴蛔?/3的代表達(dá)成共識。接著將隨機(jī)選出一名新發(fā)言人,重新開始共識流程。
上圖假設(shè)發(fā)言人是誠實(shí)的,但其中1名代表出現(xiàn)了異常;右邊的代表向其他代表發(fā)送了不正確的信息(B)。
在這種情況下發(fā)言人擬定的正確信息(A)依然可以獲得驗(yàn)證,因?yàn)樽筮吪c中間誠實(shí)的代表都可以驗(yàn)證由誠實(shí)的發(fā)言人擬定的方案,達(dá)成2/3的共識。代表也可以判斷到底是發(fā)言人向右邊的節(jié)點(diǎn)說謊還是右邊的節(jié)點(diǎn)不誠實(shí)。
(六)SCP (Stellar Consensus Protocol ) 恒星共識協(xié)議
1. 基本介紹
SCP 是 Stellar (一種基于互聯(lián)網(wǎng)的去中心化全球支付協(xié)議) 研發(fā)及使用的共識算法,其建基于聯(lián)邦拜占庭協(xié)議 (Federated Byzantine Agreement) 。傳統(tǒng)的非聯(lián)邦拜占庭協(xié)議(如上文的PBFT和DBFT)雖然確??梢酝ㄟ^分布式的方法達(dá)成共識,并達(dá)到拜占庭容錯(cuò) (至多可以容忍不超過系統(tǒng)全部節(jié)點(diǎn)數(shù)量1/3的失效節(jié)點(diǎn)),它是一個(gè)中心化的系統(tǒng) — 網(wǎng)絡(luò)中節(jié)點(diǎn)的數(shù)量和身份必須提前知曉且驗(yàn)證過。而聯(lián)邦拜占庭協(xié)議的不同之處在于它能夠去中心化的同時(shí),又可以做到拜占庭容錯(cuò)。
[…]
(七)RPCA(Ripple Protocol Consensus Algorithm)Ripple共識算法
1. 基本介紹
RPCA是Ripple(一種基于互聯(lián)網(wǎng)的開源支付協(xié)議,可以實(shí)現(xiàn)去中心化的貨幣兌換、支付與清算功能)研發(fā)及使用的共識算法。在 Ripple 的網(wǎng)絡(luò)中,交易由客戶端(應(yīng)用)發(fā)起,經(jīng)過追蹤節(jié)點(diǎn)(tracking node)或驗(yàn)證節(jié)點(diǎn)(validating node)把交易廣播到整個(gè)網(wǎng)絡(luò)中。追蹤節(jié)點(diǎn)的主要功能是分發(fā)交易信息以及響應(yīng)客戶端的賬本請求。驗(yàn)證節(jié)點(diǎn)除包含追蹤節(jié)點(diǎn)的所有功能外,還能夠通過共識協(xié)議,在賬本中增加新的賬本實(shí)例數(shù)據(jù)。
Ripple 的共識達(dá)成發(fā)生在驗(yàn)證節(jié)點(diǎn)之間,每個(gè)驗(yàn)證節(jié)點(diǎn)都預(yù)先配置了一份可信任節(jié)點(diǎn)名單,稱為 UNL(Unique Node List)。在名單上的節(jié)點(diǎn)可對交易達(dá)成進(jìn)行投票。共識過程如下:
(1) 每個(gè)驗(yàn)證節(jié)點(diǎn)會不斷收到從網(wǎng)絡(luò)發(fā)送過來的交易,通過與本地賬本數(shù)據(jù)驗(yàn)證后,不合法的交易直接丟棄,合法的交易將匯總成交易候選集(candidate set)。交易候選集里面還包括之前共識過程無法確認(rèn)而遺留下來的交易。
(2) 每個(gè)驗(yàn)證節(jié)點(diǎn)把自己的交易候選集作為提案發(fā)送給其他驗(yàn)證節(jié)點(diǎn)。
(3) 驗(yàn)證節(jié)點(diǎn)在收到其他節(jié)點(diǎn)發(fā)來的提案后,如果不是來自UNL上的節(jié)點(diǎn),則忽略該提案;如果是來自UNL上的節(jié)點(diǎn),就會對比提案中的交易和本地的交易候選集,如果有相同的交易,該交易就獲得一票。在一定時(shí)間內(nèi),當(dāng)交易獲得超過50%的票數(shù)時(shí),則該交易進(jìn)入下一輪。沒有超過50%的交易,將留待下一次共識過程去確認(rèn)。
(4) 驗(yàn)證節(jié)點(diǎn)把超過50%票數(shù)的交易作為提案發(fā)給其他節(jié)點(diǎn),同時(shí)提高所需票數(shù)的閾值到60%,重復(fù)步驟(3)、步驟(4),直到閾值達(dá)到80%。
(5) 驗(yàn)證節(jié)點(diǎn)把經(jīng)過80%UNL節(jié)點(diǎn)確認(rèn)的交易正式寫入本地的賬本數(shù)據(jù)中,稱為最后關(guān)閉賬本(last closed ledger),即賬本最后(最新)的狀態(tài)。
在Ripple的共識算法中,參與投票節(jié)點(diǎn)的身份是事先知道的,因此,算法的效率比PoW等匿名共識算法要高效,交易的確認(rèn)時(shí)間只需幾秒鐘。這點(diǎn)也決定了該共識算法只適合于聯(lián)盟鏈或私有鏈。Ripple共識算法的拜占庭容錯(cuò)(BFT)能力為(n-1)/5,即可以容忍整個(gè)網(wǎng)絡(luò)中20%的節(jié)點(diǎn)出現(xiàn)拜占庭錯(cuò)誤而不影響正確的共識。
2. 簡圖理解模式
共識過程節(jié)點(diǎn)交互示意圖:
共識算法流程:
(八)POOL驗(yàn)證池共識機(jī)制
Pool驗(yàn)證池共識機(jī)制是基于傳統(tǒng)的分布式一致性算法(Paxos和Raft)的基礎(chǔ)上開發(fā)的機(jī)制。Paxos算法是1990年提出的一種基于消息傳遞且具有高度容錯(cuò)特性的一致性算法。過去, Paxos一直是分布式協(xié)議的標(biāo)準(zhǔn),但是Paxos難于理解,更難以實(shí)現(xiàn)。Raft則是在2013年發(fā)布的一個(gè)比Paxos簡單又能實(shí)現(xiàn)Paxos所解決問題的一致性算法。Paxos和Raft達(dá)成共識的過程皆如同選舉一樣,參選者需要說服大多數(shù)選民(服務(wù)器)投票給他,一旦選定后就跟隨其操作。Paxos和Raft的區(qū)別在于選舉的具體過程不同。而Pool驗(yàn)證池共識機(jī)制即是在這兩種成熟的分布式一致性算法的基礎(chǔ)上,輔之以數(shù)據(jù)驗(yàn)證的機(jī)制。
轉(zhuǎn)載請帶上網(wǎng)址:http://17anzhuo.com/posjifive/300691.html
- 上一篇:pos機(jī)開機(jī)一閃一閃
- 下一篇:重慶pos機(jī)騙局