摘要:目前區(qū)塊鏈大多屬于異構鏈,信息孤島問題嚴重,所以如何打破區(qū)塊鏈垂直發(fā)展的封閉狀態(tài)和實現(xiàn)鏈間互聯(lián)互通一直是區(qū)塊鏈的研究熱點。針對聯(lián)盟鏈之間數(shù)據共享難、互操作性差和存儲壓力大等問題,提出一種基于條件代理重加密的跨鏈數(shù)據共享方案。從各聯(lián)盟鏈中選出高信用節(jié)點充當公證人并組成公證鏈,作為跨鏈共享的媒介;引入星際文件系統(tǒng)實現(xiàn)混合存儲,減小存儲壓力;隨機確定一位公證人作為代理者,執(zhí)行條件代理重加密操作實現(xiàn)鏈間共享密文的狀態(tài)轉變;通過信用約束和激勵策略,規(guī)范公證人的行為和提高各鏈節(jié)點參與數(shù)據共享的積極性。理論分析和實驗結果表明,提出方案在跨鏈數(shù)據共享方面更安全可靠,具有較高的跨鏈交互效率和較低的存儲開銷。
關鍵詞:區(qū)塊鏈;跨鏈共享;公證鏈;條件代理重加密;隨機確定
中圖分類號:TP309文獻標志碼:A文章編號:1001-3695(2023)05-006-1324-06doi:10.19734/j.issn.1001-3695.2022.09.0478
0引言
隨著互聯(lián)網的大規(guī)模發(fā)展,以比特幣為首的數(shù)字貨幣越來越流行,其底層區(qū)塊鏈技術也越來越受到人們的關注。區(qū)塊鏈技術被公認為是繼物聯(lián)網、大數(shù)據、云計算、人工智能之后的最具顛覆性革命浪潮的前沿技術[1]。區(qū)塊鏈在2021年被納入《中華人民共和國國民經濟和社會發(fā)展第十四個五年規(guī)劃和2035年遠景目標綱要》中,成為國家數(shù)字經濟發(fā)展的重要載體和國家新基建的重要板塊[2],其發(fā)展已然上升為國家戰(zhàn)略。根據節(jié)點的準入標準和開放程度,區(qū)塊鏈可分為公有鏈、私有鏈和聯(lián)盟鏈[3]。在實際應用中,每個區(qū)塊鏈都是垂直且獨立發(fā)展,所有的交易僅限于鏈內進行,鏈與鏈之間不存在任何業(yè)務往來,彼此缺乏信任,致使眾多區(qū)塊鏈項目如同一個個的“信息孤島”[4]。雖然安全性得到了保證,但與當今萬物互聯(lián)的社會發(fā)展趨勢嚴重不符,單鏈發(fā)展必定會影響區(qū)塊鏈的長遠發(fā)展,畢竟一個去中心化的社會不會單單沿著一條鏈發(fā)展,最后必然會形成多鏈共存的局面[5]。區(qū)塊鏈之間的互通性極大程度地限制了區(qū)塊鏈的應用空間,所以如何實現(xiàn)鏈與鏈之間的價值互聯(lián)是當前區(qū)塊鏈研究的重點[6]。如果說共識機制是區(qū)塊鏈的靈魂核心,那么跨鏈技術就是實現(xiàn)區(qū)塊鏈價值互聯(lián)的關鍵,其可以讓區(qū)塊鏈應用從信息孤島的困境中解脫出來,是區(qū)塊鏈向外拓展和鏈間交互的橋梁,也是實現(xiàn)區(qū)塊鏈網絡之間數(shù)據共享的重要技術[7]。
根據跨鏈執(zhí)行范圍,可將跨鏈分為同構鏈跨鏈和異構鏈跨鏈,同構鏈是指區(qū)塊結構、共識方式、網絡架構、數(shù)據安全保證、智能合約都相同的一類區(qū)塊鏈,所以同構鏈之間的跨鏈交互是容易實現(xiàn)的。然而,現(xiàn)實應用中的區(qū)塊鏈項目大部分來自不同行業(yè)、不同領域,由不同企業(yè)團隊根據不同的場景需求和設計理念,采用不同的技術架構開發(fā)出來的異構鏈,即各鏈的結構和執(zhí)行邏輯存在較大差異,增加了異構鏈之間跨鏈交互的難度,這也是跨鏈領域待解決的主要難題。
跨鏈技術應用研究的目的是實現(xiàn)區(qū)塊鏈之間的互聯(lián)互通和數(shù)據共享,現(xiàn)有的跨鏈方案主要是面向金融領域的[8],側重于區(qū)塊鏈之間的資產轉移。區(qū)塊鏈廣泛應用于金融、物聯(lián)網、醫(yī)療健康、物流跟蹤、產品溯源等眾多領域,其應用場景不斷豐富化和復雜化[9,10],促使跨鏈技術趨于應用多元化和交互聯(lián)盟化的方向發(fā)展。因此,如何在現(xiàn)有跨鏈技術的基礎上實現(xiàn)區(qū)塊鏈之間數(shù)據安全共享成為現(xiàn)階段跨鏈領域的研究熱點之一。
目前已有多種跨鏈方式,例如公證人機制、側鏈/中繼鏈、哈希鎖定和分布式私鑰控制等,但每種跨鏈方式或多或少都會存在一定局限性,這就促使學者們在已有跨鏈方式的基礎上進行改進研究。鄭建輝等人[2]提出了一種“中繼鏈+聯(lián)盟鏈”的區(qū)塊鏈跨鏈機制,在鏈與鏈之間建立多通道完成跨鏈交互,但跨鏈數(shù)據的存儲沒有詳細說明。雷志偉等人[11]提出了一種基于中繼鏈的可監(jiān)管跨鏈平臺,利用網關實現(xiàn)鏈間的交互,同時設計監(jiān)管鏈來負責跨鏈交易的審核和存證,但缺乏實驗說明,平臺的可行性有待考證。夏肇元等人[8]設計了一種“側鏈+聯(lián)盟鏈”的雙層跨鏈模型,各個供應鏈之間的交互由公證人負責,未考慮信息傳輸?shù)陌踩浴JY楚鈺等人[12]提出了一種基于公證人組的跨鏈交互模型,將傳統(tǒng)的公證人進行職能分散化,批處理跨鏈交易,從而提高跨鏈效率,但該模型需要一個可信的領導者節(jié)點支持,存在中心化的性質。葉祥翮等人[13]針對聯(lián)盟鏈擴展性差、互操作性差等問題,設計了分布式公證人跨鏈模型,由各局部鏈的部分節(jié)點組成全局鏈來管理跨鏈事務,提高去中心化程度,但該模型僅適合將冗雜的大型單鏈結構區(qū)塊鏈網絡劃分成多個小型的區(qū)塊鏈網絡。
上述跨鏈交互方案對區(qū)塊鏈的發(fā)展起到了一定的推動作用,但各方案依然存在一定的不足。本文通過研究認為,目前針對區(qū)塊鏈跨鏈數(shù)據共享方面的研究工作較少,缺乏有效的跨鏈執(zhí)行方案。其中,影響跨鏈共享效果的因素主要概括為五個方面:a)跨鏈共享實現(xiàn)的中心化程度較高,安全系數(shù)降低;b)數(shù)據提供者在共享數(shù)據的過程中存在隱私泄露的問題;c)區(qū)塊鏈數(shù)據存儲壓力大;d)缺乏激勵策略,用戶參與數(shù)據共享的積極性不高;e)缺乏約束策略,用戶行為不受約束,存在安全問題。因此,綜合上述跨鏈數(shù)據共享的研究現(xiàn)狀和影響因素,本文提出了一種條件代理重加密的跨鏈數(shù)據共享方案。
本文方案的貢獻主要有以下幾點:
a)基于公證人機制實現(xiàn)跨鏈共享,依據信譽排名從參與跨鏈的各個區(qū)塊鏈中選取部分高信用節(jié)點擔任公證人,并以公證鏈的形式管理公證人,可有效解決公證人的中心化問題。采用隨機選擇的方式從公證鏈中確定一位公證人,作為執(zhí)行條件代理重加密操作的代理者,降低了代理者被惡意者攻擊的風險,保證了代理者的安全性。
b)使用條件代理重加密技術,讓數(shù)據密文從支持數(shù)據提供者解密狀態(tài)轉變?yōu)橹С謹?shù)據請求者解密狀態(tài),全程不暴露數(shù)據提供者的私鑰,保證了數(shù)據提供者的隱私安全。同時,在加密過程中嵌入一個條件值來約束重加密操作的隨意執(zhí)行。
c)為降低區(qū)塊鏈存儲壓力,引入了星際文件系統(tǒng)實現(xiàn)鏈上鏈下混合存儲,即用戶數(shù)據加密存儲到星際文件系統(tǒng),而數(shù)據對應的關鍵信息則加密存儲到鏈上。
d)制定共享激勵策略提高各鏈上用戶節(jié)點參與數(shù)據共享和競選公證人的積極性,在跨鏈數(shù)據共享完成后,數(shù)據請求者會向提供者和公證人交付一定數(shù)額的報酬作為感謝金。針對公證人制定信用約束,用戶節(jié)點在成功競選公證人后需要交納一定數(shù)額的保證金,以此來約束公證人的不誠實行為。
e)對本文方案進行安全性分析和同類方案的比較,從而說明方案的可靠性和安全性。
1相關知識
1.1公證人機制
公證人機制是目前實現(xiàn)難度系數(shù)最小的跨鏈機制,其架構如圖1所示。該機制的原理是借助可信的第三方中介在互不信任的兩鏈之間完成跨鏈消息的接收、轉發(fā)和驗證。至于第三方中介,可以是由一個或多個可信的組織構成,充當“公證人”的角色,既可以自動監(jiān)聽不同鏈上的事件,通過共識機制來判斷鏈上事件發(fā)生的真實性,并及時作出響應,又可以對接收和轉發(fā)的跨鏈消息進行驗證簽名,確保跨鏈交易的安全性和有效性。公證人機制雖然易實現(xiàn),但一定程度上還是依賴于公證人的誠實性,存在節(jié)點的信譽、中心化等風險,如果公證人不誠實,存在修改跨鏈信息的可能,則會直接影響鏈間的價值轉移和信息流通的質量,為解決公證人機制暴露出來的這種安全問題,學者們相繼提出了單簽名公證人機制、多重簽名公眾人機制、分布式簽名公證人機制,從而完善該機制的不足。
1.2條件代理重加密技術
代理重加密(proxyre-encryption,PRE)概念是由Libert等人[14]在1998年歐密會上提出的,是一種對密文進行安全轉換的加密技術,即代理者利用重加密密鑰將數(shù)據提供者加密后的密文轉變成數(shù)據請求者可以解密的密文,此過程不會泄露用戶的隱私和數(shù)據明文,代理者只負責重加密操作,無權獲取加密內容和數(shù)據提供者的私鑰。然而,傳統(tǒng)的代理重加密算法對于代理者的重加密范圍沒有加以限制,即代理者利用一個重加密密鑰可以轉換所有提供者的密文,顯然這種重加密方式的執(zhí)行粒度較粗[15]。隨后,Weng等人[16]提出了條件代理重加密(conditionalproxyre-encryption,CPRE)概念,優(yōu)化了代理重加密的執(zhí)行粒度,實現(xiàn)細粒度限制代理者的重加密操作,具體是在傳統(tǒng)代理重加密中增設了一個條件值,使得代理者必須要滿足該條件值才能進行重加密操作。本文方案中選用的是基于身份的條件代理重加密,具體包含以下八個函數(shù):
a)系統(tǒng)初始化函數(shù)Setup(1k):輸入安全參數(shù)1k,輸出全局參數(shù)p。
Setup(1k)=p(1)
b)密鑰生成函數(shù)KeyGen(p,Idi):輸入全局參數(shù)p和用戶i的身份Idi,輸出用戶i對應的私鑰ski。
KeyGen(p,Idi)=ski(2)
c)第二層密文加密函數(shù)Encryption2(p,m,pki,c):輸入全局參數(shù)p、明文m、用戶i的公鑰pki和重加密的條件值c,輸出第二層的密文Ci。
Encryption2(p,m,pki,c)=Ci(3)
d)條件代理重加密密鑰生成函數(shù)CRKeyGen(p,ski,pkj,c):輸入全局參數(shù)p、用戶i的私鑰ski、用戶j的公鑰pkj和重加密條件值c,輸出條件代理重加密密鑰rkiCj。
CRKeyGen(p,ski,pkj,c)=rkiCj(4)
e)條件代理重加密函數(shù)CReEncryption(p,rkiCj,Ci):輸入全局參數(shù)p、條件代理重加密rkiCj、第二層的密文Ci,輸出第一層的密文Cj。
CReEncryption(p,rkiCj,Ci)=Cj(5)
f)第一層密文加密函數(shù)Encryption1(p,m,pkj):輸入全局參數(shù)p、明文m和用戶j的公鑰pkj,輸出第一層的密文Cj。
Encryption1(p,m,pkj)=Cj(6)
g)第二層密文解密函數(shù)Decryption2(p,Ci,ski):輸入全局參數(shù)p、第二層密文Ci、用戶i的私鑰ski,輸出明文m。
Decryption2(p,Ci,ski)=m(7)
h)第一層密文解密函數(shù)Decryption1(p,Cj,skj):輸入全局參數(shù)p、第一層密文Cj、用戶j的私鑰skj,輸出明文m。
Decryption1(p,Cj,skj)=m(8)
以上條件代理重加密的八個函數(shù)滿足以下性質:
Decryption2(ski,Encryption2(p,m,pki,c))=m(9)
Decryption1(skj,Encryption1(p,m,pkj))=m(10)
Decryption1(skj,CReEncryption(CRKeyGen(p,ski,pkj,c),
Encryption2(p,m,pki,c)))=m(11)
1.3星際文件系統(tǒng)
星際文件系統(tǒng)(interplanetaryfilesystem,IPFS)是一個支持分布式存儲和文件共享的網絡傳輸協(xié)議,其去中心化的特性有助于網絡更開放、更安全地運行。IPFS融合了分布式哈希表、BitTorrent協(xié)議、Git版本控制系統(tǒng)等技術并關聯(lián)了區(qū)塊鏈,實現(xiàn)數(shù)據文件的永久性存儲和共享,支持各種類型的數(shù)據保存,具備版本化、內容可尋址和數(shù)據可追溯的特性。使用星際文件系統(tǒng)可以轉移區(qū)塊鏈上數(shù)據的存儲壓力,讓區(qū)塊鏈存儲關鍵信息,節(jié)省更多的存儲空間。
2基于條件代理重加密的跨鏈數(shù)據共享方案
2.1跨鏈方案的網絡架構
本文所述的跨鏈共享方案的網絡架構實際上是由多條聯(lián)盟鏈、一條公證人鏈以及IPFS集群組成,具體網絡架構模型如圖2所示。其中,每條聯(lián)盟鏈都包含眾多節(jié)點,而這些節(jié)點負責維護其所在聯(lián)盟鏈的常規(guī)工作,包括節(jié)點之間的共識、鏈上數(shù)據存儲等,但這些聯(lián)盟鏈彼此之間是獨立的,只支持鏈內節(jié)點交互,不支持不同鏈的節(jié)點進行跨鏈交互,如果一條鏈上的用戶節(jié)點想要訪問其他鏈上的數(shù)據信息,只能通過相應的跨鏈機制將目標數(shù)據從目標鏈上轉移到當前鏈上進行訪問。公證鏈是由各聯(lián)盟鏈根據信用排名算法[17]選出鏈上信用排名靠前的部分節(jié)點組成的一條區(qū)塊鏈,挑選出來的這些節(jié)點擔任跨鏈交互的公證人,專門負責聯(lián)盟鏈之間的跨鏈交互任務和傳遞共享數(shù)據。公證鏈上的公證人會依據信用排名算法不斷更新,實現(xiàn)公證鏈上的公證人始終都是高信用的。針對各聯(lián)盟鏈選出的節(jié)點采用上鏈管理的方式,可以借助區(qū)塊鏈固有的去中心化特性,解決傳統(tǒng)公證人在跨鏈交互過程中存在的中心化問題,讓各聯(lián)盟鏈更加信任公證人。IPFS星際文件系統(tǒng)關聯(lián)所有的聯(lián)盟鏈,即所有聯(lián)盟鏈的數(shù)據加密存儲于IPFS中,而數(shù)據存儲對應的IPFS文件指紋、相關密鑰、數(shù)據哈希值等關鍵信息加密存儲到鏈上,通過線上線下混合存儲的方式可以很好地降低區(qū)塊鏈的存儲壓力。
2.2跨鏈方案的運行流程
本文方案以2.1節(jié)中介紹的跨鏈交互網絡架構為基礎,當某聯(lián)盟鏈(請求鏈)上的用戶節(jié)點(數(shù)據請求者,下文簡稱請求者)和另一個聯(lián)盟鏈(共享鏈)上用戶節(jié)點(數(shù)據提供者,下文簡稱提供者)有數(shù)據共享需求時,兩者跨鏈共享數(shù)據的具體流程如圖3所示。
1)提出共享請求
當請求鏈上的請求者有跨鏈數(shù)據共享需求時,可以生成對應的共享請求R并附上自己的簽名,然后將共享請求R廣播給請求鏈上的其他節(jié)點進行確認,待確認完成后,請求者將跨鏈共享請求R發(fā)送給公證鏈,進入共享請求的驗證階段。
2)驗證共享請求
系統(tǒng)在初始化的時候會通過DKG(distributedkeygeneration)為公證鏈上的每一個公證人生成一個私鑰份額ski(i=1,2,…,n),當公證鏈上的公證人接收到請求者發(fā)來的共享請求R后,會以廣播的形式發(fā)送給公證鏈上的其他公證人。每位公證人在收到共享請求R后會驗證其真實性并附上自己的簽名signi(ski,R),當共享請求R上對應的公證人簽名數(shù)量超過一定閾值時表示該共享請求驗證通過,否則該共享請求無效。針對公證人對于共享請求R的驗證共識,系統(tǒng)使用的是(k,n)門限簽名算法,即只要有t位公證人簽名確認了當前的共享請求,便可形成這n位公證人的密鑰對共享請求R進行系統(tǒng)級的數(shù)字簽名sign(sk,R)。在本方案中,共享請求只有經過公證鏈的驗證并得到對應的系統(tǒng)簽名才視為是合法的,具體的驗證過程如圖4所示。
3)隨機確定代理者
當共享請求被驗證通過后,公證鏈上的每位公證人Pi(i=1,2,…,n)生成自己的一個隨機數(shù)碎片γi(i=1,2,…,n),同時使用(k,n)可驗證秘密共享算法將自己的隨機碎片γi處理成n份共享值(γi,1,γi,2,…,γi,n),然后將其廣播給其他的公證人,其他公證人會驗證自己收到的隨機數(shù)碎片共享值(至少k個)并將驗證通過的共享值(γ1,i,γ2,i,…,γk,i)進行累加得到γi=γ1,i+γ2,i+…+γk,i,再將γi(i=1,2,…,n)廣播,每位公證人Pi(i=1,2,…,n)至少收到k個隨機數(shù)碎片γj(j∈i,i=1,2,…,n),通過拉格朗日插值算法得到其主隨機數(shù)ρi=∑kj=1γj,然后每位公證人利用自己的主隨機數(shù)ρi和公鑰pki計算哈希值Hi=hash(ρi,pki),并將計算的哈希值Hi上傳到比較池中,具體的比較操作交于智能合約來自動執(zhí)行,比較池中最小哈希值對應的公證人即目標代理者。將代理者的選舉由提前指定的方式改為隨機確認的方式,擴大了代理選擇的隨機性,降低了代理被攻擊的可能。隨機確定代理者的流程如圖5所示。
4)實現(xiàn)數(shù)據共享
在跨鏈共享請求R被公證鏈驗證通過且附上系統(tǒng)簽名sign(sk,R)后,代理者會將共享請求R和請求者的公鑰PKj發(fā)送給共享鏈上的提供者,提供者會先解析共享請求R,了解請求者的數(shù)據需求后,對共享數(shù)據D計算哈希值H1=hash(D),生成一對隨機對稱密鑰,并用隨機對稱密鑰將共享數(shù)據D加密成密文c1存儲到IPFS系統(tǒng)中,同時,針對本次跨鏈數(shù)據共享設定一個代理重加密的條件值C。然后提供者對共享數(shù)據D對應的IPFS文件指紋、使用的隨機對稱密鑰、哈希值H1等關鍵信息M進行哈希值計算,得到關鍵信息的哈希值H2=hash(M)后,使用自己的公鑰PKi將關鍵信息M和關鍵信息的哈希值H2加密成關鍵密文c2,并在c2中嵌入代理重加密的條件值C存儲到共享鏈上,使得數(shù)據共享的記錄不可被竄改。其次,提供者利用自己的私鑰SKi、請求者的公鑰PKj和重加密條件值C生成條件代理重加密密鑰RKiCj,并將該條件代理重加密密鑰和關鍵密文c2打包發(fā)給代理者。鑒于提供者提前設定好了重加密條件值C,所以代理者不可隨意對數(shù)據進行重加密,必須要當代理者手中的代理重加密密鑰RKiCj滿足重加密條件值C才可執(zhí)行重加密操作。當條件值C滿足時,代理者用條件代理重加密密鑰RKiCj直接加密關鍵密文c2得到新密文c3,然后再把新密文c3發(fā)送給請求者。其中,新密文c3等價于請求者使用自己公鑰PKj加密共享數(shù)據D對應的關鍵信息M和關鍵信息的哈希值H2所得的密文,所以請求者可以用自己的私鑰SKj直接解密c3,獲得關鍵信息M′和關鍵信息的哈希值H2。請求者對關鍵信息M′進行哈希值計算,將所得的哈希值H′2=hash(M′)與H2比較,如果H′2=H2,則說明M′=M,即關鍵信息M共享傳輸過程中未被竄改。當關鍵信息被驗證沒有問題后,請求者根據IPFS文件指紋從IPFS系統(tǒng)中下載密文c1,使用隨機對稱密鑰對其進行解密,獲得共享數(shù)據D′。然后計算D′的哈希值H′1=hash(D′)與關鍵信息M′中的共享數(shù)據哈希值H1比較,如果H′1=H1,則說明請求者獲得共享數(shù)據D′沒有問題。
5)共享確認
當請求者獲得目標共享數(shù)據,并確認無誤后,會向公證鏈上的公證人和共享鏈上的提供者給予一定數(shù)額的感謝金作為本次跨鏈數(shù)據共享的酬勞,對應的感謝金會匯入公證人和提供者的資金賬戶,至此跨鏈數(shù)據共享徹底完成。
2.3公證鏈管理
本文所述的跨鏈共享方案是面向聯(lián)盟鏈的,即支持不同異構鏈之間的數(shù)據共享,而跨鏈共享的關鍵是公證鏈的管理。公證鏈是由各個聯(lián)盟鏈挑選出信用排名靠前的部分節(jié)點共同組成的,所以對公證鏈的管理實質上是對分布式公證人的管理。
2.3.1公證人加入
每條聯(lián)盟鏈中的普通節(jié)點都有權限參與公證人的競爭,即通過自己在交易過程中的誠信表現(xiàn)來提高自己的信用排名,從而擴大公證人競選的優(yōu)勢,而且普通節(jié)點在競選公證人的時候需要繳納一定數(shù)額的保證金。保證金的設定是針對公證人的行為考慮的,有助于防止公證人出現(xiàn)不誠實行為或者惡意節(jié)點偽造生成眾多節(jié)點來干擾公證人的選舉。競選公證人的信用值標準是根據跨鏈狀況實時調整的,其目的是為了拒絕低信用的節(jié)點成為公證人,提高公證鏈的可靠性和跨鏈共享的安全性。
2.3.2公證人退出
各鏈上的普通節(jié)點可以競選成為公證人,當選的公證人也可以退出公證鏈,不再擔任公證人。公證人的退出機制有三種,分別是自愿退出、擅自退出和強制退出。
a)自愿退出。公證人在完成當前的跨鏈任務后再退出公證鏈,系統(tǒng)會將保證金退還給該公證人。
b)擅自退出。公證人在跨鏈共享過程中因某種原因選擇退出,此時系統(tǒng)會扣除公證人的一部分保證金作為未完成跨鏈任務就擅自退出的代價。
c)強制退出。公證人在實際跨鏈交易的過程中出現(xiàn)誠信問題,失去擔任公證人的資格,或者公證人的信用值低于競選公證人的信用標準等情況,系統(tǒng)會直接扣除該公證人的保證金,并強行將其從公證鏈的公證人集合中刪除。
2.4共享激勵策略
請求者提出跨鏈數(shù)據共享請求時,需要公證鏈的協(xié)助才能與提供者建立聯(lián)系,完成最終的數(shù)據跨鏈共享。其中,提供者依據請求者的共享請求提供相應的共享數(shù)據,公證鏈上的公證人負責共享數(shù)據的傳遞,而請求者在獲取目標共享數(shù)據后需要給予提供者和公證人一定數(shù)額的感謝金。感謝金的設定有助于防止請求者隨便發(fā)出共享請求和提高提供者和公證人誠信參與數(shù)據共享的積極性,做到勞有所獲。
3方案分析
3.1方案安全分析
1)共享數(shù)據的隱私性安全
本文方案在跨鏈數(shù)據共享的過程中,先將共享數(shù)據加密存儲到IPFS集群中,對應的關鍵信息再以密文的形式傳輸,保證共享數(shù)據的隱私性。提供者在接收到共享請求后,會將共享數(shù)據加密存儲到IPFS集群,加密使用的隨機密鑰、IPFS文件指紋和共享數(shù)據的哈希值也會用自己的密鑰進行加密然后發(fā)送給代理者,同時也將條件代理重加密密鑰發(fā)給代理者,由其進行重加密操作,將密文轉變成請求者可以解密的密文,便于請求者解密獲得加密共享數(shù)據對應的原始密鑰,從而拿到共享數(shù)據的明文。數(shù)據共享過程中數(shù)據明文是以密文的形式存儲,而加密數(shù)據的隨機對稱密鑰也被加密成密文再傳遞,可以很好地保證共享數(shù)據的隱私安全。
2)共享數(shù)據的完整性安全
提供者在數(shù)據共享的過程中,對共享數(shù)據明文和共享數(shù)據對應的關鍵信息都計算哈希值。當請求者解密獲得關鍵信息和共享數(shù)據明文時,可憑借哈希值來驗證關鍵信息和共享數(shù)據明文是否完整,保證共享數(shù)據的完整性安全。
3)代理者確定的隨機性安全
本文方案是基于條件代理重加密技術實現(xiàn)的數(shù)據共享,所以代理者的執(zhí)行環(huán)節(jié)是數(shù)據共享的關鍵。代理者是從公證鏈所有公證人中隨機選定一位公證人擔任的,而公證鏈上的公證人是各鏈根據信用排名算法選出的高信用節(jié)點,所以代理者本身就是高信用節(jié)點。其次,通過隨機確定的方式可以降低代理者被惡意節(jié)點攻擊的風險,從而提高跨鏈交互的安全性。綜上,可認為本文方案隨機確定代理者是安全的。
4)公證人信用安全
本文方案中的公證人是從各個聯(lián)盟鏈中選出信用排名靠前的節(jié)點,所以這些公證人本身就是高信用的,出現(xiàn)不誠實行為的概率較小。同時,本文方案為了防止公證人出現(xiàn)信用問題,還設定了保證金,即在任的公證人都要繳納一定數(shù)額的保證金,如果出現(xiàn)不誠實表現(xiàn),系統(tǒng)就會扣除其保證金,通過這種利益關聯(lián)的方式,可以讓公證人在數(shù)據共享過程中表現(xiàn)得更加誠實。此外,在數(shù)據共享完成后,請求者會給予公證人一定數(shù)額的感謝金,這會刺激公證人誠信地參與數(shù)據共享,綜上,認為本文方案中公證人是信用安全的。
3.2方案性能分析
3.2.1方案對比
本節(jié)主要從跨鏈共享方式、數(shù)據存儲方式、信用管理方式、去中心化程度和方案安全性五個方面將本文方案與類似跨鏈方案進行比較分析,比較結果如表1所示。
由表1可知,本文方案相較于文獻[12]中的公證人組跨鏈方案,去中心化程度更高;與文獻[13]相比,本文方案對公證人增加了信用約束和激勵,在提高公證人參與跨鏈共享積極性的同時,又能規(guī)范公證人的行為。在數(shù)據存儲方面,文獻[12,13]都采用鏈上存儲的方式,而本文方案采用的是區(qū)塊鏈結合IPFS系統(tǒng)的混合存儲方式,降低了區(qū)塊鏈的數(shù)據存儲壓力。綜上,本文方案相較于文獻[12,13]的安全性更高。
3.2.2實驗分析
本節(jié)通過仿真實驗對本文所提的基于條件代理重加密的跨鏈數(shù)據共享方案進行跨鏈吞吐量、跨鏈平均時延和鏈上存儲開銷三方面的測試,并與文獻[12,13]進行比較,根據實驗結果對本文方案的性能效率進行評估。本文實驗環(huán)境為:IntelCorei7-10875K3.6GHz處理器、8GB內存、Windows10操作系統(tǒng)的計算機,編程語言為Go語言?;贖yperledgerFabric2.2.0框架搭建本文方案中跨鏈體系對應的多鏈網絡,并利用HyperledgerFabric提供的API生成并發(fā)送事務,用于模擬跨鏈數(shù)據共享的請求事務。
吞吐量直接關聯(lián)系統(tǒng)的處理能力,吞吐量越大,即表示系統(tǒng)處理事務的能力越強。文獻[12,13]和本文方案這三者關于跨鏈吞吐量的對比結果如圖6所示。由圖中吞吐量曲線可以看出,隨著事務發(fā)送速率的增加,吞吐量在不斷上升。當跨鏈數(shù)據共享的請求事務較少時,文獻[12,13]和本文方案的吞吐量差距不大,但隨著跨鏈數(shù)據共享的請求事務逐漸增多,本文方案的吞吐量略高于文獻[12,13]的吞吐量。因此,在跨鏈數(shù)據共享的請求事務居多的情況下,本文方案的跨鏈處理效率要高于文獻[12,13]。
為進一步評估本文方案的跨鏈共享情況,對鏈間共享請求事務的操作時延進行測試,取30次測試結果的均值,本文方案與文獻[12,13]關于跨鏈平均時延的對比結果如圖7所示。從圖中可以看出,三者的跨鏈平均時延隨著跨鏈事務發(fā)送速率的增加而逐漸增大。本文方案相比文獻[12,13]具有更小的跨鏈時延,雖然本文方案的跨鏈時延也隨事務發(fā)送速率的增加而不斷增大,但并未完全呈指數(shù)型增加,因此,本文方案擁有合理的跨鏈交互速度,有利于實現(xiàn)鏈間數(shù)據的安全共享。
由于文獻[12,13]對于共享數(shù)據都是鏈上存儲,而本文方案采用的是鏈上鏈下混合存儲方式,所以關于區(qū)塊鏈上數(shù)據存儲開銷問題,本文僅針對鏈上存儲和鏈上鏈下混合存儲這兩種方式進行仿真測試,具體實驗結果如圖8所示。在同等數(shù)據量下,本文方案混合存儲方式對于區(qū)塊鏈存儲空間的消耗比單一的鏈上存儲對于區(qū)塊鏈存儲空間的消耗要小很多,因為本文方案將大量共享數(shù)據都存于鏈下的IPFS中,鏈上僅存儲共享數(shù)據對應的關鍵信息,所以本文方案對于鏈上存儲空間的影響較小。
4結束語
當前,區(qū)塊鏈的發(fā)展已不再局限于金融業(yè)的單線發(fā)展,而是緊隨萬物互聯(lián)的社會發(fā)展趨勢向其他學科領域、行業(yè)進行拓展融合,打造區(qū)塊鏈網絡的生態(tài)圈。但是,已有的區(qū)塊鏈大都是聯(lián)盟鏈或者私有鏈,都是封閉、獨立的縱向發(fā)展網絡,以至于各個區(qū)塊鏈之間的交互共享難以實現(xiàn)。針對這一現(xiàn)狀,本文研究了現(xiàn)有的跨鏈技術,并提出了一種基于條件代理重加密的跨鏈數(shù)據共享方案。該方案挑選各聯(lián)盟鏈中信用排名靠前的部分節(jié)點擔任公證人并組成公證鏈,利用區(qū)塊鏈固有的特性解決公證人的中心化問題。采用隨機確定的方式選擇一位公證人作為代理者執(zhí)行條件代理重加密操作,實現(xiàn)共享密文從支持提供者解密轉變成支持請求者解密的狀態(tài),其中使用的條件代理重加密密鑰是由提供者自己生成的,避免了提供者的私鑰泄露。采用區(qū)塊鏈結合IPFS的混合存儲模式,能有效減小區(qū)塊鏈的存儲壓力。最后,安全分析表明,本文方案具有一定的安全性,能夠有效地實現(xiàn)跨鏈數(shù)據的安全共享。性能分析表明,本文方案相較于其他的跨鏈數(shù)據共享方案在跨鏈吞吐量、跨鏈平均時延和鏈上存儲開銷上具有一定的優(yōu)勢和可靠性。未來研究工作中,將進一步研究更為高效的跨鏈數(shù)據共享方法,提升系統(tǒng)共享效率。
參考文獻:
[1]張亮,劉百祥,張如意,等.區(qū)塊鏈技術綜述[J].計算機工程,2019,45(5):1-12.(ZhangLiang,LiuBaixiang,ZhangRuyi,etal.Overviewofblockchaintechnology[J].ComputerEngineering,2019,45(5):1-12.)
[2]鄭建輝,林飛龍,陳中育,等.基于聯(lián)盟自治的區(qū)塊鏈跨鏈機制[J].計算機應用,2022,42(11):3444-3457.(ZhengJianhui,LinFeilong,ChenZhongyu,etal.Federated-autonomy-basedcross-chainschemeforblockchain[J].JournalofComputerApplications,2022,42(11):3444-3457.)
[3]邵奇峰,金澈清,張召,等.區(qū)塊鏈技術:架構及進展[J].計算機學報,2018,41(5):969-988.(ShaoQifeng,JinCheqing,ZhangZhao,etal.Blockchain:architectureandresearchprogress[J].ChineseJournalofComputers,2018,41(5):969-988.)
[4]何帥,黃襄念,陳曉亮.區(qū)塊鏈跨鏈技術發(fā)展及應用研究綜述[J].西華大學學報:自然科學版,2021,40(3):1-14.(HeShuai,HuangXiangnian,ChenXiaoliang.Theresearchsummaryofthedevelopmentandapplicationofblockchaincross-chaintechnology[J].JournalofXihuaUniversity:NaturalScienceEdition,2021,40(3):1-14.)
[5]徐卓嫣,周軒.跨鏈技術發(fā)展綜述[J].計算機應用研究,2020,38(2):341-346.(XuZhuoyan,ZhouXuan.Surveyoncrosschaintechnology[J].ApplicationResearchofComputers,2020,38(2):341-346.)
[6]路愛同,趙闊,楊晶瑩,等.區(qū)塊鏈跨鏈技術研究[J].信息網絡安全,2019,19(8):83-90.(LuAitong,ZhaoKuo,YangJingying,etal.Researchoncross-chaintechnologyofblockchain[J].NetinfoSecurity,2019,19(8):83-90.)
[7]高志豪.區(qū)塊鏈之跨鏈技術介紹[J].金卡工程,2016(11):46-51.(GaoZhihao.Theintroductionofcross-chaintechnology[J].CardsWorld,2016(11):46-51.)
[8]夏肇元,程文美,劉菲,等.基于區(qū)塊鏈跨鏈的供應鏈信息共享方法[J].數(shù)字技術與應用,2021,39(12):189-191.(XiaZhaoyuan,ChengWenmei,LiuFei,etal.Supplychaininformationsharingmethodbasedonblockchaincross-chain[J].DigitalTechnologyamp;Application,2021,39(12):189-191.)
[9]MorkunasVJ,JeannetteP,BoonE.Howblockchaintechnologiesimpactyourbusinessmodel[J].BusinessHorizons,2019,62(3):295-306.
[10]章峰,史博軒,蔣文保.區(qū)塊鏈關鍵技術及應用研究綜述[J].網絡與信息安全學報,2018,4(4):22-29.(ZhangFeng,ShiBo-xuan,JiangWenbao.Reviewofkeytechnologyanditsapplicationofblockchain[J].ChineseJournalofNetworkandInformationSecurity,2018,4(4):22-29.)
[11]雷志偉,朱義,張健,等.一種可監(jiān)管的區(qū)塊鏈跨鏈平臺設計[J].計算機與數(shù)字工程,2021,49(12):2544-2550,2572.(LeiZhiwei,ZhuYi,ZhangJian,etal.Designofasupervisedblockchaincrosschainplatform[J].Computeramp;DigitalEngineering,2021,49(12):2544-2550,2572.)
[12]蔣楚鈺,方李西,章寧,等.基于公證人組的跨鏈交互安全模型[J].計算機應用,2022,42(11):3438-3443.(JiangChuyu,F(xiàn)angLixi,ZhangNing,etal.Cross-chaininteractionsafetymodelbasedonnotarymechanism[J].JournalofComputerApplications,2022,42(11):3438-3443.)
[13]葉祥翮,劉學業(yè),王斌輝,等.面向聯(lián)盟鏈的分布式公證人跨鏈模型[J].應用科學學報,2022,40(4):567-582.(YeXianghe,LiuXue-ye,WangBinhui,etal.Distributednotarycross-chainmodelforconsortiumchain[J].JournalofAppliedSciences,2022,40(4):567-582.)
[14]LibertB,VergnaudD.Unidirectionalchosen-ciphertextsecureproxyre-encryption[J].IEEETransonInformationTheory,2011,57(3):1786-1802.
[15]葉偉偉,歐慶于,魏巍.可證安全的基于身份條件代理重加密方案[J].計算機工程,2017,43(9):194-198,204.(YeWeiwei,OuQingyu,WeiWei.Provablysecureidentity-basedconditionalproxyre-encryptionscheme[J].ComputerEngineering,2017,43(9):194-198,204.)
[16]WengJian,DengRH,DingXuhua.Conditionalproxyre-encryptionsecureagainstchosen-ciphertextattack[C]//ProcofInternationalSymposiumonInformation,ComputerandCommunicationsSecurity.NewYork:ACMPress,2009:322-332.
[17]戴炳榮,姜勝明,李頓偉,等.基于改進PageRank算法的跨鏈公證人機制評價模型[J].計算機工程,2021,47(2):26-31.(DaiBingrong,JiangShengming,LiDunwei,etal.Evaluationmodelofcross-chainnotarymechanismbasedonimprovedPageRankalgorithm[J].ComputerEngineering,2021,47(2):26-31.)