區(qū)塊鏈的共識算法亿驾,交易云工廠這樣羅列總結(jié)

原標(biāo)題:如何理解區(qū)塊鏈的共識算法嘹黔?

隨著業(yè)務(wù)量的增加,比特幣等公有鏈網(wǎng)絡(luò)已經(jīng)擁堵不堪莫瞬,交易費(fèi)節(jié)節(jié)攀升儡蔓,對比傳統(tǒng)金融結(jié)算系統(tǒng)已經(jīng)沒有速度上的優(yōu)勢。對于去中心化的系統(tǒng)疼邀,由于社區(qū)成員基于自己的利益考慮喂江,無法達(dá)成一致,也就難以采用更高效的共識算法或更先進(jìn)的系統(tǒng)架構(gòu)旁振。

因此获询,社區(qū)出現(xiàn)了閃電網(wǎng)絡(luò)、雷電網(wǎng)絡(luò)等鏈下或側(cè)鏈的方案规求,試圖解決交易性能低下的問題——這些技術(shù)并不提升區(qū)塊鏈本身的共識性能筐付,而是將交易放到區(qū)塊鏈的外部進(jìn)行。

閃電網(wǎng)絡(luò)(Lightning Network)

閃電網(wǎng)絡(luò)(Lighting Network)指的是阻肿,A和B兩人可以把比特幣放到一個多重簽名錢包中鎖定(鏈下)瓦戚,然后進(jìn)行交易簽名更改雙方各自能取回的比特幣數(shù)量。交易參與方可以隨時關(guān)閉交易通道丛塌,最后一筆經(jīng)過簽名且包含最新余額動態(tài)的交易最終將會被廣播并寫入比特幣區(qū)塊鏈(回歸鏈上)较解。這個交易過程也可以在更多人之間進(jìn)行,整個過程實際上不需要在主鏈確認(rèn)赴邻,因為都是幾方之間倒來倒去的”數(shù)字游戲“印衔,因此交易速度會非常迅速。只有當(dāng)關(guān)閉交易通道時姥敛,才會最終確定各自的余額并寫進(jìn)主鏈區(qū)塊奸焙。

在閃電網(wǎng)絡(luò)出現(xiàn)前,雖然比特幣社區(qū)也試圖通過區(qū)塊擴(kuò)容、隔離見證等技術(shù)在一定程度上增加交易處理能力与帆,但這些方式并不能導(dǎo)致交易處理能力出現(xiàn)數(shù)量級的改善了赌。以比特幣區(qū)塊鏈為后盾,在鏈下實現(xiàn)真正的點(diǎn)對點(diǎn)微支付交易玄糟,區(qū)塊鏈處理能力的瓶頸被徹底打破勿她,時延、最終性阵翎、容量甚至隱私問題也迎刃而解逢并,這就是比特幣“閃電網(wǎng)絡(luò)”(Lightning Network)的思路。

閃電網(wǎng)絡(luò)的關(guān)鍵技術(shù)有兩個:RSMC和HTLC郭卫。前者解決了鏈下交易的確認(rèn)問題砍聊,后者解決了支付通道的問題。

閃電網(wǎng)絡(luò)的基礎(chǔ)是交易雙方之間的雙向微支付通道箱沦,RSMC(Recoverable Sequence Maturity Contract)定義了該雙向微支付通道的最基本工作方式辩恼。HTLC(Hashed Timelock Contract)進(jìn)一步實現(xiàn)了有條件的資金支付雇庙,通道余額的分配方式也因此變得更為復(fù)雜谓形。基于HTLC可以實現(xiàn)“閃電網(wǎng)絡(luò)”疆前。

盡管閃電網(wǎng)絡(luò)本身可以基于任何合適的傳統(tǒng)技術(shù)構(gòu)建(例如中心化的服務(wù)器和傳統(tǒng)數(shù)據(jù)庫)寒跳,閃電網(wǎng)絡(luò)的支付通道也可能逐漸向少數(shù)大型中介集中,變成若干大型中介彼此互聯(lián)竹椒、普通用戶直連大型中介的形式童太,但這種方案仍然具有傳統(tǒng)中心化方案不可比擬的優(yōu)勢,因為用戶現(xiàn)在并不需要信任中介胸完,不需要在中介處存錢才能轉(zhuǎn)移支付书释,資金安全受到比特幣區(qū)塊鏈的充分保護(hù)。

閃電網(wǎng)絡(luò)存在的問題:

閃電網(wǎng)絡(luò)的支付通道會導(dǎo)致一定程度的中心化赊窥。如果閃電網(wǎng)絡(luò)存在爆惧,人們不會立即就信任它,短時間內(nèi)不會有錢包或支付供應(yīng)商支持它锨能。

使用閃電網(wǎng)絡(luò)需要提前充值扯再。閃電網(wǎng)絡(luò)的運(yùn)行需要用戶和企業(yè)鎖定在交易期間他們所需數(shù)目的比特幣。對于小額交易不是問題址遇,然而熄阻,如果按照閃電網(wǎng)絡(luò)所建議的‘合理使用案例’中每個人在每6個月中只開啟1個通道的話,這意味著該通道需要鎖定這個用戶在該時間段內(nèi)所持有的最大數(shù)目的價值額度倔约,這需要對鏈下網(wǎng)絡(luò)的充分信任秃殉,還需要人們能預(yù)見將花費(fèi)多少額度,以及何時花費(fèi)。

無法進(jìn)行離線支付钾军,A和B交易脖卖,如果B掉線了,就無法簽名確認(rèn)分配方案巧颈,交易失敗畦木。

雷電網(wǎng)絡(luò)(Raiden Network)

雷電網(wǎng)絡(luò)(Raiden Network)是以太坊社區(qū)提出的自己的鏈下微支付通道解決方案,跟比特幣的閃電網(wǎng)絡(luò)的思路類似砸泛,但也有所發(fā)展十籍,例如引入了較HTLC更為通用的“Smart Condition”等。

因為以太坊智能合約對報文格式?jīng)]有特別的字段限制唇礁,使得Raiden得以為通道余額快照引入一個單增序號勾栗,極為輕松自然地解決了舊版本快照的識別和作廢問題。

和閃電網(wǎng)絡(luò)一樣盏筐,雙方需要在以太坊區(qū)塊鏈上開設(shè)通道并各自鎖定以太围俘。這步動作可通過向Raiden智能合約發(fā)送一條雙方簽名認(rèn)可的報文來實現(xiàn)。報文中的關(guān)鍵信息包括:雙方公鑰琢融、雙方鎖定資產(chǎn)數(shù)量界牡、雙方簽名。

此后的任何支付動作都可以發(fā)生在以太坊區(qū)塊鏈外漾抬,參與雙方只需要私下傳遞一系列報文宿亡。

該如何提升性能?

以迅雷鏈為例纳令,下面來解讀下如何提升性能挽荠。首先從架構(gòu)上優(yōu)化,提出同構(gòu)多鏈的框架平绩。即系統(tǒng)由一條條相對獨(dú)立(獨(dú)立進(jìn)行共識)的鏈組成圈匆,每條鏈有多個節(jié)點(diǎn),每個節(jié)點(diǎn)被分配到其中一條鏈上捏雌,不同的賬戶數(shù)據(jù)被錨定在不同的同構(gòu)鏈上跃赚,然后接入層將交易路由到發(fā)送方所在的鏈上進(jìn)行區(qū)塊打包與共識。系統(tǒng)中鏈的數(shù)量能夠按業(yè)務(wù)需求動態(tài)增加腹忽。因此同構(gòu)多鏈的架構(gòu)首先保證了系統(tǒng)的可擴(kuò)展性来累。

除了架構(gòu)上優(yōu)化使得并發(fā)處理性能提升,還應(yīng)該保證分布式系統(tǒng)中的強(qiáng)一致性窘奏,并具備一定的容錯和防拜占庭節(jié)點(diǎn)作惡的能力嘹锁,因此每條鏈內(nèi)的共識算法可以選擇類 BFT 算法。在每一條單獨(dú)的鏈上着裹,使用實用拜占庭容錯算法(PBFT)保證強(qiáng)一致性领猾,而且一方面通過容錯性,降低節(jié)點(diǎn)失效對整個分布式系統(tǒng)的影響,另一方面采用多次重試和更換失效節(jié)點(diǎn)機(jī)制摔竿,降低節(jié)點(diǎn)間長時間失效的概率面粮,保證系統(tǒng)的可用性。為了解決PBFT算法網(wǎng)絡(luò)消耗高的問題继低,對算法作出了一些優(yōu)化熬苍,降低網(wǎng)絡(luò)消耗,提高了算法的可用性袁翁。

與傳統(tǒng)的PBFT算法類似柴底,對于每一輪共識操作,又包括三個階段:Propose粱胜,Prevote 和 Precommit柄驻。

當(dāng)在某一輪達(dá)成共識(收到+2/3 的 Precommit 投票)后,就會進(jìn)入對下一個高度的共識焙压,從第 0 輪開始鸿脓。下面簡單介紹下詳細(xì)的步驟:

首先介紹一個鎖定區(qū)塊的概念,表示在某個特定的高度和輪數(shù)涯曲,節(jié)點(diǎn)對某個塊收到超過節(jié)點(diǎn)總數(shù) 2/3 的 Prevote 投票集合后野哭,則此節(jié)點(diǎn)對于此高度此輪的區(qū)塊進(jìn)行鎖定。也就是說掀抹,節(jié)點(diǎn)以鎖定區(qū)塊來表示對某一個區(qū)塊的認(rèn)可虐拓。

1)Propose 階段:系統(tǒng)中所有驗證人節(jié)點(diǎn)輪流作為提議者提出提議心俗,而系統(tǒng)中非提議者的節(jié)點(diǎn)在收到提議后傲武,就會進(jìn)入 Prevote 階段。如果當(dāng)前節(jié)點(diǎn)此前存在已鎖定區(qū)塊城榛,則還需要收集所有針對已鎖定區(qū)塊的 Prevote 投票揪利。

2)Prevote 階段:當(dāng)節(jié)點(diǎn)進(jìn)入到 Prevote 階段后,每個節(jié)點(diǎn)廣播自己的Prevote 投票狠持。

具體的疟位,如果當(dāng)前區(qū)塊高度或投票輪數(shù)高于此前已鎖定的區(qū)塊高度或輪數(shù),則將原鎖定的區(qū)塊進(jìn)行解鎖喘垂。如果此時節(jié)點(diǎn)仍含有未解鎖的區(qū)塊甜刻,則對此鎖定的區(qū)塊投 Prevote 投票≌眨或者如果節(jié)點(diǎn)收到合法的 Propose 區(qū)塊得院,則對此區(qū)塊投 Prevote 投票。

當(dāng)階段超時或者接收到大于 2/3 的針對某個塊的投票后章贞,則節(jié)點(diǎn)鎖定此區(qū)塊并進(jìn)入祥绞。

3)Precommit 階段:當(dāng)節(jié)點(diǎn)存在已鎖定區(qū)塊,則對此區(qū)塊投 Precommit 投票。當(dāng)節(jié)點(diǎn)收到針對已鎖定區(qū)塊大于 2/3 的 Precommit 投票時蜕径,就可以將這個塊 commit两踏,并且進(jìn)入針對下一個高度塊的共識。

若 Precommit 階段定時器超時兜喻,則節(jié)點(diǎn)保存已鎖定區(qū)塊梦染,然后重新返回到 Propose 階段。

各節(jié)點(diǎn)通過在以上階段上循環(huán)朴皆,對區(qū)塊進(jìn)行一致性共識弓坞。與 PBFT 算法類似,迅雷鏈共識也經(jīng)過了三階段提交车荔,但通過引入?yún)^(qū)塊鎖定操作渡冻,通過緩存待確認(rèn)區(qū)塊,降低了未達(dá)成共識情況下重復(fù)通信區(qū)塊帶來的網(wǎng)絡(luò)壓力忧便,從而提升了共識效率族吻。

此外,還可以使用玩客云設(shè)備作為驗證人節(jié)點(diǎn)珠增。由于玩客云節(jié)點(diǎn)數(shù)量非常龐大(已超過150萬個節(jié)點(diǎn)數(shù))超歌,而且因為是用戶家庭的共享節(jié)點(diǎn)而存在一定不穩(wěn)定性,所以在PBFT的基礎(chǔ)上融合DPoS的思想蒂教,在每條鏈上周期性地(例如每隔5000個區(qū)塊)選舉出驗證人節(jié)點(diǎn)參與共識巍举。

綜上所述,新型區(qū)塊鏈技術(shù)采用多鏈架構(gòu)實現(xiàn)了可擴(kuò)展性 + 使用PBFT實現(xiàn)了強(qiáng)一致性 + 使用更公平的DPoS進(jìn)一步提升了共識效率凝垛、也得到了更高的可用性懊悯。從去中心化(Decentralization),安全性(Security)和可擴(kuò)展性(Scalability)三要素的角度看梦皮,由海量的廣泛分布的玩客云設(shè)備支撐了去中心化和安全性炭分,采用多鏈架構(gòu)以實現(xiàn)可擴(kuò)展性。

總結(jié)

共識機(jī)制目前已經(jīng)成為了區(qū)塊鏈系統(tǒng)性能的關(guān)鍵瓶頸剑肯。單一的共識算法均存在各種問題捧毛,例如PoW算法存在消耗大量計算資源及性能低下的問題;PoS或DPoS存在“富豪統(tǒng)治”問題让网。融合多種共識算法優(yōu)勢的想法正受到越來越廣泛的關(guān)注呀忧。此外,包括在少部分可信節(jié)點(diǎn)中選取主節(jié)點(diǎn)的共識算法溃睹、保證高概率正確性的的異步共識算法而账、基于特定安全性前提并減少網(wǎng)絡(luò)廣播的共識算法、基于可信硬件的共識算法等丸凭,也是未來區(qū)塊鏈共識算法的研究熱點(diǎn)福扬。

隨著區(qū)塊鏈中賬本數(shù)據(jù)的增加和業(yè)務(wù)量的提升腕铸,可擴(kuò)展性也是區(qū)塊鏈系統(tǒng)迫切需要解決的問題,同時對共識算法也提出了新的挑戰(zhàn)铛碑。以太坊項目正在研發(fā)中的分片(shard)方案也是實現(xiàn)可擴(kuò)展性的另一種方案狠裹,受到廣泛關(guān)注。

本文以迅雷鏈為例的實踐汽烦,相信能給業(yè)界提供一個區(qū)塊鏈應(yīng)用落地的優(yōu)秀案例:在設(shè)計和實現(xiàn)同構(gòu)多鏈的架構(gòu)的同時涛菠,盡可能地保證系統(tǒng)的可擴(kuò)展性;采用有完善理論證明的PBFT算法保證強(qiáng)一致性和共識性能撇吞,滿足了強(qiáng)一致性和高可擴(kuò)展性的業(yè)務(wù)需求俗冻;在海量的玩客云節(jié)點(diǎn)上,改進(jìn)了DPoS的公平性牍颈,進(jìn)一步提升了共識效率和可用性迄薄。

一直以來,交易云工廠|EX.WORK(域名)專注于區(qū)塊鏈技術(shù)的研發(fā)煮岁,以提供BTC交易平臺技術(shù)開發(fā)讥蔽、公鏈/私鏈、企業(yè)級錢包画机、私募系統(tǒng)等冶伞,都可以得到很強(qiáng)的技術(shù)支撐。

來源:區(qū)塊網(wǎng)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末步氏,一起剝皮案震驚了整個濱河市响禽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌荚醒,老刑警劉巖芋类,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異腌且,居然都是意外死亡梗肝,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進(jìn)店門铺董,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人禀晓,你說我怎么就攤上這事精续。” “怎么了粹懒?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵重付,是天一觀的道長。 經(jīng)常有香客問我凫乖,道長确垫,這世上最難降的妖魔是什么弓颈? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮删掀,結(jié)果婚禮上翔冀,老公的妹妹穿的比我還像新娘。我一直安慰自己披泪,他們只是感情好纤子,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著款票,像睡著了一般控硼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上艾少,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天卡乾,我揣著相機(jī)與錄音,去河邊找鬼缚够。 笑死说订,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的潮瓶。 我是一名探鬼主播陶冷,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼毯辅!你這毒婦竟也來了埂伦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤思恐,失蹤者是張志新(化名)和其女友劉穎沾谜,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胀莹,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡基跑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了描焰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片媳否。...
    茶點(diǎn)故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖荆秦,靈堂內(nèi)的尸體忽然破棺而出篱竭,到底是詐尸還是另有隱情,我是刑警寧澤步绸,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布掺逼,位于F島的核電站,受9級特大地震影響瓤介,放射性物質(zhì)發(fā)生泄漏吕喘。R本人自食惡果不足惜赘那,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望氯质。 院中可真熱鬧募舟,春花似錦、人聲如沸病梢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蜓陌。三九已至觅彰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間钮热,已是汗流浹背填抬。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留隧期,地道東北人飒责。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像仆潮,于是被迫代替她去往敵國和親宏蛉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評論 2 359

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