?

基于DEMATEL-ISM的糧油質量安全區塊鏈優化

2023-01-05 03:56許繼平張博洋王小藝趙燕東
農業機械學報 2022年11期
關鍵詞:糧油分區排序

許繼平 張博洋 張 新 王小藝 李 飛 趙燕東

(1.北京工商大學北京市食品安全大數據技術重點實驗室,北京 100048;2.北京工商大學中國輕工業工業互聯網與大數據重點實驗室,北京 100048;3.北京林業大學工學院,北京 100083)

0 引言

糧油質量安全關系到人民群眾的健康和社會的穩定,當前糧油質量安全問題主要集中在真菌毒素污染嚴重、非法添加有毒有害物、摻假勾兌以及以次充好等[1]。近年來糧油質量安全事件引起了政府和社會的廣泛關注[2-4]。保障糧油質量安全對國民生命健康、社會和諧發展以及人類營養安全具有重要意義[5]。

傳統糧油質量安全監管體系多為中心化的模式,由供應鏈中核心企業集中采集全環節數據并存儲到中心化的服務器進行管理,但中心化的管理模式易受篡改等攻擊[6],安全性無法保障。區塊鏈作為一種去中心化的分布式賬本技術,通過共識機制、加密算法、時間戳等底層技術保證上鏈的數據不被偽造和篡改[7],因此適用于多主體業務系統進行數據信息共享管理的場景[8-10]。區塊鏈的技術特點決定了將其應用于糧油食品質量安全保障領域能夠降低交易風險以及監管成本,提高數據可信度以及信息安全性等,為解決糧油質量安全溯源控制問題提供了解決方案[11]。通過區塊鏈技術建立糧油供應鏈參與主體間的互信機制,解決信息不透明、不對稱等問題,對于快速追蹤、精準定位糧油質量安全風險源頭有重要意義[12-14]。

目前糧油領域區塊鏈技術的研究側重于溯源監管等應用層面,包括基于區塊鏈的信息溯源監管模型的研究以及結合區塊鏈和物聯網等技術的溯源監管應用研究等[15-16]。此類研究雖在一定程度上解決了傳統溯源監管技術存在的數據信任等問題,但由于糧油供應鏈具有主體復雜、風險多、供應網絡跨域、信息鏈難以打通等特點,區塊鏈技術應用于糧油質量安全保障和追溯場景下也引入了新的系統性風險和挑戰?;趥鹘y公鏈改進存儲、共識等的優化方案未能較好地解決區塊鏈擴展性、性能、安全方面的局限,針對區塊鏈技術的優化改進尤其是針對糧油領域等特定場景區塊鏈技術應用的風險分析及優化改進逐漸興起[17-20]。

本文在綜合國內外區塊鏈技術應用研究現狀及發展趨勢的基礎上,基于集成決策實驗室法(Decision making trial and evaluation laboratory,DEMATEL)-解釋結構模型(Interpretative structural modelling method, ISM)可解釋性算法模型解析糧油質量安全區塊鏈風險特征,在此基礎上改進并優化現有完全非可信執行場景中通用型區塊鏈結構,包括在網絡層研究適用于非完全可信執行場景中糧油質量安全專用型區塊鏈網絡結構,在共識層提出一種基于實用拜占庭容錯(Practical Byzantine fault tolerance,PBFT)來改進拜占庭容錯能力,符合糧油質量安全區塊鏈特征的Kafka共識優化算法P-Kafka(Practical Byzantine fault tolerance-Kafka),使得區塊鏈在風險可辨識和可控的情形下適用于糧油質量安全專用場景。

1 基于DEMATEL-ISM的糧油質量安全區塊鏈網絡結構優化

糧油質量安全溯源控制場景下,供應鏈參與主體眾多,且從糧油種植到成品售出全供應鏈中不同參與節點之間存在復雜嵌套、相互交織的關系,采用傳統“一條鏈”式區塊鏈及相應的共識機制容易造成區塊鏈系統網絡擁塞、計算成本高以及共識效率低等一系列問題?;诩蒁EMATEL-ISM可解釋性算法構造糧油質量安全區塊鏈風險多級遞階有向圖,建立糧油質量安全區塊鏈優化網絡結構,并對新型區塊鏈網絡中的參與節點進行分層分區以及子鏈劃分,可在一定程度上節省區塊鏈系統運行計算成本,提高節點隱私信息安全性以及全網節點共識效率。

1.1 基于DEMATEL-ISM的糧油質量安全區塊鏈多級遞階網絡結構

糧油質量安全溯源場景中參與節點眾多、風險關聯關系復雜且溯源數據量大,容易導致區塊鏈網絡負載大、延時較長、廣播資源占用嚴重且耗能高等。糧油質量安全區塊鏈系統中各風險節點關系錯雜但處于同一網絡系統,符合DEMATEL和ISM的應用條件,故引入DEMATEL和ISM兩種系統分析方法并進行集成,根據糧油質量安全區塊鏈風險間的關聯關系對風險節點進行分層分區處理,以理清糧油質量安全區塊鏈風險因素節點間的關聯關系并改進傳統糧油質量安全區塊鏈網絡的結構。

1.1.1DEMATEL和ISM結合機理

DEMATEL是一種通過計算系統各要素的中心度和原因度進而分析該要素的系統重要性以及與其它要素間的相互作用關系的算法[21]。ISM是一種研究復雜系統內部各元素間的影響與被影響的關系,且能夠清晰反映系統內部結構的結構模型化算法[22]。

DEMATEL和ISM兩種算法各有優缺點,DEMATEL雖能夠通過系統要素的中心度、原因度等識別出復雜系統的關鍵要素及其影響程度,但其不能明確影響因素間的層次、結構,因此不能有效地對系統進行層次結構的劃分,也不能確定系統的基礎性要素和每個要素的影響范圍。ISM雖能確定系統各要素間的內在邏輯結構,但卻無法知悉各要素的影響度與被影響度,即不能明確要素在系統中的作用。因此,本文綜合兩種算法的優勢,通過DEMATEL簡化ISM中可達矩陣的計算過程,構造集成DEMATEL-ISM可解釋性算法模型,使得在明確糧油質量安全區塊鏈風險因素影響權重的同時,形成層次性、結構化的多級遞階解釋結構模型,具備更強的解釋力。集成模型實施流程如圖1所示。

圖1 DEMATEL-ISM集成模型實施流程

1.1.2DEMATEL-ISM集成模型實施步驟

實施步驟如下:

(1)確定糧油質量安全區塊鏈風險因素。通過分析已有研究成果并結合業內專家意見進行篩選處理,構建糧油質量安全區塊鏈風險指標體系,如表1所示。

表1 糧油質量安全區塊鏈風險指標體系

(2)構建直接影響矩陣?;跇嫿ǖ娘L險指標體系,通過專家小組問卷調研,對風險因素間影響關系進行量化評價,將風險因素間的影響程度定義為[0,9]內10個自然數等級,“0” 代表影響因素對被影響因素無影響,依次遞增,“9”代表影響因素對被影響因素影響程度很高,目標風險因素對自身無影響。根據專家打分的平均數得到一個25×25的風險因素直接影響關系矩陣X,矩陣X的行和列元素為二級和一級風險指標,如表2所示。

表2 風險因素間直接影響矩陣

(3)計算規范化直接影響矩陣。將直接影響矩陣X的每一個元素除以X中各行元素之和的最大值,得到規范化直接影響矩陣G,公式為

(1)

式中n——矩陣維數

aij——矩陣第i行第j列的元素

(4)確定綜合影響矩陣。將步驟(3)得到的規范化直接影響矩陣G自乘n次,并將此n+1個矩陣相加即可得到綜合影響矩陣T,公式為

G(I-G)-1

(2)

式中I——n階單位陣

tij——矩陣中第i行第j列元素

(5)確定各要素的中心度與原因度。中心度與原因度是由系統要素的影響度與被影響度決定的。影響度fi、被影響度ei、各風險因素的中心度Mi、原因度Ni計算公式為

(3)

Mi=fi+ei(i=1,2,…,n)

(4)

Ni=fi-ei(i=1,2,…,n)

(5)

(6)確定風險因素整體影響矩陣。由于DEMATEL中默認元素不影響自身,ISM則相反,因此將綜合影響矩陣T加上n階單位陣,形成可用于ISM計算的整體影響矩陣H,即

H=T+I

(6)

(7)

得出標準化可達矩陣R。

(8)確定可達集、先行集。根據標準化可達矩陣R對各風險因素的可達集、先行集進行劃分。

(9)元素分層處理。滿足

Ri=Ri∩Si(i=1,2,…,N)

(8)

為第1層,然后去除已分層元素并重新篩選第2層元素,依次循環至各元素分層完畢。其中,Ri代表標號為i的風險因素的可達集,Si代表標號為i的風險因素的先行集,N代表總的風險因素數,取值為19。本文風險因素節點層級劃分結果如表3所示。

表3 風險因素節點層級劃分結果

(10)多級遞階解釋結構繪制及解釋。根據風險因素分層結果以及各因素的可達集、前因集,通過縮邊、縮點輸出最簡的風險因素多級遞階有向圖結構模型,如圖2所示。

圖2 糧油質量安全區塊鏈風險多級遞階有向圖

1.1.3多級遞階網絡結構模型構建

根據圖2并結合各風險因素間的二元關系繪制糧油質量安全區塊鏈多級遞階解釋結構模型圖,引入“糧油質量安全區塊鏈風險”作為第0級因素,通過縮邊、縮點、刪除重復強連通關系以及跨層越級關系轉化等處理簡化系統風險傳導過程,并以上文中計算得到的各風險因素的可達集、先行集作為參考和檢驗,最終繪制出糧油質量安全區塊鏈風險多級遞階解釋結構模型圖,如圖3所示。

圖3 糧油質量安全區塊鏈多級遞階解釋結構模型

通過分析,把影響糧油質量安全區塊鏈的風險因素歸結為直接影響因素、表層影響因素、淺層影響因素、深層影響因素以及底層影響因素5類影響因素(圖3)。各層影響因素相互關聯,構成了一個復雜的多層遞階結構,反映了各個風險因素對糧油質量安全區塊鏈的影響機理及各節點或風險因素間的傳導關系。

1.2 區塊鏈網絡節點分區

傳統區塊鏈結構中所有參與節點同步共識對區塊鏈網絡的性能帶來巨大挑戰,不僅容易導致共識效率低下,而且還容易造成網絡擁塞甚至節點崩潰的情況發生。因此,基于集成DEMATEL-ISM可解釋性模型構建的糧油質量安全區塊鏈風險多級遞階解釋結構,對糧油質量安全區塊鏈網絡中各節點進行分層分區劃分處理,實現區塊鏈網絡中各參與節點帶有交易邏輯關系的分層分區?;诖?,建立一種更高效的區塊鏈生成機制,區塊鏈網絡中的全部參與節點分層分區共識可有效降低區塊鏈系統運行的計算資源成本、減少網絡擁塞情況、提高節點共識效率,進而實現對糧油質量安全區塊鏈結構進行優化。

本文根據各風險節點在區塊鏈網絡中的地位重要性以及節點間的交易關聯關系對糧油質量安全區塊鏈網絡中各風險節點進行分層分區處理。區塊鏈網絡中的共識節點的分層是實現節點分區的基礎,基于DEMATEL-ISM集成模型構建的風險節點多級遞階有向圖,根據各個風險節點對整個糧油質量安全區塊鏈系統作用的影響程度和地位對其進行區域劃分,建立從底層節點區域、中層節點區域、上層節點區域的“六層三區”區塊鏈網絡節點分層分區體系,其中,多級遞階解釋結構模型表層影響因素又劃分為了層級2和層級3,如圖4所示。

圖4 區塊鏈節點分層分區體系

在糧油質量安全區塊鏈共識節點分層分區體系構建過程中,各參與節點在區塊鏈系統中的交易地位與區塊鏈節點分層分區體系的區域層級成反比,由糧油質量安全區塊鏈風險分析結果可知,圖4中區域3為底層節點區域,其所覆蓋的區塊鏈網絡節點主要為對整個糧油質量安全區塊鏈系統影響更為深層和全面的影響因素節點,包括底層因素節點以及深層因素節點,此類節點在區塊鏈網絡中節點交易關系中占據的地位也較高。區域2為中層節點區域,其中覆蓋的區塊鏈網絡節點主要為淺層因素節點,此類風險節點作用機理復雜,風險節點相互之間也呈集聚的態勢,將其劃分為一個單獨的區域進行內部共識不僅可顯著提高區塊鏈全網共識效率,還能在一定程度上提升參與節點的隱私信息安全。區域1為上層節點區域,覆蓋的區塊鏈網絡節點主要為威脅糧油質量安全區塊鏈的直接因素節點以及表層因素節點,此類節點位于糧油質量安全溯源供應鏈的末端,對整個糧油質量安全區塊鏈系統的影響機理相對簡單,作用范圍也較小,因此在區塊鏈全網節點進行交易、共識時的地位也相對較弱。

通過對基于DEMATEL-ISM的糧油質量安全區塊鏈網絡結構中的共識節點進行分層分區處理,構建了多個松耦合的區塊鏈共識節點集群區域,各共識節點區域之間無相互干擾,可協同并發執行節點共識,進而提高區塊鏈全網的共識效率、吞吐量等性能。

1.3 區塊鏈網絡子鏈劃分

基于集成DEMATEL-ISM可解釋性算法模型構建的糧油質量安全區塊鏈網絡結構,結合“六層三區”的區塊鏈網絡節點分層分區體系以及各風險節點在整個區塊鏈系統中的影響程度,對分層分區體系內的區塊鏈網絡各節點進行進一步的子鏈劃分。在糧油質量安全區塊鏈節點分層體系中,通過從底層起始節點逐漸向上層節點探尋,遇分叉節點終止,將由起始節點至分叉節點之間的所有節點劃分為一個共識節點子鏈,再以分叉節點作為起始節點重復向上層節點探尋,直至完成所有子鏈的劃分。并根據劃分子鏈中各節點的中心度,選舉出每一條子鏈的主節點,劃分后的子鏈以及每條子鏈的主節點如圖5所示,其中,6條子鏈分別以不同的線型標注以示區分。

圖5 糧油質量安全區塊鏈網絡子鏈劃分示意圖

圖5中6條不同的線型分別代表劃分的6條不同子鏈,每條子鏈中中心度最高的節點即為該條子鏈的主節點,如圖5中的加粗節點,其在子鏈各節點交易共識中的地位也相對更高。網絡內各條子鏈的主節點之間相互通信,并通過共識機制保障整個區塊鏈網絡的分布式一致性。不同的子鏈之間能在同一時間段并發執行共識,打包生成新的區塊,并按照時間的順序有序地添加到區塊子鏈中,而不必等待區塊鏈全網所有節點同步完成共識,這種基于分布式共識的區塊鏈網絡子鏈劃分結構從根本上解決了傳統“一條鏈”式區塊鏈無法在短時間內全部節點達成共識并完成大量交易的問題,有效提升了糧油質量安全區塊鏈的共識效率和交易處理能力,且子鏈分布共識縮小了參與節點的信息共享范圍,在一定程度上降低了潛在的隱私信息安全風險。

2 糧油質量安全區塊鏈共識機制優化

糧油質量安全區塊鏈參與節點眾多、風險因素復雜且溯源數據量大,容易導致區塊鏈網絡擁塞、延時較長等,因此對區塊鏈的性能要求較高。Kafka作為一種高性能、高可擴展性的共識機制,將其應用于糧油質量安全區塊鏈系統可有效提升區塊鏈網絡的擴展性和共識效率,但對于參與節點眾多且關聯關系復雜的糧油質量安全區塊鏈應用場景,Kafka共識仍存在一些不足使得其應用于糧油質量安全區塊鏈優勢效果并不突出。一個區塊鏈網絡中會有多個Orderer節點分布式部署于多個機構,共同提供排序服務。Kafka共識過程中,同一時刻只能對同一個主題中同一個分區的消息進行排序,不支持跨主題跨分區的排序處理。雖然Kafka集群中每個分區都可以擁有相同的副本提升集群的容災能力,支持崩潰容錯,但它并不能提供對網絡中惡意攻擊的保護。因此,本文針對Kafka共識的拜占庭容錯能力以及集群分區機制進行優化改進,以使Kafka共識機制在糧油質量安全區塊鏈溯源場景下既能發揮更高的性能優勢,也能對區塊鏈系統的安全性提供較好的保障,從而使得區塊鏈系統更加適用于糧油質量安全溯源控制專用場景。

2.1 Kafka共識機制分析

Kafka共識機制本質是一個性能高、崩潰容錯能力強、可擴展性強的分布式消息系統[32]。Kafka共識的集群時序消息服務基于Paxos算法,通過zookeeper組件進行多通道分區,無法對抗惡意節點攻擊,但能容忍少于半數的網絡節點發生宕機崩潰等故障。Kafka使用經典的發布-訂閱式消息處理模型,工作原理如圖6所示,其中,系統中生產者節點負責交易消息的廣播發布,消費者節點通過訂閱集群分區中特定的消息主題接收新的交易消息。

圖6 Kafka共識工作原理圖

Kafka共識機制下,當網絡中數據規模逐漸龐大時,可以將Kafka集群拆分為多個分區,Kafka集群能夠在一定時間及規模閾值內保存交易消息且保證各分區內交易消息按順序排列,但并不讀取交易消息,消費者節點根據需求定位查詢交易消息,由此形成回溯機制。此外,Kafka共識下各消費者節點匹配單個或多個消息主題,且屬于不同的集群分區,因此使得交易消息進入Kafka集群后能夠分配給特定的分區并發執行處理進程,且交易消息不會被多次重復讀取,有效提高了網絡的共識效率。

Kafka共識通過一種領導-跟隨機制在多個排序節點之間進行分區復制以實現崩潰容錯。領導節點在網絡分區內負責分區的共識以及公共賬本的維護,跟隨節點則通過復制維護更新分區賬本,在分區網絡內領導節點發生宕機崩潰等問題時,通過將某一跟隨節點轉變為新的領導節點繼續進行分區內共識,使得網絡中的交易數據在當某一節點崩潰失效無法進行共識時也不會丟失。Hyperledger Fabric中的Kafka實際運行邏輯如圖7所示。

圖7 Hyperledger Fabric中的Kafka運行邏輯圖

2.2 基于PBFT改進Kafka拜占庭容錯能力

傳統Kafka共識機制下,雖然其能夠通過排序節點復制支持崩潰容錯,但它并不能抵抗區塊鏈網絡中惡意節點進行女巫攻擊或驗證節點作惡等[33-34]。針對此類問題,首先,將排序服務節點部署到子鏈的每一個參與企業節點中,使子鏈中的每一個節點均參與到交易消息的排序服務中,再通過引入PBFT共識機制的原理,在各排序節點收到交易消息進而將其中繼到Kafka集群之前先在各排序節點之間進行PBFT共識,以此驗證交易消息的一致性,防止網絡中惡意節點的攻擊,實現區塊鏈網絡的拜占庭容錯能力。本文提出一種基于PBFT改進Kafka共識機制的拜占庭容錯能力的共識算法P-Kafka,其原理如圖8所示,其中,C代表消息請求客戶端,OSN10、OSN12、OSN5和OSN19分別代表糧油質量安全區塊鏈各子鏈主排序服務節點。

圖8 改進Kafka共識機制拜占庭容錯能力原理圖

改進Kafka拜占庭容錯能力共識機制的具體執行流程如下:

(1)每次共識執行前,即每次視圖開啟前,首先計算更新主節點,公式為

p=vmodn′

(9)

式中v代表當前視圖編號,n′表示每次共識執行中主節點廣播消息的唯一遞增序號,mod為取余運算。

隨著視圖v不斷增長,主節點p也相應隨之變化,采用這種輪換的方式從各子鏈產生的排序服務主節點中再次選舉產生拜占庭容錯共識的主節點,可避免單一節點長期占據主節點位置進而威脅區塊鏈全網數據安全,圖8中OSN10即代表排序服務主節點。

(2)客戶端發送交易消息m至排序服務主節點OSN10,排序服務主節點由此開始執行三階段協議進行拜占庭容錯共識,排序服務主節點若出現崩潰,則通過視圖切換更換新的排序服務主節點。

(3)排序服務主節點OSN10收到客戶端發送來的消息后,構造預準備消息pre-prepare,v,n′,dm,其中,pre-prepare代表當前消息所處的共識階段,d為交易消息m的摘要,并將消息廣播至區塊鏈網絡中其他排序服務副節點,也即各子鏈的主排序服務節點,如圖8中OSN12、OSN5、OSN19節點所示。

(4)排序服務副節點收到主節點的預準備消息后,首先驗證交易的合法性,以防止客戶端造假或排序服務主節點進行惡意篡改。若經驗證交易消息非法,則該排序服務副節點舍棄該條交易信息并且不參與此次共識過程,若消息驗證合法后則進入準備階段,生成準備消息,并將其廣播給其他節點。

(5)排序服務副節點收到準備消息后,同樣先驗證交易消息的合法性,當排序服務副節點收到包含本節點在內2f+1條一致的準備消息后,進入確認階段,構造確認消息并且廣播至區塊鏈網絡中其他排序服務節點,其中f代表故障節點數。

(6)排序服務節點收到包含自身在內2f+1條一致性的確認消息后,將交易消息m中繼至Kafka集群,待Kafka集群對交易消息處理完畢后,再通過排序服務節點打包生成新的區塊添加上鏈,并將其發送至請求客戶端,由此實現Kafka的拜占庭容錯共識。

2.3 糧油質量安全區塊鏈場景下的Kafka分區優化

分區機制是Kafka共識實現高吞吐量、高性能的重要手段,但分區的數量并非與分區的效果以及區塊鏈網絡的性能成正比,區塊鏈網絡中分區的數量越多,網絡消耗的計算資源也就越多,分區數量過多或過少均無法較好地發揮Kafka的高伸縮性、負載均衡以及動態調節等能力。尤其當應用于實際場景中時,由于每個業務場景都不同,分區策略的制定,包括分區數目以及分區節點等的設定也需要結合具體業務應用場景。

目前Kafka使用隨機策略、輪詢策略以及按鍵保存策略3種常用的分區策略。隨機策略屬于最原始的Kafka分區策略,通過產生隨機數將交易消息隨機分配,其分配的均衡性較差,容易給網絡造成負擔。目前Kafka已經默認改為輪詢策略,即按交易消息的順序輪流將每條數據分配到集群分區中。按鍵保存策略即當區塊鏈網絡內的生產者節點發送交易消息時指定一個key值,通過計算這個key的哈希值,按照哈希值對不同的交易消息進行分區存儲。本文考慮糧油質量安全特定應用場景,通過采用按鍵保存分區策略,結合糧油質量安全區塊鏈優化網絡結構以及子鏈劃分情況對Kafka集群分區進行優化,分區優化示意圖如圖9所示。

圖9 Kafka共識分區優化示意圖

Kafka分區的設置與區塊鏈網絡分區體系以及子鏈劃分相匹配,每條子鏈對應一個Broker,一個Kafka集群可以由多個Broker組成,可根據實際業務場景需要進行拓展,如圖9中一個Kafka集群包含6條子鏈對應的6個Broker。此外,根據前文中構建的糧油質量安全區塊鏈網絡節點“六層三區”的分層分區體系,分別將底層、中層、上層節點區域設置為3個不同的Topic,Topic作為Kafka集群中交易消息的主題,可對交易消息進行分類。根據糧油質量安全實際業務場景將其分為3個主題,不同區域內節點交易消息相互之間降低干擾,可有效降低區塊鏈網絡中交易消息的混亂對系統性能造成的影響,且一個較大的Topic可以分布到多個Broker上,以提高區塊鏈網絡的擴展性,如 圖9 中Topic 1分布在Broker 1、Broker 2上,Topic3分布在Broker 4、Broker 5、Broker 6上。以子鏈劃分為依據將每個Topic內部再劃分為若干Partition,且同一Topic內部不同Partition分區只處理相關子鏈節點的交易消息,因此不同Partition上的數據是不重復的。通過對每個Partition分區設定不同的參數,節點客戶端產生的交易消息在經各子鏈主排序節點完成PBFT共識后,由子鏈主排序節點添加消息鍵key,交易消息進入Kafka集群后,由消息鍵key與Kafka集群內相應的Partition分區進行匹配,Kafka通過交易消息key的哈希值來確定消息需要寫入哪個具體的分區,由此確保不同key值的數據寫入不同的Partition分區,不同分區內部各節點再按照交易消息的順序打包形成交易消息序列并存儲,再經由各個子鏈的主排序服務節點打包生成新的區塊,并添加至區塊鏈系統中。通過這種Kafka分區優化的方法實現了糧油質量安全區塊鏈各子鏈分區同步共識,避免重復共識造成的資源浪費,同時也有效提高了交易消息的處理效率和區塊鏈網絡的吞吐量。

3 結果分析

本文基于集成DEMATEL-ISM可解釋性算法模型構建了一種基于多級遞階解釋結構的新型糧油質量安全區塊鏈網絡結構,在風險節點多級遞階有向無環圖的基礎上,對區塊鏈網絡內部的各個參與節點進行分層分區劃分以及子鏈劃分,并對其相應的共識機制進行了優化改進。本文以圖10所示的架構從正確性、性能等方面對糧油質量安全區塊鏈的優化改進結果進行分析。

圖10 糧油質量安全區塊鏈優化結果分析架構

3.1 正確性分析

通過將糧油質量安全區塊鏈的結構設計成基于有向無環圖的多層遞階網絡結構,使得傳統區塊鏈結構形式下對計算資源的大量消耗以及共識效率難以提升的問題得到有效解決。此外,針對糧油質量安全溯源控制場景下傳統單鏈式區塊鏈項目在進行大量驗證交易過程中存在的共識效率低等問題,通過對糧油質量安全區塊鏈系統中區塊生成共識機制進行優化設計,新的共識機制能夠將區塊存儲結構與Kafka集群分區進行有效結合,從而能夠有效應對大量驗證交易,使得同一時間段內區塊鏈網絡內全體用戶節點共同進行交易并同時生成區塊的目標得以實現,且能夠大幅節約區塊鏈系統的計算資源。

區別于傳統的公有鏈、聯盟鏈等形式的區塊鏈,本文提出的基于DEMATEL-ISM構建的有向無環圖式結構的區塊鏈使得區塊鏈網絡內的參與節點可在同一時間內并發執行共識,產生新的區塊,不再需要像傳統區塊鏈一樣等待其他區塊生成完畢后才能生成新的區塊?!傲鶎尤齾^”的糧油質量安全區塊鏈網絡節點分層分區體系使糧油質量安全區塊鏈網絡結構更加明晰,對于構建糧油質量安全區塊鏈的共識機制以及底層智能合約提供了一種高效的設計指引。此外,通過劃分子鏈的區塊鏈網絡結構使得糧油質量安全區塊鏈網絡節點執行共識僅需要同實際業務場景下具有強關聯關系的相關子鏈參與節點之間進行,不需要全網所有節點共同參與共識,極大提高了區塊鏈網絡的共識效率、網絡吞吐量等性能。

Raft算法是一種去中心化、高可用的非拜占庭容錯分布式一致性算法,設置了Leader節點、Follower節點和Candidate節點3種角色。Raft共識中所有操作請求需要先轉發到Leader節點,再由Leader節點發送數據到各Follower節點進行同步,Leader節點選舉過程和日志復制過程都會因Leader負載不均問題而將直接影響共識效率,例如在Candidate節點選舉過程中多個節點獲得相同票數導致投票分歧。PoS(Proof of stake)權益證明引入“幣齡”概念,持有更多幣或更長時間則擁有更多權益,以此將PoW(Proof of work)算力競爭轉化為權益競爭來節約算力,權益的引入也能夠防止節點發起惡意攻擊。但是新區塊的生成傾向于權益更高的節點,并沒有解決中心化程度增強的問題;相比于PoW工作量證明效率有所提高,但交易吞吐量小,共識效率仍無法滿足需求。PBFT算法需要預準備、準備及提交三階段投票達成共識,主節點收到超過2/3節點的準備消息就向全網廣播一條提交消息,即可提交新區塊到本地區塊鏈, 達成對最新高度區塊的共識,支持1/3總節點數量的容錯能力。PBFT通過三階段投票機制有效降低了惡意節點對共識的影響,但是由于一次共識過程需要經歷一次單點全廣播與兩次全點全廣播,通信開銷大,并不適用糧油場景下高交易量的需求。

3.2 性能分析

從去中心化、安全性、共識效率、可擴展性以及一致性5方面分別對PoS、PoW、Raft、PBFT以及P-Kafka的性能做了分析比較,如表4所示。參與共識的節點數量、主節點的選擇方式與共識節點的權重都影響共識的去中心化程度,節點的權利越分散,去中心化程度越高;共識節點數量指參與共識的是部分節點還是全網所有節點;主節點選擇方式決定了共識屬于競爭類還是選舉類;共識節點權重指每一輪共識過程中成為主節點的概率是否相等。安全性主要包括容錯率、節點可控性、攻擊多樣性、攻擊成本與安全恢復性等指標;容錯率指共識在保證區塊鏈在達成共識的前提下所能接受的拜占庭惡意節點在全網節點的占比;節點可控性指參與共識的節點是否有排除惡意節點參與到共識中的能力;攻擊多樣性指共識算法所能承受攻擊的種類、數量;攻擊成本指惡意節點發起攻擊所需要的代價;安全恢復性指區塊鏈受到攻擊后,使數據恢復到攻擊發生前安全狀態的能力。共識效率從延遲、交易吞吐量2個角度分析;延遲指從一個區塊被生成到它的共識過程完成所需要的時間;吞吐量指單位時間內處理交易的數量,吞吐量越高性能越高??蓴U展性包含資源消耗與通信復雜度兩個因素;資源消耗指共識過程中節點對算力、存儲及網絡等資源的消耗程度;通信復雜度指節點與節點之間在區塊鏈網絡中的通信成本。一致性包含了分叉可能性與最終一致性;分叉可能性指區塊鏈是否存在分叉的情況;最終一致性指各個節點的數據在有限時間內最終是否達成一致。

表4 共識算法性能比較

(1)去中心化

本文所提算法通過基于DEMATEL-ISM集成模型分析糧油質量安全實際場景下網絡各節點的中心度,以此作為主排序服務節點選取及進行拜占庭容錯共識的依據,子鏈各節點通過參與Kafka共識優化投票過程,具有一致公平性;PBFT共識中選取Leader過程各個節點參與投票,P-Kafka繼承了這一邏輯,各個節點公平競爭,相比于PoW、PoS這類競爭共識擁有更多的資源就可以壟斷主節點,去中心化程度更高。

(2)安全性

基于公鏈的PoW、PoS競爭類共識,對這類共識發動攻擊的成本較高、難度較大,并且具有一定的安全恢復性。由于Raft共識僅支持故障節點容錯,并不支持惡意節點容錯,無法抵御拜占庭惡意節點的攻擊,不能滿足糧油質量安全場景的應用需求。

優化的糧油質量安全區塊鏈網絡結構更加關注各個參與節點之間的相互關聯關系,將區塊鏈系統的共識以多條子鏈分布式共識的形式完成,各個參與節點共識的對象和范圍大幅減少和縮小,這在一定程度上控制了參與節點信息傳播的范圍,尤其對于保護糧油供應鏈中生產加工類企業節點關鍵生產數據等隱私信息的安全性具有重要意義。改進的共識在Kafka排序過程中引入PBFT投票機制,提升了共識的拜占庭容錯能力,一定程度上提高共識的安全性。

(3)共識效率

傳統的公有鏈、聯盟鏈式區塊鏈因其結構限制出塊效率相對較低,每一筆交易達成共識寫入區塊鏈的過程都需要等待區塊鏈全網中所有的節點完成后才能生成新的區塊,以比特幣區塊鏈為例,其需要每10 min才能生成一個新的區塊,顯然不能滿足實際業務場景的應用需求。本文所構建的糧油質量安全區塊鏈網絡結構以及優化的Kafka共識機制僅在子鏈主排序服務節點進行拜占庭容錯共識時占用一定的計算資源,顯著低于傳統基于PoW等類型的區塊鏈。此外,優化的共識機制基于糧油質量安全溯源場景中授權參與節點建立,其在生成區塊后無需像PoW等傳統公鏈的共識機制那樣需通過連續6個區塊確認才能添加至區塊鏈,基于場景授權的共識機制能夠在新區塊打包完成后直接添加至區塊鏈網絡。對于節點參與眾多、關聯關系復雜、數據量日漸龐大的糧油質量安全區塊鏈溯源場景而言,本文所設計的網絡結構及共識機制在保證參與節點一致公平性的前提下,一定程度上提高了區塊鏈網絡中的交易區塊出塊效率。

(4)可擴展性

可擴展性方面,競爭類共識PoW、PoS資源消耗大,單個節點性能受限,不適合糧油質量安全這類大規模業務的場景。而本文基于PBFT改進的Kafka共識P-Kafka雖然通信復雜度較高,但是相比于競爭類共識可擴展性得到提升。

(5)一致性

在區塊鏈網絡節點達成共識方面,通過對糧油質量安全區塊鏈中的Kafka共識機制進行優化,在交易消息經區塊鏈網絡中各子鏈排序節點中繼到Kafka集群之前增加拜占庭容錯共識的過程,保障了區塊鏈系統在當網絡中存在一定規模的惡意節點攻擊時仍能進行分布式一致性共識,維持區塊鏈系統正常運行。

4 結束語

本文通過對糧油質量安全區塊鏈進行系統性的風險分析研究,通過建立糧油質量安全區塊鏈風險指標體系,并在解析糧油質量安全區塊鏈風險和信息特征的基礎上,改進并優化了現有完全非可信執行場景中通用型區塊鏈結構。包括在網絡層提出了一種適用于非完全可信執行場景中糧油質量安全專用型區塊鏈網絡結構,在共識層提出一種基于PBFT改進拜占庭容錯能力的符合糧油質量安全區塊鏈特征的Kafka共識優化算法P-Kafka,使得區塊鏈在風險可辨識和可控的情形下適用于糧油質量安全專用場景。

猜你喜歡
糧油分區排序
貴州省地質災害易發分區圖
上海實施“分區封控”
作者簡介
恐怖排序
節日排序
最新糧油批發行情
最新糧油批發行情
最新糧油批發行情
大型數據庫分區表研究
大空間建筑防火分區設計的探討
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合