












摘 要:
針對當前區塊鏈分片模型存在惡意節點聚集、分片失效率高及負載不均衡問題,提出基于節點可信度的區塊鏈動態分片模型(blockchain dynamic sharding model based on node credibility,CBDSM)。首先,構建了一種區塊鏈分片架構,以解決區塊鏈面臨的可擴展性瓶頸問題;其次,設計了節點可信度評估機制以量化節點的能力和可靠度,實現了節點的高效篩選和劃分;在此基礎上設計了動態網絡分片算法及網絡分片流程,通過對不同等級的節點進行動態分配,實現了鏈上負載均衡。理論分析和實驗結果表明,相較于同類模型,該模型吞吐量提升了54%,共識失敗率降低了46%,分片失效率降低了15.6%。該模型能夠保障節點動態均衡,抵抗節點單點聚集和合謀攻擊,確保了區塊鏈分片系統的動態安全性,同時兼顧了系統的高性能及高可擴展性。
關鍵詞:區塊鏈;可擴展性;分片技術;節點可信度;網絡分片
中圖分類號:TP393"" 文獻標志碼:A""" 文章編號:1001-3695(2024)12-005-3563-09
doi: 10.19734/j.issn.1001-3695.2024.04.0243
Blockchain dynamic sharding model based on node credibility
Wu Jiayinga, Yuan Lingyuna, b, Chen Meihonga, Xie Tianyua
(a.School of Information Science amp; Technology, b.Key Laboratory of Educational Information for Nationalities of Ministry of Education, Yunnan Normal University, Kunming 650500, China)
Abstract:
To address the problems of malicious node aggregation, high shard failure rate, and load imbalance in the current models of blockchain shard, this paper proposed a blockchain dynamic sharding model (CBDSM) based on node credibility. Firstly, this paper constructed a blockchain sharding architecture to solve the scalability bottlenecks faced by the blockchain. Secondly, it designed the reliability evaluation mechanism of nodes to quantify the ability and reliability of nodes, which rea-lized the efficient screening and classification of nodes. On this basis, it designed the dynamic network fragmentation algorithm and the network fragmentation flow. Through the dynamic allocation of nodes at different levels, it realized load balancing on the chain. Theoretical analysis and experimental results show that, compared with similar models, CBDSM boasts a 54% increase in throughput, a 46% reduction in consensus failure rate, and a 15.6% decrease in shard failure rate. This model can guarantee the dynamic equilibrium of nodes, and resist the single-point aggregation and collusion attacks of nodes. It ensures the dynamic security of the blockchain shard system, with the high performance and high scalability of the system.
Key words:blockchain; scalability; sharding technology; node credibility; network sharding
0 引言
隨著數字化建設和元宇宙發展的深入推進,區塊鏈技術成為了推動未來數字社會發展的重要引擎。2021年3月,《中華人民共和國國民經濟和社會發展“十四五”規劃和 2035 年遠景目標綱要》[1]明確指出了區塊鏈技術作為新興數字產業的戰略地位,旨在通過區塊鏈技術保障數據要素安全流通與可信共享,以促進各行各業的數字化建設,全力推動數字中國的建設。據賽迪區塊鏈研究院統計,截止2022年底,我國中央及地方已出臺近千余項區塊鏈相關的政策[2],區塊鏈產業規模達到了67億元,涵蓋智慧醫療、數字政務服務、能源、農產品溯源、工業制造、物流等18個領域,可見我國對區塊鏈技術在各行業中的重要性給予了高度重視,也在實際政策層面積極落地。然而,隨著區塊鏈技術在各個領域的廣泛應用,一些性能問題逐漸浮現[3],如交易吞吐量低、存儲開銷大以及時延高等,使得區塊鏈面臨著嚴重的可擴展性問題,難以支撐高并發應用,嚴重制約著區塊鏈技術的實施和落地。
針對區塊鏈可擴展性瓶頸問題,即區塊鏈在吞吐量、交易延遲以及存儲開銷等優化方面,眾多研究者提出了許多不同的解決方案[3~5],主要包括鏈上的增大區塊大小、DAG結構、分片以及鏈下的側鏈、支付通道等。其中,分片技術[6]能夠在不犧牲區塊鏈去中心化的前提下有效解決問題,因而成為目前解決區塊鏈可擴展性瓶頸的主流技術[7,8]。針對區塊鏈的分片技術,文獻[9]提出了適用于無許可區塊鏈的分片協議Elastico,通過將節點隨機劃分成多個分片,每個分片可獨立并行處理交易以解決區塊鏈面臨的性能低下問題;在Elastico基礎上,文獻[10]提出了OmniLedger,利用抗偏差的公共隨機性協議進行節點分配,保證了節點分片的隨機性。文獻[11]提出了一種區塊鏈分片協議RapidChain以平衡各分片中的節點數,其在吞吐量、時延等性能上表現更好。上述分片方案雖然在一定程度上解決了區塊鏈的可擴展性瓶頸問題,但也帶來了新的挑戰,一方面由于分片后區塊鏈的網絡規模更小導致其抗攻擊能力和安全性均下降,且節點隨機分片極易導致惡意節點聚集,惡意節點更容易發起攻擊;另一方面,現存的分片機制未充分考慮節點的異構性,未能較好實現對節點的合理分片,容易造成分片失效和系統負載不均衡,從而極大地影響系統的整體性能和效率。
針對上述區塊鏈分片技術中現存的惡意節點聚集、分片失效率高以及負載不均衡等問題,本文提出了一種基于節點可信度的區塊鏈動態分片模型(CBDSM)。主要貢獻如下:
a)針對區塊鏈分片系統中惡意節點聚集導致的安全性降低問題,構建節點可信度評估機制,利用可信度評估機制衡量節點的可靠性,并設計了節點等級劃分策略以減少系統中的惡意節點,實現對節點的均衡化分片,提高了區塊鏈分片系統的安全性和抗攻擊能力;
b)為實現區塊鏈分片的持續安全和動態穩定,并有效解決分片重組帶來的數據大量遷移的存儲和通信開銷,提出了基于節點等級的動態網絡分片算法并設計了具體的分片流程,保證了系統中對惡意節點的管控,降低了大量資源開銷,實現了分片部分重組和動態均衡。
1 相關工作
為了解決區塊鏈分片技術的性能和安全性問題,文獻[12]提出了Monoxide分片協議,基于節點地址進行網絡分片,并提出了Chu-ko-nu mining進行交易共識,保證了攻擊單分片與攻擊整個網絡同樣困難,但惡意節點容易預測其分片方式,且共識算法能耗高,易造成51%攻擊。文獻[13]為解決片內節點數量較少可能引發的安全問題,引入了可信硬件Intel SGX來實現對節點惡意行為的控制,但可信硬件的使用依賴特定的硬件設備,限制了區塊鏈系統的應用范圍,也增加了系統的成本和復雜性。文獻[14]提出一種基于強化學習的區塊鏈動態分片框架SkyChain,通過靈活調整分片配置參數在動態環境中實現系統性能和安全性的均衡。文獻[15]結合深度強化學習提出了區塊鏈分片策略的優化方案以衡量區塊鏈的性能和安全級別,并通過動態調整參數實現區塊鏈系統的最佳性能。雖然深度強化學習能夠動態調整系統性能同時確保一定的安全性,但其引入了高昂的訓練成本和時間開銷,帶來額外的網絡延遲和開銷,同時增加了系統的復雜性和運行成本。文獻[16]通過K-means聚類算法和VRF實現用戶分組和共識節點分配來實現分片,但該方法犧牲了一定的安全性且計算成本高,增加了算法的復雜性。文獻[17]提出了交易記錄和共識執行解耦的雙鏈架構Benzene,并引入TEE來實現跨分片驗證,但其采用兩段鎖協議處理交易,導致其產生較高的確認延遲。文獻[18]設計了一種名為PYRAMID的區塊鏈分層分片結構,可實現線性可擴展性和高效的跨分片交易處理,但靜態分片的分層配置方式會顯著降低系統安全性。
為了解決分片后惡意節點單點聚集引發的安全性問題,信譽機制被引入到區塊鏈分片策略中,其能夠在不需要硬件成本且不會引發深度強化學習帶來的系統開銷問題的情況下確保區塊鏈分片系統的安全性和性能。鑒于此,眾多學者對基于信譽機制的分片策略進行研究。文獻[19]提出了一種先對節點分類再進行網絡分片的方案,劃分分片時節點必須來自不同類別的分片,但未給出節點的具體劃分原則,在實際應用中存在局限性。文獻[20]針對網絡分片中的節點合謀攻擊提出了一種基于并行多鏈區塊鏈的分片方案,該方案提高了區塊鏈的安全性,但對于節點的行為特征沒有具體的評判標準。文獻[21]提出一種基于信任的分片TBSD方案,通過信任機制和遺傳算法將惡意節點分配到不同的分片以預防惡意節點對單分片帶來的安全問題,雖然在一定程度上防止了惡意節點串通的合謀攻擊,但是當惡意節點比例比較高時難以保證分片的安全性。文獻[22]提出了一種基于懲罰因子和信譽評分的分片模型,通過設置懲罰因子以減少惡意節點成為領導者的概率。文獻[23]通過設置信譽機制來衡量節點行為,基于節點信譽等級實現惡意節點在分片中的均衡化,保證了系統的安全性并提高了系統的吞吐量。文獻[24]設計了一種基于動態獎懲機制(MaOEA-DRP)的多目標優化算法,優化了區塊鏈中節點分配的方式,在一定程度上降低了惡意節點聚集的概率,但是未考慮分片之間的可信度差異,低可信度的分片可能容易受到攻擊。文獻[25]提出了一個具有雙鏈架構的區塊鏈分片方案(RepChain),設計了交易鏈和信譽鏈以實現高效同步共識和增強系統安全性,但每個分片對交易鏈和信譽鏈的維護增加了系統的開銷。文獻[26]設計了基于獎懲機制的信譽方案,及早發現和標記惡意節點,使節點均勻分布,解決了高重配置延遲的問題。
雖然在上述方案中針對惡意節點隨機性帶來的安全攻擊問題引入了信譽機制進行節點劃分,從不同角度改進了基于節點的信譽,但現有的研究中信譽機制對于節點的異構性考慮不夠全面,未能對節點的行為進行具體的細粒度定義和衡量。本文重點關注網絡分片中節點的異構性,提出節點可信度評估機制以構建安全高效的區塊鏈動態分片模型。所提模型充分考慮了節點的差異性,從自身性能和共識行為兩個維度出發對節點評估,不僅有效避免了惡意節點的單點聚集帶來的安全性問題,同時提高了系統的共識效率和性能。
2 節點可信度評估機制
2.1 節點可信度計算方法
為了確保網絡分片后區塊鏈系統的安全性并充分利用系統資源,本文基于P2P網絡中的信任模型[27]并結合區塊鏈分片的特點,建立節點可信度評估機制。區塊鏈網絡分片后,在設計可信度評估機制中僅考慮性能特征或行為特征作為衡量標準都是不全面且存在安全風險的,若僅側重于節點的性能特征,則容易出現惡意節點,因為具有節點高性能而傾向于聚集在特定分片中,導致單一分片的安全性受到嚴重挑戰,甚至存在被惡意節點接管的風險;反之,若僅根據節點的行為特征來評估其可信度而忽略了其性能特征,則不同分片之間的性能差異可能會變得顯著,導致網絡中的資源分配不均、負載不均衡,還可能引發系統瓶頸,最終影響整個區塊鏈網絡的性能和穩定性。
為了更全面、準確地評估區塊鏈網絡中節點的可信度,本文從節點行為和自身硬件性能兩大維度量化評估節點。節點的性能可信度評估主要考慮節點的帶寬、存儲能力、CPU性能和處理能力,帶寬越大、存儲能力越強、CPU性能越好以及處理能力越快,節點的可信度評分就越高。而節點行為可信度則關注節點在共識驗證中的參與數量、處理速度以及提交驗證結果的準確性,若節點在共識驗證中積極參與且提交的結果準確,其行為可信度就會提高。
1) 性能可信度
設有節點集Node={node1,node2,…,nodei,…,nodem},分片集Shard={shard1,shard2,…,shardj,…,shardn},交易列表集
Tx=Txshard1n1Txshard1n2…Txshard1ni…Txshard1nm,
Txshard2n1Txshard2n1…Txshard2ni…Txshard2nm…
Txshardjn1Txshardjn1…Txshardjni…Txshardjnm…
Txshardnn1Txshardnn2…Txshardnni…Txshardnnm
設每個分片中的節點總數為Shard_Node={sn1,sn2,…snj,…,snn}。
節點的性能可信度用于評估節點的自身硬件性能,分片 shardj(shardj∈Shard)中節點的性能可信度集可表示為P={Pshard1n1,Pshard1n2,…,Pshardjni,…,Pshardnnm},性能可信度P各屬性定義為
PS=ps1:網絡帶寬ps2:存儲能力ps3:CPU性能ps4:處理能力
其屬性權重值表示為 λPS={λ1,λ2,λ3,λ4},其中0≤λk≤1,∑4k=1λk=1。分片j中節點i(nodeshardji)的性能可信度值Pshardjni的計算公式如下:
Pshardjni=∑4k=1λk×psk∑4k=1λk(1)
2) 行為可信度
節點的行為可信度用于衡量節點在區塊鏈網絡共識中所表現出的行為和操作的可信程度。行為可信度由共識可信度和響應可信度綜合得到,節點是否積極參與共識、是否提交正確的信息以及是否能夠及時響應區塊鏈中的交易共識都會影響其行為可信度。分片j中節點i(nodeshardji)的行為可信度集可表示為B={Bshard1n1,Bshard1n2,…,Bshardjni,…,Bshardnnm},計算公式如下:
Bshardjni=α1C+α2R (2)
其中:α1和α2是共識可信度C和響應可信度R的可信度評分權重系數,α1+α2=1。
a)共識可信度C,衡量節點參與交易共識的驗證準確性和可靠性。計算公式如下:
C=1-e-ηA(3)
其中:A為節點的共識準確性;η為共識準確性調整參數。
節點的共識準確性A值越接近于1,則說明節點的共識參與度和準確度越高,具有高可信度。A可表示為
A=δ1pcr+δ2pce+δ3pcn∑3k=1δk(4)
其中:PC=pcr:節點提交正確共識交易數量pce:節點提交錯誤共識交易數量pcn:節點拒絕提交共識交易數量,其屬性權重值表示為δPC={δ1,δ2,δ3},δi是節點共識準確性判斷參數,其中0≤δk≤1,δ1+δ2+δ3=1。
b)響應可信度R,衡量節點處理交易的速度,計算公式如下:
R=e-εtimeavg(5)
其中:timeavg為該epoch時期下節點平均交易驗證時間;ε為參數,影響R函數的遞減速度。timeavg的計算公式如下:
timeavg=∑txntx1 timetxitxn(6)
其中:timetxi=timerecv-timesend為該節點驗證第i筆交易時所花費的時間,timesend為主節點向分片副本節點發送交易的時間,timerecv為主節點收到分片成員節點共識回復消息的時間。
3)綜合可信度
利用加權平均方法,綜合考慮節點的硬件性能和共識行為雙重因素,根據節點性能和行為可信度的評分結果,通過對節點性能可信度和節點行為可信度的線性組合得到節點的綜合可信度Credibilityshardjni,其評估公式如下:
Credibilityshardjni=β1Pshardjni+β2Bshardjni(7)
其中:β1和β2是節點性能和行為可信度的評分權重系數,0≤β1≤1,0≤β2≤1且β1+β2=1。
4)可信度閾值
由于每個分片的節點共識行為不一樣,紀元(epoch)更新時分片中節點動態更新的情況也不同,所以引入可信度閾值用于量化評估每個分片中節點的平均性能和安全可靠度。
在區塊鏈分片系統中,一個分片中有多個節點,利用每個節點的綜合可信度,通過加權平均方法評估當前epoch時期內分片的可信度,計算分片內所包含節點的綜合可信度平均值得到該分片的可信度閾值SCredibilitysj,計算公式如下:
SCredibilitysj=θ∑snji=1Credibilityshardjnisnj(8)
其中:θ為閾值調整參數。
2.2 節點可信度等級劃分策略設計
基于節點綜合可信度設計節點的等級劃分策略,主要是在每一個epoch時期對分片中每個節點的綜合可信度進行等級劃分,根據節點等級對其進行隨機分片,從而使得區塊鏈分片更加安全、資源利用率更高。節點可以動態地加入和退出區塊鏈網絡以實現高可靠性的動態網絡模型,根據定義的節點可信度閾值區間來評定節點等級,節點等級不同對應的權限也不同。
2.2.1 節點等級劃分
根據綜合可信度及可信度閾值區間可將節點分為高效可信節點、普通節點和惡意節點三個等級。節點可信度等級劃分如表1所示。
a)高效可信節點。擁有最高的硬件性能和行為可信度,安全等級高且共識效率高,在進行內部共識時不僅參與分片內交易共識的處理和驗證,同時用于競選主節點。對于跨分片交易的處理,高效可信節點同步多個分片的信息,參與分片間的跨分片交易共識。
b)普通節點。用于參與交易共識驗證,完成分片內部交易的處理,構建片內交易區塊。
c)惡意節點。當節點的可信度因為惡意行為而降低到一定閾值時被認定為惡意節點,惡意節點無法進行轉賬、區塊生成和擔任主節點操作。考慮到分片中的節點數量較少,惡意節點的數量對于區塊鏈分片系統的安全性容易造成攻擊,因此直接將惡意節點剔除以降低拜占庭節點再次作惡的概率,從而提升系統的安全性。
2.2.2 節點可信度等級劃分算法
為了降低節點劃分算法的復雜度并提高節點劃分效率,本模型采用可信度閾值區間來劃分節點,而不是對所有節點的可信度值進行排序。通過直接將每個節點的可信度值與預先設定的閾值區間進行匹配可以快速確定節點的等級。基于上述思想設計了節點可信度等級劃分算法,核心偽代碼如算法1所示。
算法1 節點可信度等級劃分算法
輸入:NodeList,thresholds=[(t1,t2),(t2,t3),(t3,t4)]。
輸出:NodeRanks。
NodeRanks=[]; // 初始化節點等級列表
for _, node∶=range NodeList "http:// 遍歷節點列表
Cred ← node.credibility; // 獲取節點的可信度
end for
for _, threshold∶=range thresholds /* 根據閾值區間劃分節點等級 */
lowerBound=threshold[0];
upperBound=threshold[1];
if Credgt;lowerBound amp;amp; Cred lt;=upperBound
node.level ←Level(lowerBound,upperBound); /* 確定節點等級 */
end if
end for
NodeRanks←append(NodeRanks,node); //加入節點等級列表
return NodeRanks //返回節點等級列表
2.3 節點可信度更新流程設計
節點綜合可信度更新流程主要分為請求發送階段、消息廣播階段、消息驗證階段及可信度更新階段,其涉及的符號如表2所示。
1)請求發送階段
在一輪共識結束后計算節點的可信度,為每個分片中的每個節點生成可信度更新請求消息RequestC,客戶端Client用私鑰SKC對請求消息進行簽名,并把公鑰PKC、可信度更新請求RequestC及時間戳T1發送到每個分片中的主節點Primary。
Client→Primary:PK,〈〈RequestC,Viem,Digest〉,Sig(SK)(RequestC)〉,T1(9)
2)消息廣播階段
主節點Primary收到客戶端Client發送的請求后生成廣播消息BroadcastC,主節點用私鑰SKp對廣播消息進行簽名,并把公鑰PKp、廣播消息BroadcastC及時間戳T2發送到分片中的所有共識節點。
Primary→Node:PKP,〈〈BroadcastC,Digest〉,Sig(SKP)(BroadcastC)〉,T2(10)
3)消息驗證階段
分片內的共識節點Node對收到的廣播消息進行驗證,驗證過程包括對簽名、消息內容和時間戳的檢查,以確保可信度更新消息的準確性,驗證通過后由主節點Primary生成回復消息ReplyC并返回給客戶端Client。
Primary→Client:PKP,〈〈ReplyC,CredLink,Digest〉,Sig(SKP)(ReplyC)〉,T3(11)
4)可信度更新階段
客戶端Client驗證收到的回復消息的準確性,確保無錯誤后向節點廣播可信度列表更新消息UpdateC,每個分片中的所有節點收到消息后更新其綜合可信度。
Client→Node:PKC,〈〈UpdateC,CredLink,Digest〉,Sig(SKC)(UpdateC)〉,T4(12)
3 基于節點可信度的區塊鏈動態分片模型
針對區塊鏈系統吞吐量低、交易延遲高、存儲開銷大等可擴展性瓶頸問題,將分片技術引入區塊鏈系統,并且為解決區塊鏈分片的安全性及負載問題,設計節點可信度評估機制,提出基于節點可信度的區塊鏈動態分片模型,如圖1所示。該模型的核心思想是通過分片技術和節點可信度評估機制將傳統區塊鏈網絡隨機劃分為多個分片,每個分片獨立運行,使用交易的哈希地址進行取模操作,將區塊鏈網絡中的交易列表映射到對應分片的交易池中,每個分片獨立維護該分片的交易池。分片中的節點通過實用拜占庭容錯共識算法(practical Byzantine fault tolerance,PBFT)對交易池中的交易進行驗證,分片內的交易區塊由片內共識上鏈、涉及多個分片的交易由特定的跨分片共識策略共識驗證,共識驗證后每個分片中通過共識形成的塊只存儲在分片內的節點中,每個節點并不存儲所有的交易信息。每個節點不存儲鏈上所有分片的塊信息,避免了大量冗余存儲帶來的資源開銷問題,減少了網絡傳輸和數據存儲開銷,提高了系統效率。
3.1 動態網絡分片流程
動態網絡分片流程主要分為分片初始構建階段、共識階段、節點可信度評估階段、網絡分片重組與更新階段。分片流程如圖2所示。
3.1.1 分片初始構建階段
a)初始化節點行為可信度Binit={Bshard1n1,…,Bshardjni,…,Bshardnnm}=0.5,根據性能可信度和綜合可信度計算公式得到節點的初始綜合可信度CredLinkinit。
CredLinkinit:Credibilitys1n1…Credibilitysmnn←CredInit(Pinit,Binit,CpTP,CpTC)(13)
b)利用基于節點可信度的分片策略Optshard將節點均分到每個分片中,以構建一個初始的區塊鏈分片模型Shardinit。
Shardinit:Shard1init,…,Shardminit←ShardInitNodeLinks1,…,NodeLinksm,
CredLinkinit,Optshard(14)
c)客戶端Client使用私鑰SKC對初始分片結果Shardinit進行簽名,并將其公鑰PKC、Shardinit等信息發送至網絡中所有節點。
Client→Node:{PKc,Shardinit,Sig(SKc)(Shardinit),T1epoch}(15)
3.1.2 共識階段
d)各分片中的節點基于PBFT共識算法驗證系統中的交易,在共識驗證過程中,主節點Primary記錄每個節點對于交易的處理情況Resultepoch,主要記錄節點的共識行為、交易驗證數量和驗證每筆交易所花費的時間。
Resultepoch←ConsensusShard1init…Shardminit,Txs1…Txsm,OptPbft,T2epoch(16)
e)各分片中的主節點Primary利用其私鑰SKP對交易處理結果Resultepoch進行簽名,并將公鑰PKP及交易處理結果發送到客戶端Client。
Primary→Client:PKp,Resultepoch,Sig(SKp)(Resultepoch),T3epoch(17)
3.1.3 節點可信度評估階段
f)在一個epoch時期結束后,計算每個節點的性能和行為可信度,組合計算出節點的綜合可信度CredLinke。
CredLinke:Credibilitys1n1…Credibilitysmnn←EvaluateResultepoch,CpTPCpTB,CpTC,Tepoch(18)
g)各分片中的主節點Primary發送節點可信度列表CredLinke、公鑰PKp和時間戳T4epoch及簽名給客戶端Client。
Primary→Client:PKp,CredLinke,Sig(SKp)(CredLinke),T4epoch(19)
h)節點的綜合可信度CredLinke計算成功后,利用節點可信度等級劃分策略Optclass劃分節點類別。如果是惡意節點NodeListfe,從區塊鏈分片系統中刪除該類節點,不再參與后續共識。
NodeRank0e:NodeListse,NodeListne,NodeListfe←NodeClassCredLinke,Thresholds,Optclass(20)
NodeRank1e:NodeListse,NodeListne←NodeClassNodeListse,NodeListne,NodeListfe,Optdel(21)
3.1.4 分片重組與更新階段
i)根據節點的綜合可信度CredLinke以及分片中節點類別的情況NodeRank1e判斷分片失效情況,對失效的分片進行重組。
Sharde+1:Shard1e+1…Shardme+1←ReBuildShard1e…Shardme,NodeRank1e,Optjudge,Optrebuild(22)
j)客戶端Client對分片重組結果進行簽名并將其廣播到網絡中所有節點Node。
Client→Node:PKc,Sharde+1,Sig(SKc)(Sharde+1),T5epoch(23)
k)所有節點對重組結果達成共識后,網絡中的節點對可信度、交易狀態信息進行同步和更新,以進入下一個時期Epoche+1的交易共識階段。
Shard1e+1,…,Shard2e+1,…,Shardme+1←UpDate{Sharde+1,CredLinke+1,Optupdate}(24)
3.2 分片算法
本文提出了基于節點可信度等級的節點分片算法,其核心思想是通過可信度值來劃分節點等級,將惡意節點移除以避免惡意節點集中在某個分區內造成的單分片接管;再對各等級類別中的節點列表進行隨機劃分,保證每個分片中普通節點和高效可信節點的分布近似均衡,提高了整個系統的魯棒性,降低了被攻擊的風險。基于可信度等級的節點分片算法如算法2所示。
算法2 節點可信度等級劃分算法
輸入:NodeList, Shard_Num。
輸出:Shards。
for _, node∶=range NodeList // 評估節點可信度
node.credibility ← calculateCredibility();
end for
NodeRanks=CategorizeNodes(NodeList, thresholds); /*節點等級劃分*/
Shards=InitializeShards(Shard_Num); //初始化分片列表
for _, NodeRank:=range NodeRanks
Nodes ← NodeRank.nodes; // 獲取節點的可信度
RandomSharding(Nodes, Shards); /* 對節點進行隨機均衡劃分*/
end for
for shard in Shards:
if IsShardFaulty(shard) // 判斷分片是否失效
HandleFaultyShard(shard); // 處理失效分片
end if
end for
return Shards //返回節點分片列表
4 安全性與復雜度分析
4.1 1%攻擊
在區塊鏈分片中,網絡被劃分為多個獨立的分片,每個分片具有自己的一組節點負責獨立驗證交易和生成新的區塊。由于分片后節點總數減少,與攻擊整個未分片的區塊鏈系統相比,攻擊者更容易攻擊分片系統中的單個分片,也稱為1%攻擊[28]。不合理的分片方式也會導致惡意節點可以輕易控制計算能力較低的分片,從而使該分片失效,影響整個系統的安全性和一致性。針對上述安全問題,本文模型通過以下兩種方式有效降低了1%攻擊的概率。
a)網絡分片初始構建階段。根據節點可信度評估機制對節點進行等級劃分,充分考慮每個節點的硬件性能差異性。每類節點根據VRF生成隨機數隨機均分給每個分片,節點等級劃分能夠實現分片間計算能力的均衡化,隨機分配確保了分片的隨機性和不可預測性,保證了區塊鏈系統的安全性。因此,在網絡分片的初始構建過程中既不會出現節點數量太少的分片,也不會出現計算能力低下的分片,從而顯著降低了1% 攻擊的可能性,減少了惡意節點合謀攻擊的可能性。
b)網絡分片重組階段。考慮節點的共識行為并計算節點的可信度,通過可信度評估機制可以高效準確地識別出惡意節點并立即將其從區塊鏈分片系統中剔除,以確保區塊鏈的動態負載平衡和持續安全性。在網絡分片的重組過程中惡意節點數量減少,各分片間的性能和可靠性基本相近,從而顯著降低了1% 攻擊的可能性,減少了惡意攻擊的風險。
4.2 拒絕服務攻擊
在拒絕服務(denial of service,DoS)攻擊中,攻擊者向目標節點發送大量的無效交易請求以消耗目標節點的計算資源和帶寬,從而使節點無法處理其他正常的交易與區塊同步請求。然而在本文的模型中,假設攻擊者試圖發起DoS攻擊,向分片系統中的目標節點發送大量交易請求。在分片系統中,每個分片shardj(shardj∈Shard)都由一組可信節點集合Node維護,對于交易請求Txsj={Txshardjn1,…,Txshardjni,…,Txshardjnm},其包含的公鑰為PubKey(Txi),其中Txi∈Txsj。當交易請求Tx被分配到shardj時,shardj的可信節點會檢查其維護的請求列表,若不存在PubKey(Txi)的請求記錄,即PubKey(Tx)PubKey(Txi),則系統會拒絕該交易請求,不進行上鏈共識,從而阻止其廣播到整個網絡,以此抵御其后續的DoS攻擊。
4.3 拜占庭攻擊
在PBFT共識機制中,區塊鏈共識節點最多只能存在三分之一的惡意節點才能保證共識的絕對安全。假設基于PBFT共識算法的區塊鏈系統中共識節點總數為Nodesum,要保證共識的安全性,則惡意節點數f應滿足的條件如式(9)所示。
f≤Nodesum-13」(25)
對于片內采用PBFT類共識算法的區塊鏈分片系統而言,假設將共識節點總數為Nodesum的區塊鏈系統進行網絡分片,分片數量為Shardsum,為了保證系統的安全性,每個分片中惡意節點數f′應滿足的條件如下所示:
f′≤Nodesum/Shardsum-13」(26)
由式(25)(26)可見,當分片中拜占庭節點達到閾值時,系統就會出現安全故障問題,由此可知傳統的采用PBFT共識的區塊鏈分片系統雖然提高了區塊鏈的吞吐量、時延等性能,但由于每個分片獨立共識,片內的共識節點數量減少,拜占庭攻擊概率大增。而本文模型采用了節點可信度評估機制,當共識的節點被評估為惡意節點后將直接將其移出共識節點組,大大降低了惡意節點繼續作惡的概率,提高了分片后系統的容錯能力和抗攻擊能力,極大地增強了系統的安全性。
4.4 復雜度分析
假設區塊鏈分片網絡中的節點數量為n,分片數量為m,每個區塊的大小為b,節點可信度閾值區間個數為t。當客戶端發起交易時,這些交易將發送到每個分片中的主節點,主節點負責在分片內廣播交易,此過程的時間復雜度為Ο(m);隨后,主節點生成大小為b的交易列表區塊,并將區塊廣播到所有分片節點,時間復雜度也為Ο(m);由于區塊大小為b,其時間復雜度是Ο(m2/b);除此之外,如果是跨分片交易,則會增加Ο(n)的跨分片開銷,這與OmniLeger方案[10]一樣。因此,總的共識時間復雜度為Ο(m2/b+n)。在分片重配置階段,設計了基于節點可信度等級的網絡分片算法,其時間復雜度為Ο(nt)+Ο(m)。由于t通常為一個較小的數量,可以視其為Ο(1),所以算法的時間復雜度可以簡化為Ο(n)+Ο(m)。
5 實驗分析
5.1 實驗環境配置
為驗證本文模型的可用性和有效性,基于GoLand開發軟件利用Go語言編寫程序并進行性能測試。實驗過程中,本文以以太坊的真實轉賬交易數據作為數據來源,區塊交易大小為500筆交易,出塊時間設置為3 s,采用PBFT共識算法。實驗詳細環境配置如表3所示。
5.2 可信度分析
5.2.1 節點可信度變化情況
在驗證節點交易行為對可信度的影響過程中,設定誠實節點和惡意節點初始的行為可信度均為0.5。本文模擬了誠實節點在每一輪的共識中以正確的方式執行交易行為,而惡意節點則以拒絕提交共識消息或提交錯誤消息的方式表現惡意行為,圖3記錄了節點可信度的變化情況。
從圖3(a)中誠實節點的可信度變化情況可以看出,隨著交易輪次的增加,誠實節點由于執行正確的共識行為,節點行為可信度逐漸增加,其綜合可信度值不會降低,從而不會因為低于片可信閾值而被剔除區塊鏈分片網絡。從圖3(b)中可知,由于惡意行為的影響,惡意節點的行為可信度逐漸降低,一旦低于片可信閾值,在下一輪的分片重組中此類節點將被系統剔除。實驗結果表明,可信度評估機制能夠根據節點行為及時準確地評估惡意節點,減少惡意節點的數量,進而確保整個系統的穩定性和安全性。
5.2.2 惡意節點占比
為了驗證本文模型評估惡意節點的準確性,對模型進行實驗測試以研究隨著共識輪次的逐漸增加,區塊鏈分片網絡中惡意節點占比的變化情況,測試結果如圖4所示。從圖4可以看出,在缺乏可信評估機制的情況下,惡意節點數量占比一直保持不變;而在本文模型中引入可信度評估機制后,惡意節點數量呈現出逐漸減少的趨勢,這是因為本文模型在分片重組時會根據可信度評估結果周期性剔除網絡中的惡意節點,減少了網絡中惡意節點的數量,從而使得網絡中惡意節點的比例下降。實驗結果表明,該模型在共識輪次達到10次左右時,惡意節點占比降至2%左右,具有較高的評估準確率,顯著提高了系統的容錯能力,有助于減輕惡意節點對區塊鏈分片網絡的潛在威脅。
5.3 區塊鏈分片性能分析
1)吞吐量
吞吐量是衡量區塊鏈交易處理能力的重要指標,在不同節點數量下對傳統未分片的區塊鏈模型與本文模型(CBDSM)進行了吞吐量測試,本文模型設置每10個節點增加一個分片,測試結果如圖5所示。從圖中可以看出,隨著節點數量的增加,傳統未分片的區塊鏈模型的吞吐量逐漸下降,而本文模型呈現出遞增的趨勢。原因是未分片的區塊鏈模型需要所有節點參與交易驗證和共識過程,節點數量增加會造成系統負荷增大,導致吞吐量下降;而本文模型在節點數量增加時分片數量也動態增加,使得系統處理能力得到提升。實驗結果表明,本文模型在吞吐量方面明顯優于傳統未分片的區塊鏈模型。由此可見,本文模型能更好地適應高負載情況下的交易需求,能夠實現吞吐量隨節點數量線性關系的增長,具備較好的可擴展性。
2)存儲開銷
為了驗證本模型在存儲開銷方面的優勢,本節設置節點數量為50個,分片數量為5個,對本文模型和未分片模型測試不同交易數量下其存儲開銷情況,測試結果如圖6所示。從圖中可以看出,當交易數量為300 000筆時,未分片模型存儲開銷為32 700 KB;而本文模型最大的存儲開銷為18 946 KB,平均存儲開銷僅為14 325 KB左右。相比而言,本文模型在存儲開銷上節省了44%左右,原因是本文模型分片后,每個節點只需存儲本分片內的交易區塊信息,而傳統模型中每個節點需存儲所有區塊的信息。此外,隨著網絡規模的擴大,傳統未分片區塊鏈系統的存儲開銷也會隨之大增,但本文模型會動態調整分片數量以進一步分擔存儲和共識壓力。由此可見,本文模型能夠有效降低系統的存儲壓力,節省大量的存儲和資源開銷,提升系統資源利用率。
3)共識失敗率
區塊鏈分片后,每個分片中的節點獨立參與片內共識協議,片內惡意節點數量過多會嚴重影響區塊鏈系統的出塊速率和可用性。若片內主節點為惡意節點會增大PBFT共識協議中視圖轉換的頻率,進而降低系統的共識準確率和效率。為了驗證這一點,本節測試了隨機分片模型(RSM)和本文模型在不同惡意節點下共識失敗的情況。設置區塊鏈分片網絡中節點總數為100個,分片數量為10個,交易總數為1 000,實驗結果如圖7所示。由圖7可知,RSM模型隨著惡意節點數量的增加,共識失敗率逐漸遞增且當惡意節點數量達到33個時,共識失敗率達到了0.63;而本文模型基本在0.15~0.25,且當惡意節點數為35時共識失效率只有0.248,相比于RSM下降了46.7%。主要原因是本文模型利用可信度機制對節點評估,并在共識過程中周期性地剔除了惡意節點,從而減少了惡意節點對共識的影響,顯著降低了共識失敗率,保證了PBFT共識安全以及高效且穩定運行。
5.4 對比分析
5.4.1 各分片方案對比
在本節中,本文模型與其他多種分片方案進行了詳細的分析比較,表4為各種方案的功能性對比。除了OmniLeger和RapidChain外,其他方案都基于可信度進行節點劃分,以增強系統的安全性。相比于現存的基于可信度的分片方案RepChain和Cuckchain,CBDSM方案全面考慮了節點的行為和性能特征并設計了惡意節點的剔除機制,進一步保證了系統的安全。
各分片方案的性能對比如表5所示。在吞吐量和時延方面,CBDSM方案表現出最好的性能;在容錯性上,因對惡意節點的準確識別和去除而提高了系統的容錯性;在復雜度上,雖然RapidChain和Cuckchain的時間復雜度表現較好,但是RapidChain為了解決跨分片交易而產生了大量的事務,顯著降低了系統的吞吐量,而Cuckchain中安全風險較大。
以下從分片失效率、容錯性、吞吐量、時延和分片負載五個關鍵維度進行深入分析,對比了本文模型與隨機分片模型、地址取模分片模型(AMSM)和Monoxide分片模型[12]。在RSM中節點隨機地分配到不同的分片中,由于節點分布是隨機的,并未考慮節點的行為和功能特征,極易造成系統中節點分片不均衡,進而產生惡意節點單點聚集和負載不均的問題;AMSM根據地址信息將節點映射到不同的分片,然而這種預測性的分片方式極易受到攻擊威脅;Monoxide分片模型采用POW的方式進行分片,這種基于算力的分配方式一方面在一定程度上犧牲了去中心化,另一方面也會帶來巨大的資源開銷。本文模型在前述模型的基礎上進行了優化與改進,相對于現有模型,其在安全性、吞吐量以及時延等方面表現出了顯著的優勢。
5.4.2 分片失效率對比
分片失效率是衡量網絡分片有效性的重要指標,分片失效率定義為失效的分片數量占分片總數的比例,計算方式如式(27)所示。分片失效率越大,說明網絡分片惡意節點聚集在極少部分分片的概率越高,存在的安全性隱患就越大。
FailureRate=shardfailshardsum×100%(27)
其中:shardfail、shardsum分別代表失敗的分片數量和分片總數量。
為了全面評估本文模型與其他分片模型在分片失效率方面的表現,本節測試了不同惡意節點比例下各模型的分片失效率,結果如圖8所示。總體而言,隨著惡意節點占比的增加,各模型的失效率均呈上升趨勢,相比而言,CBDSM表現出最低的分片失效率以及較小的失效率增長量。具體而言,當惡意節點占比達到30%時,RSM的平均分片失效率為43.1%,AMSM和Monoxide模型達到了40%,而CBDSM僅為6%。這歸因于本文模型設計了節點可信度評估機制,通過評估節點可信度識別并及時剔除惡意節點,從而顯著降低了惡意節點聚集在少數分片的概率,進而有效減少分片失效的情況。可見,本文模型能夠顯著提高分片的有效性,具備更強的抗攻擊能力和系統穩健性。
5.4.3 容錯性對比
容錯性是指系統能夠在一定程度的節點宕機、共識失敗或部分節點提交了惡意行為的情況下仍能夠正常運行的能力。在區塊鏈系統中,容錯性通常用式(28)來計算。
F=N-13(28)
其中:F是可以容忍的拜占庭錯誤節點數;N是總的節點數。
在CBDSM中由高效可信節點和普通節點參與共識,假設在模型中系統的高效可信節點和普通節點總數為Nc,可以容納的拜占庭節點數為Fc,為了保證共識的安全可靠,Fc需要滿足的條件如下所示:
Fc≤Nc2(29)
在RSM和AMSM中,由于系統采用PBFT進行共識,假設在模型中系統的高效節點總數為Np,可以容納的拜占庭節點數為Fp,要保證共識的絕對安全,可以容忍的最大拜占庭節點總數應滿足的條件如下所示:
Fp≤Np-12(30)
假設在區塊鏈網絡中參與共識的節點規模相同,即Nc=Np,通過式(31)計算可得Fcgt;Fp。
Fc-Fp=Nc2-Np-13=Nc+13(31)
由于Nc和Np相同且都大于0,所以容易得到Fcgt;Fp恒成立。也就說明在網絡節點規模相同的情況下,本文模型能夠容忍更多的惡意節點,具有更高的容錯性,能更好地抵抗故障和攻擊,保證數據的一致性和安全性。
5.4.4 吞吐量對比
將CBDSM與RSM、AMSM和Monoxide模型進行對比,測試了在不同分片數量條件下各模型的吞吐量情況,實驗結果如圖9所示。在分片數量一致的情況下,CBDSM表現出最高的吞吐量,在分片數量不斷增加的情況下,它的吞吐量增長幅度更為顯著。具體來說,分片數量從10個增加至12個時,RSM、AMSM和Monoxide模型的吞吐量增加量分別為172 TPS、171 TPS和271 TPS,而CBDSM的吞吐量卻增加了380 TPS。由此可見,CBDSM能夠滿足網絡規模不斷增長的需求,較其他模型而言,在大規模區塊鏈網絡中CBDSM具有更為明顯的優勢,更加適用于大規模的區塊鏈網絡。
5.4.5 時延對比
本節對比了CBDSM與其他分片模型在不同分片數量下的時延情況,以全面評估模型的時延表現,測試結果如圖10所示。總體而言,隨著分片數量的增加,RSM、AMSM、Monoxide和CBDSM模型的時延均呈現遞減的趨勢,這歸因于分片后多個分片并行執行交易,從而有效提高了整體的處理效率。相比而言,CBDSM在各個分片數量下一直表現出最低的時延,以分片數量為10為例,RSM和AMSM模型的時延均為3.76 s,Monoxide模型為3.41 s,而CBDSM僅為3.07 s。其原因是該模型有效剔除了惡意節點的不良影響,避免了因惡意節點當選主節點引發頻繁視圖轉換而帶來的時間開銷,從而顯著減少了交易確認的時間;同時該模型通過將每類節點均衡分配到各分片實現了節點資源的有效利用,進一步提高了系統的整體處理效率。因此,本文模型在共識時延方面具有顯著優勢,能夠滿足實際應用場景的需求。
5.4.6 分片負載均衡對比
分片間算力的不均衡會給區塊鏈分片的性能造成巨大損失,是導致區塊鏈分片系統低吞吐量、高時延的重要因素[29]。為了驗證本文模型在分片負載均衡方面的優勢,本節設置分片數量為16,對RSM、AMSM、Monoxide和CBDSM進行測試,統計每個分片的交易負載情況,測試結果如圖11所示。從圖11可以看出,AMSM和Monoxide分片間的負載變化波動明顯,在AMSM和Monoxide模型中交易最大差分別為2 030 tx和3 588 tx;相比之下,CBDSM最大的交易差僅為325 tx,降低了一個數量級。此外,雖然RSM模型沒有明顯的差距,但CBDSM表現得更加穩定,負載更均衡。其主要原因在于該模型對節點進行可信度評分時充分考慮了節點的性能差異,實現了節點的均衡劃分,使得節點資源能夠得以均衡利用,從而保證了分片之間對于交易的處理能力基本一致。由此可見,本文模型在保障高可靠性的同時能較好地實現交易負載平衡,提升系統的整體性能,實現了資源利用的最大化。
6 結束語
為了解決區塊鏈分片單點聚集引發的安全性和性能瓶頸,本文提出基于節點可信度的區塊鏈動態分片模型。通過設計節點可信度評估機制實現細粒度的節點能力和可靠性評估,有效避免了單點聚集和合謀攻擊問題,同時基于節點等級的動態分片方式有效地保證了分片間均衡的可信度水平,保證了負載均衡,減少了分片重組帶來的資源開銷。通過實驗證明,本文模型能夠在確保性能穩定的前提下實現分片間的負載均衡,解決惡意節點引發的安全性及性能問題,相比于現有模型,具有更好的容錯性、更低的分片失效率和更高的安全性。下一步工作將側重于區塊鏈分片的跨分片交易處理和共識問題,著力解決區塊鏈分片共識效率,以構建更高效的區塊鏈分片模型。
參考文獻:
[1]發改委. 中華人民共和國國家發展和改革委員會. 中華人民共和國國民經濟和社會發展第十四個五年規劃和2035年遠景目標綱要 [EB/OL]. [2024-04-06]. https://www.gov.cn/x-inwen/2021-03/13/content_5592681.htm. (National Development and Reform Commission. The 14th 5-Year Plan for national economic and social development of the People’s Republic of China and the outline of the long-range goals to 2035 [EB/OL]. [2024-04-06]. https://www.gov.cn/x-inwen/2021-03/13/content_5592681.html.)
[2]中國電子信息產業發展研究院. 2022-2023中國區塊鏈年度發展報告 [R/OL]. (2023-06-26)[2024-04-06]. https://www.ccidgroup.com/info/1155/37746.htm. (China Center for Information Industry Development. China blockchain annual development report 2022-2023 [R/OL]. (2023-06-26) [2024-04-06]. https://www.ccidgroup.com/info/1155/37746.htm.)
[3]Sanka A I, Cheung R C C. A systematic review of blockchain sca-lability: issues, solutions, analysis and future research [J]. Journal of Network and Computer Applications, 2021, 195(12): 103232.
[4]Hafid A, Hafid A S, Samih M. Scaling blockchains: a comprehensive survey [J]. IEEE Access, 2020, 8: 125244-125262.
[5]Nasir M H, Arshad J, Khan M M, et al. Scalable blockchains: a systematic review [J]. Future Generation Computer Systems, 2022, 126(1): 136-162.
[6]Liu Yizhong, Liu Jianwei, Salles M A V, et al. Building blocks of sharding blockchain systems: concepts, approaches, and open problems [J]. Computer Science Review, 2022, 46(11): 100513.
[7]Li Yi, Wang Jinsong, Zhang Hongwei. A survey of state-of-the-art sharding blockchains: models, components, and attack surfaces [J]. Journal of Network and Computer Applications, 2023, 217(8): 103686.
[8]陳晶,楊浩,何琨,等. 區塊鏈擴展技術現狀與展望[J]. 軟件學報, 2024, 35(2): 828-851. (Chen Jing, Yang Hao, He Kun et al. Current situation and prospect of blockchain scaling technology [J]. Journal of Software, 2024, 35(2): 828-851.)
[9]Luu L, Narayanan V, Zheng Chaodong, et al. A secure sharding protocol for open blockchains [C]// Proc of ACM SIGSAC Conference on Computer and Communications Security. New York: ACM Press, 2016: 17-30.
[10]Kokoris-Kogias E, Jovanovic P, Gasser L, et al. OmniLedger: a secure, scale-out, decentralized ledger via sharding [C]// Proc of IEEE Symposium on Security and Privacy. Piscataway, NJ: IEEE Press, 2018: 583-598.
[11]Zamani M, Movahedi M, Raykova M. RapidChain: scaling blockchain via full sharding [C]// Proc of ACM SIGSAC Conference on Computer and Communications Security. New York: ACM Press, 2018: 931-948.
[12]Wang Jiaping, Wang Hao. Monoxide: scale out blockchains with asynchronous consensus zones[C]// Proc of the 16th USENIX Symposium on Networked Systems Design and Implementation. Berkeley, CA: USENIX Association, 2019: 95-112.
[13]Dang H, Dinh T T A, Loghin D, et al. Towards scaling blockchain systems via sharding [C]// Proc of International Conference on Ma-nagement of Data. New York: ACM Press, 2019: 123-140.
[14]Zhang Jianting, Hong Zicong, Qiu Xiaoyu, et al. SkyChain: a deep reinforcement learning-empowered dynamic blockchain sharding system [C]// Proc of the 49th International Conference on Parallel Processing. New York: ACM Press, 2020: article No.3.
[15]Yun J, Goh Y, Chung J M. DQN-based optimization framework for secure sharded blockchain systems [J]. IEEE Internet of Things Journal, 2020, 8(2): 708-722.
[16]Yang Zhaoxin, Yang Ruizhe, Yu F R, et al. Sharded blockchain for collaborative computing in the Internet of things: combined of dynamic clustering and deep reinforcement learning approach [J]. IEEE Internet of Things Journal, 2022, 9(17): 16494-16509.
[17]Cai Zhongteng, Liang Junyuan, Chen Wuhui, et al. Benzene: sca-ling blockchain with cooperation-based sharding [J]. IEEE Trans on Parallel and Distributed Systems, 2022, 34(2): 639-654.
[18]Hong Zicong, Guo Song, Li Peng. Scaling blockchain via layered sharding [J]. IEEE Journal on Selected Areas in Communications, 2022, 40(12): 3575-3588.
[19]Xu Yibin, Huang Yangyu. An n/2 Byzantine node tolerate blockchain sharding approach [C]// Proc of the 35th Annual ACM Symposium on Applied Computing. New York: ACM Press, 2020: 349-352.
[20]李皎, 王煜田, 高耀芃. 一種抗合謀攻擊的區塊鏈網絡分片算法 [J]. 計算機應用研究, 2023, 40(1): 28-32,41. (Li Jiao, Wang Yutian, Gao Yaopeng. Anti-collusion attack network sharding algorithm for blockchain [J]. Application Research of Computers, 2023, 40(1): 28-32,41.)
[21]Yun J, Goh Y, Chung J M. Trust-based shard distribution scheme for fault-tolerant shard blockchain networks [J]. IEEE Access, 2019, 7: 135164-135175.
[22]Halgamuge M N, Hettikankanamge S C, Mohammad A. Trust model to minimize the influence of malicious attacks in sharding based blockchain networks [C]// Proc of the 3rd IEEE International Conference on Artificial Intelligence and Knowledge Engineering. Piscataway, NJ: IEEE Press, 2020: 162-167.
[23]王夢楠, 黃建華, 邵興輝, 等. 基于信譽的區塊鏈分片共識方案 [J]. 計算機科學, 2022, 49(10): 297-309. (Wang Mengnan, Huang Jianhua, Shao Xinghui, et al. Reputation-based blockchain sharding consensus scheme [J]. Computer Science, 2022, 49(10): 297-309.)
[24]Cai Xingjuan, Geng Shaojin, Zhang Jingbo, et al. A sharding scheme-based many objective optimization algorithms for enhancing security in blockchain enabled industrial Internet of things [J]. IEEE Trans on Industrial Informatics, 2021, 17(11): 7650-7658.
[25]Huang Chenyu, Wang Zeyu, Chen Huangxun, et al. RepChain: a reputation-based secure, fast, and high incentive blockchain system via sharding [J]. IEEE Internet of Things Journal, 2021, 8(6): 4291-4304.
[26]Tian Junfeng, Jing Caishi, Tian Jin. CuckChain: a cuckoo rule based secure, high incentive and low latency blockchain system via sharding [C]// Proc of IEEE Symposium on Computers and Communications. Piscataway, NJ: IEEE Press, 2023: 1228-1234.
[27]Xiong Li, Liu Ling. PeerTrust: supporting reputation-based trust for peer-to-peer electronic communities [J]. IEEE Trans on Know-ledge and Data Engineering, 2004, 16(7): 843-857.
[28]Sharding FAQ [EB/OL]. (2022-05-24)[2024-04-06]. https://github.com/ethereum/wiki/wiki/Sharding-FAQs/c54cf1b520b0bd0-7468bee6950cda9a2c4ab4982.
[29]Li Mingzhe, Wang Wei, Zhang Jin. LB-Chain: load-balanced and low-latency blockchain sharding via account migration [J]. IEEE Trans on Parallel and Distributed Systems, 2023, 34(10): 2797-2810.