解密區(qū)塊鏈最強心臟迅雷鏈共識算法詳解

11月10日在廣州貝塔咖啡舉辦的迅雷鏈技術(shù)沙龍上,迅雷鏈底層工程師張驍就迅雷鏈共識算法的內(nèi)在細節(jié),向到場的開發(fā)者和區(qū)塊鏈愛好者做了詳細解讀。DPoA+PBFT的算法保證了分布式系統(tǒng)中的強一致性和高效率共識,吸引了在場來賓的關(guān)注。
什么是共識算法?
張驍認為,區(qū)塊鏈建立在分布式系統(tǒng)上,有若干個節(jié)點,每個節(jié)點都會維護自己的數(shù)據(jù),這些數(shù)據(jù)需要保證一致性。如果不同的節(jié)點提供的數(shù)據(jù)不同,就不是一個能夠正常對外工作的分布式系統(tǒng)。所以在區(qū)塊鏈中,需要把這些數(shù)據(jù)通過復制和同步,來保持一致性,這個過程就叫做共識。
共識過程中所使用的算法就叫共識算法。對于區(qū)塊鏈來說,共識算法的作用就是制定達成共識的標準,即當數(shù)據(jù)有所不同時,以誰的為準。張驍深入淺出,用通俗易懂的方式,解釋了這個概念。
當前主流共識算法的分類
張驍表示,目前共識算法可分為分為概率一致性共識和絕對一致性共識。
概率一致性共識算法是指在某一個時間點上,允許數(shù)據(jù)有一些不一致情況的算法。比如比特幣采用的算法,就是一種典型的概率一致性算法。比特幣達成共識的過程中,如果在同一個時間點有兩個不同的節(jié)點,都找到了滿足這個條件的計算公式,就相當于都可以產(chǎn)生一個區(qū)塊,然后就產(chǎn)生了分叉。當然,這種分叉是會被下一輪的挖礦和共識過程所修正的,最終還是會達成一致,但在其誕生后的一小段時間里,是無法達成一致的。
絕對一致性共識算法是指數(shù)據(jù)始終保持一致性的算法,它通過犧牲一定的可用性,保證了數(shù)據(jù)的一致,其中又可以細分CFT和BFT兩個類型。
CFT算法的特點是確定一個固定的節(jié)點數(shù)量,只要有達到這個數(shù)量的節(jié)點確認,那么共識就算達成。比如總共有11個節(jié)點,確定只要4個節(jié)點投票確認某次交易,那么這次交易就算完成。這樣做的結(jié)果是交易確認速度很快,同時結(jié)果永遠都是確定的,而且不會出現(xiàn)分叉。
BFT算法是另外一種常見的絕對一致性算法,它達成共識的過程分為三個階段,分別是預準備、準備還有提交,其共識過程是:
1.預準備階段:某個節(jié)點為從客戶端收到的請求分配提案編號,然后發(fā)出預準備消息,廣播給其它節(jié)點;
2.準備階段:其它節(jié)點收到預準備消息后,檢查消息合法性,如果檢查通過則向其他節(jié)點發(fā)送準備消息,并帶上自己的ID信息,同時接收來自其他節(jié)點的準備信息。收到準備消息的節(jié)點對消息同樣進行合法性檢查驗證,全網(wǎng)中至少2/3的節(jié)點驗證過的消息,才會真正進入準備狀態(tài);
3.提交階段:向全網(wǎng)所有節(jié)點廣播進入準備狀態(tài)的消息,然后由所有節(jié)點進行投票,投票數(shù)達2/3后該消息通過。
各種共識算法的優(yōu)缺點
張驍指出,以比特幣為代表的概率一致性算法的缺點是,對確認時間的要求比較長。比特幣出塊速度為10分鐘,同時還要經(jīng)過6個區(qū)塊的確認,才能得到最終的確定。即要經(jīng)過60分鐘之后,某個交易才能得到確認,而且還不一定能夠保證支付成功。這在實際應用過程中是無法接受的,誰也不能付款后還要等1個小時,才能確定到底有沒有完成付款、拿走東西。
因此,概率一致性算法不適合實際商用,無法滿足實際商業(yè)場景中對交易確認速度、并發(fā)處理的要求。
CFT算法的問題是不能防止節(jié)點間的撮合,比如有4個相熟的節(jié)點勾結(jié)到一起,這樣幾乎就可以確認所有交易。同時也不能防止節(jié)點作惡,比如一個節(jié)點向其中4個節(jié)點發(fā)出一個確認請求,再向其它的節(jié)點發(fā)出另一個完全相反的確認請求,這樣就會同一時間形成兩個完全不同的交易結(jié)果,由此導致系統(tǒng)出現(xiàn)偏差。
因此,CFT算法基本只能在能夠確保節(jié)點誠實度的情況下使用,比如私有鏈。
BFT算法彌補了CFT的漏洞,杜絕了節(jié)點撮合交易和作惡的可能性,每一次交易都經(jīng)過兩輪投票,多次驗證,因此不會出現(xiàn)惡意交易的情況出現(xiàn)。
但它有兩個缺點,一是容錯率變低,因為每輪投票都需要至少2/3的節(jié)點通過才行,所以BFT算法下,節(jié)點最多只能容忍不到1/3的節(jié)點出現(xiàn)故障,如果超過,整個區(qū)塊鏈都不能運行。
其次是由于要進行3個階段,每個階段都需要對全網(wǎng)進行廣播,所以通信量非常大,是節(jié)點總數(shù)量的次方級。因此在節(jié)點數(shù)量比較多的情況下,BFT算法會顯得效率很低,簡單說,就是這種算法不太適用于多節(jié)點的區(qū)塊鏈。
迅雷鏈采用什么共識算法?
基于以上共識算法都無法滿足要求,為了更好的適應各種大型商業(yè)場景,迅雷鏈提出了獨有的同構(gòu)多鏈架構(gòu)結(jié)合DPoA+PBFT的共識算法。
迅雷鏈基于玩客云共享計算提供的150萬個節(jié)點而產(chǎn)生,迅雷鏈先是從這150萬個節(jié)點中,挑選那些在線穩(wěn)定、傳輸通暢、性能較好的優(yōu)質(zhì)節(jié)點,集中成一個備選池,再用DPoA算法,從這備選池里挑選出一定數(shù)量的節(jié)點,組成整個迅雷鏈的記賬網(wǎng)絡。這些節(jié)點會定期輪換、重選,以避免記賬節(jié)點暴露,被外界攻擊。
而在記賬過程中,采用PBFT算法。PBFT算法的優(yōu)點是確認速度快、并發(fā)處理性能高,而且還永不分叉,有很強的一致性,非常適合于實際商用。
但PBFT也有缺點,一是容錯率低,需要保證記賬節(jié)點擁有較高的在線率,二是通信量大,不適合于太多節(jié)點的區(qū)塊鏈。迅雷鏈自身的特點,恰好彌補了這兩個缺陷。
首先,迅雷鏈所有記賬節(jié)點都是優(yōu)中選優(yōu)挑選出來,而且還有大量備用,因此一來節(jié)點故障率本身就不高,二來一旦有節(jié)點出現(xiàn)故障,可以從備選池中立即選擇新的節(jié)點來補上。150萬+的總節(jié)點數(shù),保證了隨時都有足夠的備選節(jié)點使用。
同時由于是采用DPoA算法來挑選記賬節(jié)點,所以在同一時間記賬的節(jié)點數(shù)量不會很多,完美規(guī)避了PBFT算法通信量大的缺點。
基于這種雙重算法的設(shè)計,迅雷鏈才能在保證安全性、去中心化程度的同時,又能實現(xiàn)百萬級TPS、秒級確認速度等超高性能,并能保證不分叉、不回滾,是目前最適合實際商用需求的區(qū)塊鏈。
張驍最后說,沒有任何一種共識算法是最好的,我們不能說到底是POW好,還是DPoA+PBFT好。因為算法好不好,要根據(jù)實際承載的區(qū)塊鏈來判定,通過區(qū)塊鏈面向的業(yè)務場景和目標去考量。迅雷鏈作為區(qū)塊鏈3.0時代的引領(lǐng)者,需要能夠接納更多的商戶上鏈,能夠達到百萬級的TPS,能夠讓交易在每秒級別的時間當中確認。在這樣的需求下,在結(jié)合到有150萬以上節(jié)點的玩客云硬件支持,所以最終選擇了DPoA+PBFT的算法,成就了迅雷鏈的最強心臟。
相關(guān)文章
今日頭條原創(chuàng)度檢測工具,教你頭條號被限流了怎么恢復方法
近期,很多今日頭條的頭條號創(chuàng)作者收到文章不被推薦的提示,原因是與平臺已有內(nèi)容高度相似,對此,我們可以通過以下方法來解決2024-10-21免費AI內(nèi)容檢測器99.98%的準確度,一鍵改寫降A(chǔ)IGC檢測
作為一款支持多語言免費識別AI生成文章檢測工具,并標記出可疑句子,受到了廣大網(wǎng)友的青睞,不用登錄注冊的免費AI文本檢測工具真的太少了,強烈推薦!2024-06-26ChatGPT中文網(wǎng) - ChatGPT中文版免費網(wǎng)頁入口在線使用
ChatGPT中文版是一個面向國內(nèi)用戶的AI機器人網(wǎng)站,旨在為國內(nèi)用戶提供一個自然的環(huán)境、有趣、實用的聊天體驗。它使用最新的GPT自然語言生成技術(shù)來幫助用戶更好地理解他們的2023-02-12在俄羅斯“微軟 Win10 盜版”搜索數(shù)量激增,還有用戶轉(zhuǎn)投開源 Linux 軟
俄羅斯在過去 90 天里,由于系統(tǒng)許可版本存在問題,想要安裝盜版 Windows 10 的搜索請求數(shù)量增加了 80-250%。下文為大家?guī)砹嗽敿毥榻B,需要的朋友一起看看吧2022-07-02- 阿里云和VMware攜手推出新一代阿里云VMware服務,本文為大家打帶來了詳細介紹,感興趣的朋友一起看看吧2022-04-24
2022年蘋果春季發(fā)布會有哪些新品?2022年蘋果春季發(fā)布會新品介紹
大家期待已久的2022年蘋果春季發(fā)布會在今日召開了,這次發(fā)布會帶來了很多優(yōu)質(zhì)新品,下面就來看看這些的新品到底有哪些吧2022-03-09- 阿里方面近期發(fā)布了阿里旺旺群聊服務下線通知,通知稱,阿里旺旺原 9 系列版本中,提供的群聊服務預計將在 2022 年 2 月底正式下線2022-02-23
Linux微信官方版2.1.1什么時候發(fā)布 Linux微信官方版正式發(fā)布介紹
近日,麒麟商店上架了桌面操作系統(tǒng) V10 原生微信 2.1.1 版本,下面就跟著小編一起來詳細地了解一下吧2021-12-31- 卷軸屏智能手機已經(jīng)非常多見了,最近據(jù)消息稱三星卷軸屏智能手表已經(jīng)申請了專利,下面小編就帶大家一起來了解一下2021-12-13
- 全球半導體芯片市場進一步漲價臺積電宣布晶圓代工業(yè)務漲價多達 20%之后,三星正式宣布芯片代工漲價:漲幅高達20%2021-09-01