?

基于信任優化的共識算法的區塊鏈知識共享研究實驗測試及分析

2024-01-17 09:54陳海宇
貴陽學院學報(自然科學版) 2023年4期
關鍵詞:分片吞吐量共識

陳海宇

(肇慶醫學高等??茖W校 公共衛生學院,廣東 肇慶 526020)

知識經濟的發展推動著基于區塊鏈的知識共享技術得到快速發展,而實際的知識共享網絡是一種難以利用固定的時間假設來描述的異步網絡。[1-2]同時當前的知識共享算法很難滿足區塊鏈知識共享的吞吐量、安全性等要求,[3-4]因此對現有的知識共享算法進行改進勢在必行。李啟南等為解決主節點在發生錯誤時導致吞吐量降低的問題,通過引入新的區塊拓展對傳統的快速熱材料(Fast-Hot Stuff)算法進行改進。[5]Philsoophian M等對供應鏈管理中知識共享存在的安全性問題,通過運用結構方程模型來改進了供應鏈知識共享的相關實踐。[6]鐘增勝為提升區塊鏈系統的整體性能,通過引入智能合約的相關方法對傳統的權益證明(Proof of Stake,PoS)共識算法進行了改進。[7]在此背景下,研究針對區塊鏈知識共享中的相關問題,通過引入有向無環圖(Directed Acyclic Graph,DAG)算法對傳統的原子廣播協議(Dumbo)算法進行了改進,提出了DAG-Dumbo算法,并針對分片區塊鏈的安全性問題提出了在信任優化基礎上購進的自適應分片算法,旨在提升知識共享經濟時代下區塊鏈的異步環境適應能力以及提升區塊鏈知識共享時的安全性。

1 基于信任優化的共識算法的區塊鏈知識共享研究

1.1 基于DAG-Dumbo算法的區塊鏈異步共識方法設計

區塊鏈的鏈狀結構能確保信息的不可更改性,但也會損害其運行速度。在區塊鏈系統中,由某種原因引起的操作錯誤、系統崩潰、惡意攻擊等都會引起系統錯誤,這樣的錯誤被稱為拜占庭錯誤。[8]在異步網絡環境下,節點超時的原因難以被區分,該網絡更加符合網絡真實環境。當前,Dumbo算法是表現效果最好的異步拜占庭共識算法,能最大化利用網絡環境,從而更快達成共識,該算法的流程如圖1所示。[9]

圖1 Dumbo算法的流程結構

如圖1所示,Dumbo算法在廣播階段,各節點會由客戶端發來的交易txi向其余節點廣播,并將收到的txi放置在緩沖區。在共識階段,各節點在緩沖區選擇一個交易集合,將會運行ABA協議讓節點達成共識。多值驗證拜占庭協議(Multi-value Validated Byzantine Agreement,MVBA)使用了一個外部驗證,其通過判斷消息與外部驗證的符合情況,從而判斷出消息的合法性,并移除了信息矩陣。[10]MVBA算法一開始就會先進入消息同步階段,然后將各節點所提交的建議信息進行傳遞。MVBA算法的通信復雜度計算表達如式(1)所示。

O=(n|m|+λn2)

(1)

在式(1)中,λ代表領導者,m為在預備階段,λ收到的來自客戶端的信息,n為λ為消息m分配序號。Dumbo算法選擇自傳入消息的標記,即消息的id。為避免傳入虛假的id,研究引入可證明的可靠消息傳播算法PRBC。通過收集各節點對消息確認信息的簽名,來確保每條消息正確有效,并保證每條消息至少被一個誠實節v點接收過。PRBC能夠滿足的性質包括簡短性、完整性、有效性,以及一致性。其中,一致性的解釋是若一個城市節點輸出為v,則其他的城市節點v′輸出結果如式(2)所示。

v′=vi

(2)

式(2)為在第i輪次中城市節點的輸出。在PRBC中使用無線承載控制(Radio Bearer Control,RBC)算法時,節點Pi將收到的交易消息分為n-f塊,并將此類小塊與2f個糾刪碼塊組合為廣播集合,其表達如式(3)所示。

(3)

在式(3)中,M為廣播的集合,m與c均為糾刪碼。在消息傳遞時,M中的各消息塊被節點Pi傳送給網絡中的各節點。當其他節點收到Pi傳來的消息塊時,又會將該消息塊發送給另外的節點。在收到n-f個消息塊時,該節點會根據糾刪碼對原始消息進行修正并校驗。若Echo消息被正確地廣播,當收到足夠的Echo消息時,即表示該消息被確認。盡管Dumbo算法具有較好的安全性與共識速度,但該算法串行完成兩個階段流程仍然會降低其整體運行效率。有向無環圖(Directed Acyclic Graph,DAG)沒有區塊的概念,其構成單位是一個個的交易,各單位均記錄著單個使用者的交易,以此來節省打包出塊的時間。因此研究引入有向無環圖DAG共識算法。[11-12]圖2為使用DAG-Dumbo算法的算法工作流程。

圖2 基于DAG的改進Dumbo算法流程

如圖2所示,DAG-Dumbo算法被分為消息廣播與共識階段兩部分。在共識階段,會對從廣播階段收到的交易形成共識。同時,在各交易塊中產生一致的實例,以MVBA為基礎,實現了多個實例之間的并行運算,用以優化交易的處理效率。當交易到達各節點后,會對其進行排序、標記,并將交易存入緩沖區。將緩沖區根據交易狀態分為等待區和多個共識區,以此來區分不同輪次共識的交易。在消息傳播階段,僅接收新交易并對其排序。在共識階段,僅對被打包的交易進行共識協商。此時,各輪次的共識階段均獨立,可以同時執行多個協議。并且在協商過程中,與信息傳播相比,通信的復雜性更大,所以多個協商階段的并行操作可以提高區塊鏈的吞吐量。

1.2 基于信譽優化和DAG-Dumbo算法區塊鏈知識共享方法研究

盡管DAG-Dumbo算法對提高區塊鏈的吞吐量有一定幫助,DAG的異步通信機制在提高可擴展性、縮短確認時間、減少成本等方面優勢明顯,但其安全性、一致性等問題也亟待解決。因此,提高區塊鏈的擴展性尤為重要。分片技術作為一種區塊鏈橫向擴展方法,已被廣泛應用于區塊鏈擴容中。[13]為解決分片方法無法適應知識共享環境的問題,研究提出一種新的區塊鏈分片算法,即RapidChain分片算法,該算法的流程如圖3所示。[14]

圖3 RapidChain分片算法流程

如圖3所示,該算法由多個時代組成。在起始時代中擁有額外的啟動階段,且每個時代都可分為共識階段與重新配置階段。在RapidChain啟動階段,首先會進行根組的選舉,由其決定參考委員會成員。經過多輪組合與選舉,選出最終的根組。每一個時代的開始即共識階段,該階段會對交易進行處理,將其分為分片內部與跨分區交易。其中,分區交易只會運行組委會內部公式協議,并將交易記錄到成員維護的區塊鏈中。在重新配置階段,會為該時代加入的新節點分配委員會,并重組各委會。雖然RapidChain分片算法能夠提高區塊鏈的吞吐量,但由于該算法中各委員會所含的節點較少,這也將導致區塊鏈的安全性減弱。為此,研究為共識節點設置一系列活動狀態,使其在系統中擁有完整的生命周期,且實現節點可動態地加入和退出,該算法即是基于節點歷史行為的信譽值評估方法。[15]由節點參與共識的歷史行為來對區塊鏈中節點的信譽進行決定。研究給定節點歷史行為的輪次衰減因子為wforget,在時代e的后驗分布的參數中,待遺忘參數的計算如式(4)所示。

(4)

(5)

在式(5)中,E(θ1)與E(θ3)分別為節點做出正確與錯誤行為的期望。將式(4)代入式(5),可得到遺忘參數的節點歷史行為分數計算表達式,如式(6)。

(6)

由式(6)的信譽計算方法可使歷史投票的日志信息為各節點計算其信譽分數。研究給定一個閾值α和β,將比β小與比β大的閾值分別定義為惡意、正確節點。并將節點大小位于α、β之間的定義為待考察節點。在委員會內部,共識算法通常為投票類的BFT共識算法,維持委員會規模穩定的同時,也能提高各委員會正確的節點占比。在研究中,將wforget定義為信譽算法的輪次衰減因子。在經過無窮時代后的信譽值,即當輪次e→∞時,其計算表達如式(7)所示。

(7)

在式(7)中,i為輪次,e代表時代。當各個時代加入的樣本N相同時,將式(7)代入式(4)可得到式(8)。

(8)

2 DAG-Dumbo算法和ProRapidChain算法性能分析

為驗證DAG-Dumbo算法和ProRapidChain算法在區塊鏈知識共享中的有效性,研究對二者的性能分別進行了分析。研究首先對DAG-Dumbo算法的吞吐量、帶寬與吞吐量的關系,以及節點數量與交易處理時間延遲的關系進行了分析。其中,針對DAG-Dumbo算法來講,研究默認測試時的帶寬為2000k比特/秒(bit/s),實際事務的大小為10bit,測試的全部結果都為執行10次以后的平均數值。結果如圖4所示。

圖4 兩種算法在多個指標關系下的對比結果

由圖4(a)可知,兩種算法隨著批量大小的增加,吞吐量都呈平滑上漲趨勢,但比較明顯的是DAG-Dumbo算法的吞吐量明顯高于Dumbo算法,測試結果前者比后者高約25%。由圖4(b)可知,兩種算法均因帶寬不同而產生不同程度的性能差異。其中,Dumbo算法在帶寬達到3000 k bit/s后,其吞吐量基本不會受到帶寬的影響,但是DAG-Dumbo算法的吞吐量仍有提高。在帶寬達到3500 k bit/s后,這兩種算法的吞吐量都比較穩定,DAG-Dumbo算法的吞吐量大約提高了35%。從圖4(c)可以看出,在相同條件下,DAG-Dumbo算法的時間延遲明顯低于Dumbo算法,其最高不超過2 s。綜合來看,DAG-Dumbo算法在多個循環的情況下有效地改進共識階段的并行,從而大大提高了原有算法的吞吐量,同時其對網絡帶寬的準備更為充足,時間延遲更低。這表明了DAG-Dumbo算法具備較高的性能,改進是有效的。同時,針對ProRapidChain算法性能驗證實驗,首先,研究對比測試了不同算法的吞吐量,結果如圖5所示。

圖5 四種算法在吞吐量上的對比結果

由圖5可知,RapidChain算法和ProRapidChain算法隨著節點數目的不斷增多,時代平均吞吐量也隨著增長,而DAG-Dumbo和Dumbo則呈現相反的趨勢。RapidChain和ProRapidChain對比中后者明顯高于前者的時代平均吞吐量,ProRapidChain在時代數量為5時的時代平均吞吐量達到了9×104(tx/s),遠高于RapidChain的8.8×104(tx/s)。在此基礎上,研究繼續驗證了改進算法鑒別網絡中全部惡意節點的實際性能,結果如圖6所示。

圖6 ProRapidChain算法鑒別網絡中全部惡意節點的實際結果

由圖6可知,隨著信譽分的增長,惡意節點、故障節點以及正確節點三個指標頻次都呈現先增后降的趨勢,并且惡意節點以-0.20為節點、故障節點以0.20為節點、正確節點以0.90為節點。綜合來看,經過一千次的投票,網絡中的信任分配有明顯的差別。其中,節點信任度呈現出正確的頻次最高。另外,通過分析得出的閾值和信譽值可以識別出幾乎全部惡意節點、50%的錯誤節點以及大部分的正確節點,證明ProRapidChain可以有效地抵御帶有偽裝的敵人的實際攻擊。最后,研究分析在新節點增加與多個循環的情況下,ProRapidChain根據節點的動態變化劃分出各個委員會的正確結點所占比例。結果如圖7所示。

圖7 ProRapidChain劃分各個委員會的正確結點所占比例

由圖7可知,每一個委員會的正確結點比例都接近于整個網絡的正確結點,且在新產生的委員會中,正確的結點比例也非常高。同時,雖然在所有的節點中正確的節點比例接近三分之二,但各個委員會最終的正確節點數維持在88%左右。綜合來看,改進后的ProRapidChain算法在性能和安全性上相較于原始算法具備更高的優越性,同時也有效地提升了區塊鏈對實際資源的實際利用率,表明其具備更高的有效性。

3 結論

為解決目前異步網絡環境下區塊鏈支持不足、運行效率低下等問題,研究將有向無環圖DAG引入到Dumbo算法中,提出了DAG-Dumbo算法。并為提高區塊鏈效率、安全和動態網絡適應能力,提出了ProRapidChain算法,同時對二者性能進行了實驗分析。實驗結果表明,在DAG-Dumbo算法性能驗證實驗中,DAG-Dumbo算法的吞吐量比Dumbo算法高25%,DAG-Dumbo算法在帶寬達到3000 k bit/s后仍有提升,而Dumbo算法已經變化穩定,同時DAG-Dumbo算法時間遠低于Dumbo算法。在ProRapidChain算法性能驗證實驗中,ProRapidChain在時代數量為5時的時代平均吞吐量達到了9×104(tx/s),遠高于RapidChain的8.8×104(tx/s)。同時ProRapidChain算法可以識別出幾乎全部的惡意節點,且各個委員會最終的正確節點數維持在88%左右,比例明顯比較高。綜合來看,研究提出的改進后的DAG-Dumbo算法和ProRapidChain算法在性能上優于原始算法,有效提升了區塊鏈異步共識中的效率以及動態的網絡適應能力。但研究對當前異步共識算法的研究還存在不足,其內部并未存在領導節點,限制了異步共識的使用,因此需要在后續對其進行改善。

猜你喜歡
分片吞吐量共識
上下分片與詞的時空佈局
共識 共進 共情 共學:讓“溝通之花”綻放
論思想共識凝聚的文化向度
分片光滑邊值問題的再生核方法
CDN存量MP4視頻播放優化方法
商量出共識
基于模糊二分查找的幀分片算法設計與實現
2017年3月長三角地區主要港口吞吐量
2016年10月長三角地區主要港口吞吐量
2016年11月長三角地區主要港口吞吐量
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合