李 莉,吳 怡,楊祉坤,陳云鵬
(東北林業大學信息與計算機工程學院,哈爾濱 150040)
隨著信息科技發展與醫療行業需求劇增,醫療數據電子化成為普遍趨勢。醫療電子病歷(Medical Electronic Record,MER)以數字化形式存儲著患者的診療信息,有助于提供更加便利的健康記錄存儲服務[1]。MER 數據共享被認為是改善醫療服務質量、減少醫療差錯和降低醫療成本的一個有效方法[2],有助于醫療行業的正向發展。但是目前國內許多醫院或醫療機構使用傳統數據庫存儲患者信息,不同機構之間無法直接進行數據共享,數據互操作性較差,普遍存在信息孤島問題[1];同時,患者的敏感數據統一存儲在醫院服務器中,患者對自己病歷的掌控度低,這就易產生存儲安全、隱私泄露等問題。對此,區塊鏈去中心化、可追溯、不可篡改和分布式存儲的特點能夠滿足醫療數據共享的多層要求。
基于區塊鏈的優點,許多研究者就區塊鏈技術在醫療場景的應用上提出共享方案,但是由于區塊鏈自身的性能限制,目前大多數的區塊鏈系統不能提供高吞吐率以及高可伸縮性來滿足當前的大數據量或大交易量的處理需求[3]。區塊鏈的“不可能三角”理論[4]表明應用的安全、性能和去中心化很難達到三者的平衡狀態,例如比特幣系統通過犧牲性能來維護網絡安全和去中心化。而在區塊鏈醫療應用場景下,由于潛在用戶群體龐大、鏈上操作較為頻繁、數據存儲量較大以及對數據流轉效率有較高要求等原因,要求底層區塊鏈在不斷擴增的用戶節點與數據量下,還能保證其交易速度與效率。為了提高區塊鏈吞吐量與可擴展性,將分片(Sharding)技術引入區塊鏈系統進行水平擴容(也稱為橫向擴展,Scale-Out),使其在保證網絡去中心化和安全性的情況下可有 效提高性能,如 Elastico[5]、RapidChain[6]、Omniledger[7]、Monoxide[8]、ZILLIQA[9]等系統就引入了分片技術,由分片技術緩解了單鏈結構下數據存儲與節點共識的壓力,并利用分片間的并行特性增大吞吐量,可擴展性也得到了一定程度的提升,但應用到醫療數據共享場景上的并不多見。
針對傳統區塊鏈不足以提供性能、效率與可用性高的基礎架構的問題,本文基于分區型區塊鏈(Sharding-based Blockchain)提出MER 共享方案,方案中使用周期性哈希算法進行網絡分片,同時在分片中引用改進了數字簽名的實用拜占庭容錯(Pratic Byzantic Fault Torent,PBFT)共識協議,以此來抵抗女巫攻擊并降低PBFT 的通信復雜度。在分片間設計了一種雙層結構,使用主鏈達到片間共識,分片中的節點只需存儲當前分片的鏈上數據。最后,在此基礎上提出一種基于多關鍵詞可關聯檢索的醫療數據共享方案。
在區塊鏈中使用分片技術最先由Zilliqa 團隊[9]于2015年提出。分區型區塊鏈(Sharding-based Blockchain)主要在系統模型和共識層對區塊鏈進行改造[10],將全網節點劃分到若干分片中,在每個分片中通過共識機制保持數據一致,只驗證處理并保存與本分片相關的區塊鏈數據,相當于一個相對獨立的小區塊鏈系統。各個分片之間可相互通信,所有分片中的數據可以組成一條完整的區塊鏈,即由多條物理上分區存儲的分區鏈組成邏輯上完整的全局鏈[10]。
分片架構能并行處理交易,因此分區型區塊鏈的吞吐量會隨著網絡規模增加而線性增長。
1.1.1 分片技術
分片通常被劃分為網絡分片、交易分片和狀態分片。
1)網絡分片(network sharding)。網絡分片在網絡層將所有節點劃分到不同的分片中,是交易分片和狀態分片的基礎。
2)交易分片(transaction sharding)。交易分片將全網交易劃分到不同的分片中驗證并打包,全網多個分片可以并行處理不同的交易,從而提升全網的整體性能。
3)狀態分片(state sharding)。狀態分片將完整的賬本信息分別存儲到各個分片中,各個節點不再存儲完整的區塊鏈狀態信息,每個分片內各自維護部分的賬本信息。
1.1.2 共識機制
工作量證明(Proof of Work,PoW)是通過算力比拼進行挖礦的一種共識機制。對于采用PoW 共識的含n個分片的區塊鏈來說,算力隨全網任務被劃分到不同分片中,單個分片只能得到原來1/n的算力保證,惡意節點想攻占單個分片所需的算力只需原來攻占整條區塊鏈的1/n,攻擊難度降低。因雙花攻擊導致的分叉概率增大,系統安全也大打折扣。
實用拜占庭容錯(PBFT)要求每個區塊必須由共識組中絕大多數誠實節點簽署,每個誠實節點通過簽名確認其已驗證了區塊中交易的合法性和有效性。PBFT 可容忍數量小于(n-1)3 的故障節點或作惡節點,節點之間需要進行端到端(Peer to Peer,P2P)的共識同步,提供了交易最終性,不存在分叉問題,對雙花攻擊有較好抵御能力。由此,有多個分片項目如文獻[5-7,9],在分片內都選擇了PBFT 共識機制。
采用PBFT 協議可以避免基于算力的惡意攻擊,但是存在面臨女巫攻擊(Sibyl Attack)的風險,且在其多對多(All-to-All)的消息模式下通信復雜度極高,伴隨巨大的通信開銷。PBFT 可以利用小規模分片的優勢發揮高效能,但是文獻[9]表明,每個分片不少于600 個節點時,其至少包含1/3 惡意節點的概率才會降為百萬分之一。
可擴展的去中心化信任基礎設施區塊鏈(Scalable decentralized Trust inFrastructure for Blockchains,SBFT)[11]基于PBFT 進行設計上的改進,繼承其安全特性的同時提高擴展性,吞吐量可達PBFT 的兩倍,延遲也更低。SBFT 使用比RSA 更短、更快的BLS 簽名算法,其基于橢圓曲線,有更高的實用性和安全性,支持批量驗證簽名。
區別于多對多消息模式,SBFT 提出了一個使用收集器(Collector)線性通信模式。這種模式下不再將消息發給每一個副本節點,而是發給收集器,再由收集器廣播給所有副本節點,同時通過使用門限簽名可將消息長度從線性降低到常數,將客戶端通信量從O(n)降低到O(1)。
基于公鑰密碼體制的多關鍵詞關聯檢索可搜索(Public key Encryption with Conjunctive field Keyword Search,PECKS)加密共享方案的概念源于文獻[12],其目的是在PEKS(Public key Encryption with Keyword Search)的基礎上引入多關鍵詞關聯檢索。在可搜索加密技術中引入非對稱密碼體制,基于雙線性對運算,為不可信服務器的密文檢索以及多關鍵詞關聯檢索提供解決辦法。
定義1令G1和G2為兩個階數為素數q的乘法循環群,定義一個雙線性映射e:G1×G1→G2,其滿足以下性質:
1)雙線性性(Bilinear):對于任意a,b∈和x,y∈G1,都有e(xa,yb)=e(x,y)ab。
2)非退化 性(Non-degenerate):存 在x,y∈G1,使 得e(x,y) ≠1;如果g是G1的生成元,那么e(g,g)是G2的生成元。
3)可計算性(Computable):對于任意x,y∈G1,存在有效算法計算e(x,y)。
對于一個(n,t)門限簽名(Threshold Signature)方案,假定存在一個公鑰,而n個簽名者每人都擁有自己的私鑰分片,只要其中至少t個簽名者對消息進行部分簽名,其中t≤n,那么由這t個部分簽名可以得到對消息的完整簽名,并且這個完整簽名可由公鑰來驗簽。
本文方案基于跳躍一致性Hash(Jump Consistent Hash)算法[13]實現分片劃分,跳躍一致性Hash 算法是一種零內存消耗、均勻分配、高效的一致性Hash 算法[14],通過加入周期參數,實現分片劃分的周期性,預防女巫攻擊。
該算法具有:
1)平衡性:把網絡節點均勻地分布到所有分片中。
2)單調性:當分片的數量發生變化時,只需要把一些節點從舊分片移動到新分片中,不需要做其他移動。
3)周期性:當處于同一周期,隨分片數目的增加分片劃分保持單調性,當周期因自適應算法產生變化,則所有節點重新隨機劃分。
具體算法如算法1 所示。

其中,設r=random.next()是在[0,1]區間均勻分布的隨機數。當輸入節點關鍵值為key,周期參數為period,分片數目為num_buckets時,PeriodJumpConsistentHash(key,period,num_buckets)返回該節點在當前周期內要被劃分到的分片編號。跳躍一致性Hash 算法將傳統一致性Hash 算法的時間復雜度從O(n)降低到O(logn)。
2.2.1 分片內SBFT共識協議
本文方案基于SBFT[11]實現片內共識。SBFT 有兩種區塊提交模式,分別為Fast Path 和Linear-PBFT,在新的視圖轉變協議下支持兩種模式同時運行,并無縫切換。SBFT 兩模式共識過程如圖1 所示。

圖1 SBFT共識過程Fig.1 Consensus process of SBFT
分片內共識過程描述如下:
1)預準備階段:當醫生想上傳病歷數據或數據用戶想要進行訪問操作時,客戶端(Client)向當值主節點(Primary)發起請求,主節點收集達到數量的請求集合后打包成區塊,并作為預準備信息廣播給分片內的其他副本節點(Replica)。
2)門限簽名階段:副本節點收到預準備信息后,對其進行檢查驗證,若信息合法則對其哈希運算并進行門限簽名(σ(3f+c+1)),將簽名消息發送給當前收集器C(CCollector)。收集器C 收集到3f+c+1 個不同的簽名消息后整合簽名,并發送整合消息給其他副本節點驗證。副本節點收到消息后,若檢驗通過則確認接受,并進行操作。
3)區塊提交階段:分片內達成區塊提交共識后,各節點執行塊內請求并更新系統狀態與狀態摘要,對摘要進行門限簽名(π(f+1))后發送消息給收集器E(E-Collector)。收集器E 收集到f+1 個不同的簽名消息后整合簽名,并發送整合消息給其他副本節點驗證,副本節點檢查簽名決定是否接受;同時給每一個發起操作請求的客戶端發送執行確定消息,用戶檢查消息有效則確認操作已執行。
其中,在當前Fast Path 模式中收集器C 收集的簽名足夠整合τ簽名(τ(2f+c+1))但不夠整合σ簽名且等待超時時,就發送準備消息給所有副本節點進入Linear-PBFT 模式。副本節點收到消息并進行檢查,若通過則進入階段2)向收集器C發送簽名消息(其中使用τ簽名)。
SBFT 在Fast Path 模式下可以在3f+2c+1 個副本節點的系統中容忍c個故障副本節點,在Linear-PBFT 模式下可容忍f+c個。
2.2.2 分片間共識協議
系統初始只存在一個分片,隨著加入節點的增多,分片根據自適應算法判斷是否需要增加分片。節點根據跳躍一致性Hash 算法被劃分到不同的分片中,并定期進行節點的重新劃分,劃分更新的時間由自適應算法決定。
當分片中確定提交(committed)某個區塊后,會更新本分片狀態與總系統狀態,系統中存在一條總鏈,整合各個分區的子鏈信息,分片內節點只需要存儲當前分片的區塊鏈數據,使分區型區塊鏈在物理上多鏈、邏輯上單鏈,結構模型如圖2 所示。

圖2 本文雙層區塊鏈結構模型Fig.2 The proposed two-layer blockchain structure model
分片中區塊結構同傳統區塊相似,同樣使用了默克爾樹(Merkle Tree)來認證數據信息,塊頭中含有塊內所含數據涉及的所有病人地址信息與醫生地址信息,指向默克爾樹中的哈希值,同時包含區塊在分片內所處位置標識。總鏈中區塊塊頭包含該區塊在系統區塊鏈中所處位置標識,兩標識可互相驗證,供周期分片時節點聚合片內信息所用。
分片中committed 的區塊的塊頭被分片主節點上傳給主鏈,系統驗證塊頭哈希、簽名的正確性,若驗證通過則計算M_Hash=H(s_id‖s_hash‖Pre_Hash‖n‖Tmp),封裝原區塊塊頭并鏈接主鏈,同時返回該區塊在總鏈中的序號給分片,更新分片狀態。其中:s_id是分片區塊位置標識,s_hash是區塊在分片中的哈希標識,Pre_Hash是前一個區塊哈希標識,n是區塊在總鏈中的位置標識,Tmp是時間戳。分片通過位圖B記錄并更新分區狀態,如B[i]=(n,M_Hash)表示分片內第i個區塊在主鏈中的序號為n,哈希標識為M_Hash,若存在惡意變化則很容易被檢測出來。狀態更新流程如圖3 所示。

圖3 區塊提交狀態更新流程Fig.3 Status update process of block committed
本文共享方案基于PECKS[12]構建,適應醫療電子病歷共享,各個醫療機構組成聯盟鏈,共享模型如圖4所示。

圖4 本文共享模型Fig.4 The proposed sharing model
1)系統初始化:Setup(1k)→parameters,給定安全參數1k,系統生成公開參數parameters={p,g,G1,G2,e},其中G1的生成元為g,e:G1×G1→G2,G2的生成元為e(g,g),p是大素數。定義哈希函數H1:{0,1}*→G1,同時設置系統醫療關鍵詞集Words。
2)密鑰生成:KeyGen(k) →(Rk,Pk),用戶通過醫療機構注冊,獲得聯盟鏈準入許可。當用戶第一次注冊進入聯盟鏈,系統根據用戶標識idk派發公私鑰對(Rk,Pk),其中Rk=[s1,s2],Pk=[g,Y1=s1g,Y2=s2g],s1,s2∈Zp,并將公鑰地址作為key值輸入對用戶節點進行分片劃分。
3)數據共享:PECK(Pk,M,D) →(S,MEn),選擇隨機數r∈Zp,輸入用戶公鑰以及需要加密的文件M與關聯關鍵詞向量集D,生 成S=[A1,A2,…,Am,B,C],其 中Ai=e(rH(Wi),Y1),i∈[1,m],B=rY2,C=rg,Wi是在D中第i個位置的關鍵詞,H()使用哈希函數SHA256。加密生成MEn=(M)=(U,V),其中U=rPk,V=M×e(rg,H1(idk))。病人看診時,由醫生生成相應的MER 文件M→{0,1}*,并從系統關鍵詞集Words中選擇與MER 文件相關的醫療關鍵詞并形成向量集D=(W1,W2,…,Wm),其中若有未設關鍵詞位置可設為空。病人使用自己的公鑰對MER 文件與相關關鍵詞集進行加密處理。最后得到文件的哈希值hm=Hash(S‖MEn),病人與醫生同時用自己的私鑰對其進行聚合簽名(ECSchnorr 簽名算法)以便之后共識組成員檢驗,封裝后由醫生上傳至系統分片中。
4)陷門生 成:Trapdoor(Rk,Q) →TQ,選擇隨機數則陷門TQ=[T1,T2,I1,I2,…,It],其中查 詢Q=(I1,I2,…,It,Ω1,Ω2,…,Ωt),t是查詢Q中的關鍵詞數目,Ii∈[1,m](i∈[1,t])是關鍵詞在關鍵詞集中的位置,Ωi是要搜索的關鍵字。數據使用者希望查找病人的關鍵詞為(Ω1,Ω2,…,Ωt)的相關醫療記錄時,病人授權并使用自己的私鑰生成相關陷門TQ供其檢索,獲得加密文件。其中,數據使用者指需要獲取相關數據的鏈上用戶,多為需要為病人診治的醫生或病人自己,還包括醫療保險相關人員。
5)多關鍵詞關聯檢索:Test(Pk,S,TQ),系統檢驗×…×AIt=e(T1,B+T2C)是否為真,若為真則返回。查找時,通過分片之間的交互通信,將檢索申請廣播給每一個分片,多個分片可以并行查找。分片中,先根據塊頭中的病人公鑰地址進行匹配,匹配成功則執行關鍵詞檢索,若檢索成功且哈希驗證正確則返回密文,用病人私鑰進行解密。
由正確性分析可知,若=Ωi,i∈[1,t],則:

6)數據解密:De(MEn,Rk) →M,經檢索若有密文返回,病人使用自己的私鑰進行數據解密,計算得到明文數據M。由正確性驗證得:

本文共享方案實現多關鍵詞關聯檢索密文,只有病人的私鑰才可以生成檢索陷門以及解密,病人對自己隱私數據的掌控度極大提升,同時也減少了數據泄漏的安全隱患問題。對密文進行基于關鍵詞的檢索時,多關鍵詞間可以有多種組合,檢索更有針對性,實現細粒度安全共享。如表1 是多種方案的功能對比。

表1 不同方案的功能對比Tab.1 Function comparison among different schemes
3.2.1 安全功效分析
1)隱密性。本文方案對病人敏感數據都進行了加密處理。MER 文件與相關關鍵詞集都由病人密鑰進行加密處理,惡意攻擊者無法解密獲得數據內容,很好地保護了病人隱私。
2)數據可控性。只有病人使用私鑰才能生成搜索陷門TQ,也只有其私鑰才能通過式(2)解密檢索得到MER 密文,有效對數據進行訪問控制。
3)數據安全性。數據共享過程中,MER 文件與關鍵詞集都是以密文形式上傳、存儲,沒有私鑰則無法解密;而數據在上傳并達成區塊共識后就不可更改、刪除,病人與醫生共同對文件哈希hm=Hash(S‖MEn)進行聚合簽名,可以同時使用病人與醫生的公鑰進行驗證,同時區塊中默克爾樹與塊頭哈希也可驗證區塊數據的正確性與完整性。
4)不可偽造性。基于區塊鏈可追溯、不可篡改以及哈希函數抗碰撞的特性,其檢索結果必然是可信的,用戶也可以輕易驗證數據有效性。數據一旦被篡改或出現偽造數據,則可通過各處哈希值檢驗出來。
3.2.2 安全性證明
定 理1基于雙 線性映 射e:G1×G1→G2,DBDH(Decisional Bilinear Diffie-Hellman)問題是指可以在多項式時間內區 分五元 組 (g,αg,βg,γg,e(g,g)αβγ)與(g,αg,βg,γg,e(g,g)μ),其中α,β,γ,μ∈Zp,g,αg,βg,γg∈G1。
定理2假設敵手A 在多項式時間內能以優勢ε贏得游戲,則證明挑戰者B 能夠以至少ε(emqT)的優勢解決DBDH困難問題。
該證明基于文獻[12]的自適應安全定義,假設A 最多進行qT次門限詢問,挑戰者B 的目標是在輸入(g,αg,βg,γg,X)時若X=e(g,g)αβγ,則輸出1,否則輸出0。游戲過程如下所示:
1)密鑰生成。挑戰者B 選擇一個隨機數s∈Zp,給敵手A 公鑰PA=[g,Y1=αg,Y2=sg],對應的私鑰為RA=[α,s]。
2)哈希詢問。在任何時候A 可以詢問隨機H,B 維護了一個初始為空的H-list元組列表,當A 在點Wi∈{0,1}*查詢H時,B 的響應如下:

5)挑戰。最終A 產生關鍵詞W和希望挑戰的位置z,B生成PECK 挑戰如下:
B 執行上述算法來相應H查詢以獲得如H(W)=h的h,令為H-list上的對應元組,如果c=1,則B 失敗。
B 選擇除Wb,z外的隨機關鍵詞Wi,j,其中i∈{0,1},j∈[1,m],然后生成Di=(Wi,1,Wi,2,…,Wi,m),限制是之前的門限無 法區分D0與D1,否則重新生成。給定Wb,j,令是H-list上的對應元組,其中b∈{0,1}。
B 回應挑戰[A1,A2,…,Am,B,C]與兩個文檔D0、D1,則挑戰值計 算如下:若cb,j=0 則Aj=,否 則Aj=e(ab,j(γg),αg);B=s(γg),C=γg。
若X=e(g,g)αβγ,則挑戰 為 [e(γH(Wb,1),Y1),e(γH(Wb,2),Y1),…,e(γH(Wb,m),Y1),γY2,γg],對 于Db來說是有效的PECK。
6)更多詢問。B 像之前一樣對這些詢問做出響應,唯一的限制是沒有門限查詢可以將D0與D1區分開。
7)輸出。最后,A 輸出b′∈{0,1},表示挑戰是D0還是D1的加密,若b′=b,則B 輸出1,表示X=e(g,g)αβγ,否 則輸出0。
假設qT足夠大,則,此處e 為自然對數底數。又,其中事件η1表示B不會因任何A 的門限查詢而中止,事件η2表示在準備對A 的挑戰期間B 不會中止。因此,B 可憑借優勢解決DBDH 問題。
結論1 假設DBDH 問題是難解決的,則本文方案在語義上對于自適應選擇的關鍵詞攻擊是安全的。
3.3.1 擴展性分析
本文方案采用分區型區塊鏈構造底層數據結構,將全網節點劃分為較小的共識組,每個分片間能夠并行處理事務,在可擴展性、吞吐率等性能方面得到很好的提升。同時基于跳躍一致性哈希算法作為網絡分片算法,實現輕巧、快速,內存占用小,映射均勻,滿足一致性與均勻性[13]以及周期性。
分片間使用總鏈結構,通過哈希運算封裝塊頭并鏈接,使各個分片只需存儲與本分片相關的區塊數據,而不是整個區塊鏈數據,實現物理上多鏈、邏輯上單鏈的半狀態分片,降低存儲壓力,提高可擴展性,片內SBFT 機制也實現共識擴展性提高。本文方案使用C++語言,基于Crypto++庫、RELIC 密碼庫,實驗環境配置如下:
1)CPU 為Intel Core i7-6700 CPU@3.40 GHz;
2)內存為RAM 8 GB;
3)操作系統為Ubuntu 18.04 over VMware Workstation Pro 16.1.1。
如圖5 所示,在非分區方案中,由于共識機制使用了SBFT,通信效率提高,在節點數量控制在200~300 時能夠得到較高的吞吐量,但是在節點數量不斷增加的情況下,單鏈的共識效率明顯下降,吞吐量隨節點倍增而大幅降低;而在本文方案中,以平均200 個節點為一個分區,隨著節點增多,分片隨之增加,保證片內共識效率的情況下多個分片并行運算,吞吐量也隨之得到顯著提高。

圖5 吞吐量對比Fig.5 Throughput comparison
3.3.2 計算代價分析
表2 為本文方案與各方案計算代價對比,其中:Te代表指數運算時間,Tp代表雙線性配對運算時間,Th代表哈希運算時間。加密階段中m代表關鍵詞向量集中關鍵字個數,檢索階段中t代表關聯檢索關鍵字個數。本文方案無需大量指數運算,加密階段需要較多次的雙線性配對運算,計算代價由關鍵詞向量集大小決定,檢索階段計算代價隨關鍵詞關聯個數變化。

表2 計算代價對比Tab.2 Comparison of calculation cost
3.3.3 數據檢索擴展性分析
本文方案基于分片技術,各分片間可以互相通信且并行運算,在進行數據搜索時各分片可同時進行病人數據匹配,提高搜索效率,檢索的時間復雜度從O(n)降為O(logn)。
圖6 為在不同關鍵字檢索個數下各方案的時間開銷對比,基于本文方案,實驗設置5 個分片,分別進行10、50、100和200 個關鍵字的檢索測試。隨著關鍵字檢索個數的增加,各方案檢索消耗時間都有所增大,在進行單關鍵字檢索時本文方案在該階段只需花費一次雙線性配對運算與兩次哈希運算,計算開銷略高于文獻[16]方案,但總體偏小,因而時間成本增長較為平緩。同時,5 個分片相當于將總鏈分為區塊數據互不相交的5 個子鏈,可以同時進行關鍵字的檢索匹配,通過并行分攤了檢索壓力,提高了承載能力,在關鍵字檢索方面有較好的擴展性。

圖6 檢索時間對比Fig.6 Comparison of retrieval time
本文的醫療共享方案在引入區塊鏈的基礎上應用分片技術,對底層結構進行水平擴容,提高可擴展性與吞吐率以及并行處理能力,同時使用跳躍一致性哈希算法增加周期性網絡分片的隨機性、穩定性與均勻性。針對傳統PBFT 的網絡寬帶高負擔,分片內使用具有擴展性的SBFT 共識協議,并通過底層主鏈的雙層結構在鏈接各分片數據的同時降低單分片內節點的存儲負擔。共享方案基于公鑰密碼體制,只有病人的私鑰才可以生成搜索陷門與對密文解密,同時可以通過多個關鍵詞關聯檢索進行更有針對性的數據搜索,達成細粒度檢索,使共享方案具有高安全度與高可控性。在并行分片中,吞吐率與檢索效率等性能明顯提高。
本文方案中,由于分片是隨著節點增加而產生的,而先產生的分片必然比后產生的分片要生成更多區塊,這就會造成區塊數據在不同分片中分配不均,從而導致分片負載不均的問題,這是接下來需要繼續完善的方向。在下一階段研究中,可以繼續專注于提升區塊鏈性能,同時不降低其安全性,對此考慮對拜占庭節點進行監測,使每次分片時惡意節點盡量均勻分布在各個分片中且不會超過分片承載力,以防止女巫攻擊;同時考慮在方案中應用智能合約,提高事務執行效率。