喬 蕊 劉敖迪 陳 迪 王清賢
物聯網(Internet of things,IoT)是通過部署具有一定感知、計算、通信、控制、協同和自治特征的基礎設施,獲得物理世界的信息,通過網絡實現信息的傳輸、協同和處理,從而實現人與物、物與物之間實時全面感知、動態可靠控制和智能信息服務的互聯網絡[1].根據麥肯錫全球研究院2018 年11月發布的報告預測,全球物聯網市場規模將在2025 年達到11 萬億美元,約占全球經濟的11%,其市場前景將遠遠超過計算機、互聯網與移動通信等[2].物聯網規模擴張后,多種物聯網應用之間的交互合作更加密切,為促進行業智能應用服務水平的進一步提升,設備間的協作和交互呈現爆發式增長,用戶對隱私、安全、定制消費等需求將進一步加劇[3?4],迫切需要為功能受限的設備提供可擴展的安全性和動態自主通信機制.圍繞上述需求,研究者和物聯網企業都做出很多努力.常見的物聯網解決方案依賴于云服務器?客戶端架構[5?7],然而不同利益主體間很難實現完全信任并進行基于機器數據的自主協作交互.另一種解決方案是將邊緣計算作為云架構的補充[8?10],但邊緣設備和云服務器之間的大量數據傳輸導致底層網絡擁塞,且無法實現不同利益主體間智能設備的自主交互.聯盟鏈具有公有鏈固有的安全性,其許可準入機制允許對網絡結點及規模進行控制,恰好迎合了物聯網向規模化、智能化發展的需要,成為近期物聯網研究的熱點[11?13].
建立在物聯網聯盟鏈數據及操作授權隱私保護、不可篡改和可追溯特性基礎上的物聯網自主協作,將大大提升物聯網商業價值[14?15].典型的物聯網聯盟鏈鏈間協作場景如圖1 所示,該場景中,醫院、外部停車場、征信機構均采用聯盟鏈存儲和管理各自的數據.患者擬駕車去醫院就診,可提前使用智能手機等終端輸入個人信息進行就診預約,并授權醫院從征信機構自主獲取該患者的信用評估信息.醫院根據該患者信用等級,授權該患者使用停車場及部分智能醫療監測設備.患者可在就診當日自助完成車輛識別、常規檢查、病史記錄等,快速準確地建立就診檔案.

圖1 物聯網聯盟鏈鏈間交互場景圖Fig.1 Interaction between IoT consortium chains
目前,學術界和企業界已經在不同的物聯網生態及價值體系下,構建了若干基于聯盟鏈的物聯網應用[16?19].然而由于聯盟鏈的相互獨立性,產生了多中心化的區塊鏈生態體系,現存各聯盟鏈之間的數據通信、價值轉移等仍面臨挑戰,價值孤島現象逐漸顯現[20?22].此外,隨著物聯網系統規模的擴大,實際通信場景的復雜化勢必造成系統性能和安全性的下降,對結點跨聯盟鏈通信過程中訪問控制機制的可擴展性也提出了新的挑戰[23?24].
本文在基于聯盟鏈驗證結點列表VNL (Verification nodes list)共識和跨鏈通信機制研究基礎上[25?27],進一步研究復雜場景下物聯網聯盟鏈系統自主交互理論模型及算法.從基于門限數字簽名跨鏈共識TCCM (Threshold-digital-signature-based cross-chain consensus mechanism)的可選信任?驗證機制、基于TCCM 自主路由的鏈間動態授權機制及防止異步授權的跨鏈原子通信機制三方面對現有物聯網通信機制進行改進,給出一種能夠抵御復雜跨聯盟鏈通信系統失效蔓延攻擊的異步授權狀態同步通信機制,在優化系統性能的同時確保系統的安全性.
本文的主要貢獻如下:
1) 給出結點跨鏈通信身份可信性路徑證明PPTI (Path proof with trusted identity)構造規則及基于門限數字簽名TDS (Threshold digital signature)的遞歸路徑證明生成方法,將多個聯盟鏈驗證結點列表對跨鏈交易的共識過程建模為存在多個特權子群的TDS 過程.在此基礎上,提出能夠有效提高系統安全性和可擴展性的基于多級混合共識的可選信任?驗證機制.
2) 采用物聯網動態數據操作授權多維DAG(Direct acyclic graph)存儲結構構造授權狀態鏈,提出構造授權碼并運行智能合約交易實現結點間細粒度跨鏈自主授權方法,利用存在特權子群的TDS共識和非對稱密碼學原理實現智能合約授權交易的自適應路由.
3)提出初始化?鎖定?解鎖三階段物聯網聯盟鏈鏈間交易原子提交協議,用于原子地處理跨聯盟鏈交易,以防止異步授權導致的雙重支出攻擊和未成功轉移的價值被永久鎖定,確保各聯盟鏈之間交易狀態的一致性.
本文其余部分安排如下.第1 節介紹跨鏈通信相關研究.第2 節分析物聯網系統實體自主協作過程,抽象出復雜場景下物聯網聯盟鏈鏈間通信模型.第3 節從聯盟鏈鏈間合作機制、跨鏈授權機制、跨鏈原子通信機制三個方面介紹實現物聯網聯盟鏈鏈間自主動態通信的主要算法改進.第4 節通過理論分析及實驗部署驗證本文機制實現物聯網實體跨鏈通信的安全性和有效性.第5 節總結全文.
將聯盟鏈技術融合應用到物聯網領域的挑戰之一是系統可擴展性.解決不同物聯網聯盟鏈實體跨鏈授權協作及資產交互等通信問題,是提升物聯網聯盟鏈可擴展性的關鍵.對于區塊鏈鏈間通信,目前已經出現了一些概念驗證,并取得了進展[28],例如,以閃電網絡為代表的哈希鎖定技術,以Block-Stream 為代表的側鏈技術,以BTC-Relay 為代表的中繼技術,以Interledger 為代表的公證人機制,以Fusion 為代表的分布式私鑰控制技術等.跨鏈技術除了沿用早期類質押的思想外,還提出了區塊鏈結點角色分工、狀態通道、信任傳遞等新的思想[20,29?33].
早期的跨鏈技術主要關注資產轉移[34?40],比較著名的有哈希鎖定和側鏈技術.哈希鎖定技術主要思路是,為實現用戶間小額支付通道,用戶需提前鎖定自己的部分款項,涉及該部分款項的交易在鏈下進行,款項的最終分配方案確定后再上傳至主鏈[34?35].側鏈是以原生數字資產為基礎,和其他賬本資產在多個區塊鏈間轉移的鏈間通信技術,是為解決主鏈擴展問題而提出的擴容技術[36?37].比較著名的比特幣側鏈有BlockStream[36]和RootStock[38]的元素鏈,非比特幣側鏈有Lisk[39]和國內的Asch[40]等.
現有研究更多關注的是鏈狀態的轉移[41?45].以太坊通過建立在以太坊網絡協議之上的多個分片來實現鏈間通信,通過一種稱為超二次分片的方法指數級地提高網絡吞吐量[41],然而現有分片技術需要幾次甚至多次的硬分叉才能完成,這給現有應用和用戶帶來很多不便.Ripple 開發的 Interledger 協議[42]通過第三方“連接器”或“驗證者”進行鏈間資產交互,該協議采用密碼算法為參與的多條鏈和連接器創建資金托管,各鏈無需信任連接器,當所有參與方對交易資產量達成共識時,便可進行資產交互,只有參與資產交互的區塊鏈系統才可以跟蹤交易.Pointnity Network[43]為解決單一區塊鏈在實際應用場景中無法解決復雜問題,以及在性能上相對于傳統中心化系統所呈現的瓶頸,提出“恩特鏈”區塊鏈跨鏈網絡.Polkadot[44]采用多鏈融合的設計模式,將其他鏈都視為平行鏈,通過中繼鏈(Relay-chain)將平行鏈上的代幣轉入具有多重簽名控制的母鏈地址中,對其進行暫時鎖定,在中繼鏈上的交易結果將由簽名人共同投票決定是否有效,從而實現跨鏈通信.Fusion[45]將各種加密資產通過分布式私鑰生成與控制技術映射到公有鏈上,多種被映射加密資產可以在其公有鏈上進行自由交互.
隨著資產上鏈以及鏈間通信需求的加劇,有研究開始探尋基于智能合約的去中心化跨鏈資產管理方法[46?47].以太坊平臺提供了圖靈完備的智能合約運行環境,目前已擁有超過5 700 萬個賬戶[48].ERC20為以太坊區塊鏈上的資產交易建立了標準合約ABI(Application binary interface),共享合約界面,簡化與外部合約的集成,已成為多類數字資產交易的事實標準[49].在以太坊智能合約研究基礎上[46],Warren 等[50]提出了旨在作為開放標準和通用構建塊的基于ERC20 的簡明點對點資產交易協議,通過在開源以太坊智能合約之上開發用于資產交互的分布式應用程序(Decentralized application,DAPP)實現資產交易,并對最終成交交易收取交易費用.與上述研究不同,Aeternity[51]構建了高度可擴展的區塊鏈架構及基于預言機(Oracle)驗證模型的共識機制.
綜上所述,現有區塊鏈跨鏈通信方面的研究,引入了資產映射和資產交易概念模型重構區塊鏈價值交換網絡.盡管經過近幾年的快速發展,仍存在一些不足:1)主要通過抵押方式保證資產交互的原子性,處理一般數字資產上鏈及資產交互事務的實現邏輯較為復雜,應用場景受限;2)抵押方式下,通過智能合約實現的跨鏈協同操作,為保證區塊鏈上一般資產交互事務的原子性,需在等待一條鏈返回處理結果的過程中,將智能合約的狀態封存,從而導致在等待的過程中,該智能合約無法執行其他請求,由此帶來效率低下、功能缺失等問題,無法滿足物聯網商業應用.
系統中存在資產所有者、發布者、訪問者和交易驗證者4 類角色.本文對通信模型做如下假設:
1)連接至不同系統的感知設備始終在線;為了達到一定程度的對等通信,將感知數據發送至網關,由網關作為發布者發布感知數據;實體和資產間關系采用一對多范式,擁有資產所有權的實體可隨時監控系統設備及數據,對其進行操作并對其他實體進行除所有權外的自治授權;被授權實體可以訪問者身份進行特定操作.
2)通過聯盟鏈機構審核機制為驗證者建立的身份足以抵御Sybil 攻擊.
3)驗證者之間的通信通道是同步的,即如果某驗證者廣播了一條消息,則所有驗證者都會在已知的最大通信時延Δ 內接收到該消息.
復雜跨聯盟鏈系統鏈間通信模型如圖2 所示.通信模型中,有n個來自各聯盟鏈的驗證者參與交易處理并確保系統狀態的一致性,機構為各聯盟鏈CX中的每個驗證者i都生成一個公、私鑰對),通過唯一標識驗證者i.復雜通信情況下,系統中的一次請求需要由若干個交易協作完成,如該模型聯盟機構B 中某結點需獲得另兩聯盟機構A 和D 中結點協作才能繼續執行當前任務.圖2 (a)中,圓形結點為各聯盟機構內部參與系統運行的活動實體,其中,灰色結點為普通結點,僅參與交易的生成和中繼;條紋結點為機構預選的驗證結點,除了具備普通結點功能,還可以對交易進行驗證;黑色結點為某次鏈間協作涉及到的結點;有向箭頭尾部結點為交易發起結點,箭頭指向結點為交易響應結點.聯盟機構A,B,D驗證結點總數分別為nA,nB,nD,由機構設定聯盟鏈驗證結點門限值分別為tA,tB,tD,各聯盟鏈驗證結點集中實際通過當前驗證的結點(圖2 (b)中環形結點)數目分別為當實際通過驗證結點數目滿足群簽名機制門限要求時,響應來自的請求.

圖2 聯盟鏈鏈間通信模型Fig.2 Consortium cross-chain communication model
本文通過構建基于群門限數字簽名的跨鏈合作機制,降低異構物聯網聯盟鏈數字資產跨鏈交互的復雜度;利用存在特權子群的門限數字簽名共識算法和非對稱密碼學原理,實現對智能合約授權交易的自適應路由,進而實現結點間跨鏈無償?主動授權,簡化驗證流程,提高驗證效率;給出跨鏈原子通信協議,以原子方式提交或終止由若干個交易協作完成的跨鏈請求,確保跨鏈通信期間單個聯盟鏈正確、連續處理交易的魯棒性,有效抵御失效蔓延攻擊.
復雜情況下跨聯盟鏈通信機制主要包括跨鏈合作、授權機制、跨鏈原子通信三部分.若交易處理的某階段未通過,則忽略該交易,本節僅分析交易處理各階段均通過的情況.
定義1.建立合作關系的m個聯盟鏈C1,C2,···,Cm驗證結點列表集合記為群C,各聯盟鏈驗證結點列表記為群C中m個互不相交的特權子群C1,C2,···,Cm,存在多個特權子群的門限數字簽名共識表示為:

上述定義中,子群Ci為聯盟鏈Ci中驗證結點集合,ni表示子群Ci驗證結點列表中的結點個數,ti表示子群Ci的ni個驗證結點通過某次驗證的最少結點數目,表示ni個驗證結點中實際通過某次驗證的結點數目,t表示群C的n個驗證結點通過某次驗證的最少結點數目.式(1)限定聯盟鏈間合作關系,式(2)、式(3)表示聯盟鏈驗證結點集規模,式(4)驗證聯盟鏈內部基于驗證結點列表的TDS共識,式(5)驗證基于驗證結點列表的TCCM 共識.
由聯盟機構決定系統對公眾的開放程度,采用橢圓曲線密碼算法為聯盟機構及實體生成各自的公、私鑰對 (PK,SK),對實體身份進行分類和標識,構造實體身份證明.下面介紹為實現不同聯盟鏈實體間自主協作,構造跨鏈結點通信路徑證明和聯盟鏈鏈間合作共識證明的方法.
3.1.1 路徑證明構造規則
定義2.sig(m,X)表示X的私鑰對消息m(m/?)的簽名,三元組 (m,P,σ) 表示交易路徑證明,P(TX){u0,···,uk}為交易TX從請求發起結點u0到最近響應結點uk的有向連通路徑,σsig(···sig(m,u0),···,uk)為從u0到uk的路徑簽名.若uk為中繼響應結點,從u0到uk的路徑證明稱為當前路徑證明;若uk為最終響應結點,從u0到uk的路徑證明稱為全路徑證明.
對P2P 通信方式下可信傳播路徑進行簡化,得到路徑證明構造規則如下:
規則1 (聚合規則).在PPTI 路徑證明拓撲鏈路上,將驗證結點子群抽象為有向路徑證明中的一個結點,相應地將合法的門限子群簽名作為路徑簽名中的一個簽名;
規則2 (等價規則).將聯盟鏈內部結點經鏈內其他結點中繼至驗證結點子群的PPTI 路徑證明簡化為由該結點至驗證結點子群的單跳路徑證明;
規則3 (中繼規則).不同聯盟鏈結點間跨鏈通信PPTI 路徑證明僅包含驗證結點子群作為中繼結點;
規則4 (響應規則).PPTI 路徑證明中普通結點間的單跳路徑表示基于請求發起結點價值轉移密鑰s的盲響應.
由聚合規則,將驗證結點子群CX抽象為有向PPTI 路徑證明中的一個結點;由等價規則,將結點CAk經鏈內其他結點中繼至驗證結點子群CA的PPTI 路徑證明簡化為由結點至CA的單跳路徑證明;由中繼規則,∈CB,∈CA,CA∩CB?,至的跨鏈路徑證明僅包含通信鏈路上驗證結點子群 {CB,···,CX,···,CA} 作為中繼結點;由響應規則,路徑證明鏈路存在回路,且任意兩普通結點間的PPTI 路徑證明為經過若干驗證結點子群中繼的多跳路徑證明,兩普通結點間的單跳路徑為響應結點基于請求結點和響應結點間PPTI路徑證明對請求結點發出價值轉移密鑰s的單跳響應.
由定義2,得到基于TDS 的遞歸路徑證明生成公式:

其中,參數ti,ni為可選項,用于門限簽名.
,∈CA,CA ∩CB?,以明文方式構造對另一聯盟鏈結點的交互請求,根據路徑證明構造規則2 和生成式(6)依次構造至CB、CB至CA、CA至的PPTI 路徑證明.
3.1.2 基于TCCM 的合作共識
通信模型中,群C內存在三個特權子群,鏈間路徑證明群簽名協議標記為(tA,nA;tB,nB;tD,nD;t,n).為得到授權,除PPTI 路徑證明外,還需要向系統提供聯盟鏈鏈間合作共識路徑證明.基于特權子群的聯盟鏈鏈間合作共識路徑證明構造具體包括群秘鑰生成與共享、門限子群簽名生成及路徑證明更新三部分,最后由響應結點所在聯盟鏈驗證結點子群對路徑證明中各門限子群簽名進行合成.
由秘鑰頒發機構選取安全素數u、v,且滿足v|(u ?1);在有限域Zv上秘密選取4 個多項式f(x),gA(x),gB(x),gD(x),次數依次為 (t ?1),(tA ?1),(tB ?1),(tD ?1).選取有限域Zv的本原元α,公開(u,v,α)和xp,yAi,yBj,yDk∈RZv;p1,2,···,n;i1,2,···,nA;j1,2,···,nB;k1,2,···,nD.由秘鑰頒發機構按照式(7) 隨機產生群私鑰,按照式(8)計算群公鑰,群私鑰采用基于Shamir 的秘密共享算法進行分發.

基于秘密共享算法為特權結點Cq秘密分配群私鑰片段f(xq),gA(yAi),gB(yBj),gD(yDk),按照式(9)計算其公鑰并公開.

由式(2),子群CX驗證結點個數為|CX|nX,(nX >0,X ∈{A,B,D}),子群CX的nX個驗證結點中通過某次驗證的門限結點數目為tX.被簽署的交易為TX.對于每個ti ∈{tX},秘密隨機選取由式(10)計算公鑰片段子群Ci內各驗證結點由式(11)計算子群公鑰rX,由式(12)計算單個驗證結點私鑰片段

其中,λp、μp是Shamir 秘密共享算法中公開可計算的拉格朗日系數,h(x) 是安全的哈希函數.
群C內結點由式(13)驗證子群內單個驗證結點簽名的合法性.

3.1.3 共識優化
為提高系統安全性,通常將系統劃分為數量少、規模大的聯盟鏈,而大規模的聯盟鏈又帶來交易共識延遲較長的問題.為解決此問題,本文根據交易涉及的實體范圍,將交易劃分為不同的類型,采取不同的TDS 共識方式,下面給出交易類型的判別式.

若式(17) 成立,該交易為非跨鏈交易,否則,為跨鏈交易.系統根據該判別式自動識別跨鏈與非跨鏈交易.基于多級混合共識的信任?驗證機制對交易進行驗證,共識架構如圖3 所示.

圖3 基于多級混合共識的信任?驗證機制Fig.3 Multi-consensus based trust-verification mechanism
對于非跨鏈低價值交易,由鏈內驗證結點按照式(18)對其進行快速共識(第一級共識).

用戶可以選擇接受快速共識結果并獲得實時的處理效率,然而,這并不意味著對系統低價值交易處理完畢.為保證系統長期運行的安全性,系統在用戶接受快速共識結果后仍需要對低價值交易數據區塊進行第二級共識,當第二級驗證結點共識結果與第一級不一致時,機構將對第一級共識列表中簽署了非法區塊的驗證結點進行識別并追究責任.一方面,第二級共識完成時間距離用戶接受第一級快速共識的時間并不會太久,可以較快甄別虛假共識并盡可能挽回損失;另一方面,理性參與結點的目標是最大化自己的收益函數,對于低價值交易,機構通過引入懲罰機制,對惡意驗證結點采取剔除出VNL 或其他形式懲罰,降低結點作惡的可能性.詳細的懲罰機制本文不做討論.
對于非跨鏈交易中的高價值交易,采用多級混合共識中的兩級驗證機制,由交易發送者所在聯盟鏈內VNL 構成第一級共識列表,根據群簽名門限值隨機生成來自不同聯盟鏈VNL 的第二級共識列表,按照式(19)對其進行共識.
對于跨鏈交易,采用上述基于存在特權子群TDS機制的多級混合共識方式,根據機構為各結點所在聯盟鏈設定的共識門限值對接收或發出的交易進行鏈內共識,由交易的最終響應結點所在聯盟鏈驗證結點子群使用群密鑰對路徑證明中各子群TDS 進行合成,按照式(20)對其進行共識.
本文提出的多級混合可選信任?驗證共識機制通過將交易區分處理,充分利用鏈內共識速度較快,有利于提高系統吞吐量,第二階段共識(跨鏈)過程較慢,但可獲得更高安全性的處理特性,可在不犧牲系統吞吐量和安全性的情況下,實現低價值交易的實時確認,同時保障跨鏈交易和高價值交易的安全性.因此,上述機制在微觀上最大程度地提高了系統驗證資源利用率,宏觀上提升了鏈內驗證和二次驗證并發執行的程度,從而提升了系統共識效率.

通過對物聯網系統運行邏輯進行分析,本文對物聯網結點間授權協作行為進行細粒度劃分,如圖4所示,物聯網結點間協作除了存在有償?請求(跨鏈)授權情況,在復雜場景下,還存在無償?主動(跨鏈)授權情況.

圖4 授權協作的細粒度劃分Fig.4 Fine-grained division for authorization collaboration
有償?請求授權是指請求者通過提供授權請求、可信身份證明等,并在智能合約中托管一定數額承諾轉移的資產,獲得目標響應者授權的方式,如圖4 (a)所示.文獻[27]通過部署基于VTM (Value transfer mechanism)機制的智能合約實現了結點間有償?請求授權.無償?主動授權是指由于結點間協作需要,擁有某項權限的結點需要主動授權給目標結點的情況,如圖4 (b) 所示,例如,聯盟鏈CA中結點需要向聯盟鏈CB中結點授權,并與一起完成某項任務.在上述無償?主動授權過程中,結點需向結點自主提供可信身份證明(圖4 (b)中灰色箭頭),驗證通過后,才會對進行授權(圖4 (b)中黑色箭頭).顯然,無償?主動授權過程由于缺乏價值激勵無法通過VTM 機制實現.本節介紹利用存在特權子群的TDS 共識算法和非對稱密碼學原理實現對智能合約授權交易自適應路由,進而實現結點間跨鏈無償?主動授權的方法.
為了使不存在依賴關系的交易在異構聯盟鏈中并發處理,采用文獻[25]提出的物聯網動態數據操作授權多維DAG 存儲結構構造授權狀態鏈,以維護所有公開授權記錄、投票表決表及由實體構成的成員表.一般情況下,兩個相鄰的授權狀態區塊的DAG 結構的大部分應該是相同的,因此,可以利用指針(即子樹哈希)方便地實現對已經獲得授權的引用,利用授權碼插入和刪除結點更新授權鏈,授權碼定義如下.
定義3.授權碼(Authorization code,Acode)由授權交易的授權方生成,包括授權方機構公鑰、使能標志、授權類型及授權方公鑰4 個部分,用于提供授權證明、進行授權驗證.


圖5 授權過程示意圖Fig.5 Authorization diagram


復雜跨聯盟鏈交易機制下,需要將一次交互過程涉及的多個交易發送給多個聯盟鏈進行處理.然而,在跨鏈形成的鏈聯網結構中,如果部分聯盟鏈共識失敗或遭受51%攻擊,則可能出現部分聯盟鏈接受交易而其他聯盟鏈中止交易的情況,鏈聯網中錯綜復雜的跨鏈通信則會因為部分死鏈導致連鎖式的交互失敗.如果不添加可利用的競爭條件,將無法直接撤銷已提交交易,造成資產損失等嚴重后果.為解決上述問題,本節給出跨聯盟鏈通信交易原子提交協議,如圖6 所示,包括交易初始化、鎖定和解鎖三個階段,用于原子地處理跨聯盟鏈交易,以防止雙重支出攻擊和未成功轉移的價值被永久鎖定,確保各聯盟鏈之間交易狀態的一致性.

圖6 跨鏈原子通信示意圖Fig.6 Cross-chain atomic communication
圖6 中,由用戶(實體用戶或智能合約用戶)賬戶創建并向網絡廣播跨聯盟鏈交易TXcross,假設其輸入為來自兩個不同聯盟鏈的最新授權證明和交易執行邏輯,輸出為對另一聯盟鏈的實體?資產授權關系或新生成資產的權屬分配.與交易TXcross相關的輸入聯盟鏈運行方式如下:在輸入聯盟鏈內部驗證交易中身份證明的有效性,若有效,將交易鎖定在該聯盟鏈的賬本中,并廣播對該交易的鎖定,允許結點訪問輸入聯盟鏈賬本進行交易鎖定驗證(圖6 (b));反之,在聯盟鏈內創建驗證未通過證明(圖6 (b')).
根據交易執行結果,將對交易的解鎖分為交易提交解鎖和交易終止解鎖.若系統中所有聯盟鏈都廣播了交易驗收通過證明,則可以提交相應的交易,用戶賬戶創建并廣播解鎖該交易的交易,包括與該交易對應的鎖定交易和用戶賬戶身份證明.然后,各聯盟鏈驗證解鎖交易,并將原交易輸出包含在輸出聯盟鏈賬本的下一個塊中(圖6 (c)).
若某輸入聯盟鏈發出驗證未通過證明,則所有聯盟鏈終止該交易.此外,若存在多個輸入聯盟鏈,為了回收在其他聯盟鏈鎖定的資產,用戶賬戶必須向其他輸入聯盟鏈發送包含另一輸入聯盟鏈驗證未通過證明的、解鎖并終止該交易的請求.其他輸入聯盟鏈收到并驗證解鎖請求后,將資產標記為可再次使用(圖6 (c')).
上述跨鏈原子通信協議中,由于解鎖交易要包含其他輸入聯盟鏈驗證未通過證明,因此通常比常規交易大.在群簽名共識機制下,當超出門限值數目的聯盟鏈驗證結點在包含已提交交易的區塊上達成共識時,系統將為該交易生成群簽名,其大小與驗證結點數量無關,因此可以獲得較小的解鎖交易,有助于降低存儲成本并實現快速處理.
假設群C中實際有t個結點對交易TX進行了簽名,其中至少tA個結點來自子群CA,至少tB個結點來自子群CB,至少tD個結點來自子群CD,則式(21)成立.

因此有驗證方程式(22)成立.

由式(21)、(22)可以看出,不在群C中的結點無法參與或干擾上述驗證過程,非合作關系的偽造跨鏈通信路徑證明將無法得到驗證,系統忽略相應交易.若群C中參與簽名的結點數量少于t,有可能恢復分量gX(0),X ∈{A,B,D},但無法恢復分量f(0),從而無法獲得群私鑰并通過驗證;若群C中參與簽名的結點數量大于等于t,子群CX中參與驗證結點數量小于tX,可以恢復分量f(0),但無法恢復分量gX(0),仍無法獲得群私鑰并通過驗證.因此,基于特權子群的門限群簽名機制實現聯盟鏈間交易跨鏈共識和結點間動態自適應授權機制,在物聯網聯盟鏈結點身份具有確定性和可信性前提下,能夠獲得較高的系統安全性.
當前,成熟區塊鏈比特幣每秒完成7 筆交易,以太坊每秒完成15 筆交易[52].為對本文提出的基于可選信任?驗證門限共識的動態授權機制的性能進行對比測試,我們在7 臺服務器上構建了由300 個虛擬驗證結點組成的Ethereum 仿真測試環境.實驗平臺如下:CPU 為Xeon-E5,內存大小為64 GB,操作系統為Ubuntu-64bit.構造聯盟鏈CA,CB,CD,驗證結點數nAnBnD100,驗證結點總數n300,鏈內共識門限值記為tA,tB,tD,跨鏈共識門限值記為t.
4.2.1 時延測試
基于存在特權子群TDS 的共識過程主要包括結點密鑰生成、密鑰重構計算、共識簽名以及共識簽名驗證4 個部分.預先計算結點密鑰,無需計入網絡時延,實際的網絡時延主要受密鑰重構計算,共識簽名以及共識簽名驗證計算的影響.因此,基于存在特權子群TDS 的一次完整共識的實際網絡時延開銷計算方法為將這三者的時間開銷求和處理.此外,我們使用Python 設計了一個腳本,以產生具有隨機地址和足夠數量的交易,使用網絡仿真模塊NetEm 手動向網絡添加鏈路傳播延遲,用于模擬現實世界的交易發生頻率.
1)低價值交易共識時延

圖7 低價值交易共識時延Fig.7 Low-value transaction consensus delay
2)高價值交易共識時延
測試用例高價值交易為非跨鏈交易,采用混合共識方式:由交易所在聯盟鏈內驗證結點構成第一級共識列表,根據群簽名門限值t隨機生成來自群內各聯盟鏈驗證結點的第二級共識列表.系統以Δ10 ms為時間間隔構造交易TX,取第一級共識門限值tA(tB/tC)10,當第二級共識門限值t以10 為步長在區間 [80,200] 內取不同值,單次共識的交易數量τ1,20,30 時,單個高價值交易平均網絡時延隨門限值t變化情況如圖8 (a)所示.可以看出,單個高價值交易平均網絡時延隨著二次共識門限值的增大線性增加;單次共識的交易數量越多,單個交易的共識時延越大,因此對于處理實時性要求比較高的交易可通過減少單次共識交易數量的方法降低共識時延.將上述實驗中第一級共識門限值設置為tA(tB/tC)70 時,得到單個高價值交易平均網絡時延隨門限值t變化情況如圖8 (b)所示.可以看出,單個高價值交易平均網絡時延有所增加,且對單次共識的交易數量較少時影響較大.

圖8 高價值交易共識時延Fig.8 High-value transaction consensus delay
3)跨鏈交易共識時延

圖9 跨鏈交易共識時延Fig.9 Cross-chain transaction consensus delay
4.2.2 壓力測試
通過修改環境參數,對低價值、高價值、跨鏈三類交易在不同構造交易時間間隔 Δ、共識門限取值下進行壓力測試,也稱為系統共識吞吐量測試.
1)低價值交易壓力測試
單鏈環境下,nA(nB/nC)100,系統分別以Δ10 ms,Δ0 ms (本文將系統中存在足夠多待處理交易的情況看做 Δ0 ms) 為時間間隔構造交易TX,鏈內共識門限值取tA(tB/tC)10,tA(tB/tC)70,低價值交易共識吞吐量隨單次共識的交易數量τ變化情況如圖10 所示.可以看出,圖中4 種參數取值下交易吞吐量均隨著單次共識的交易數量τ的增加而增加.τ1,tA(tB/tC)70,Δ0 ms時,系統吞吐量僅為8 tps,略高于比特幣;τ1,tA(tB/tC)10,Δ0 ms 時,系統吞吐量達到37 tps,是比特幣吞吐量的約5 倍;τ30,tA(tB/tC)70,Δ0 ms 時,系統吞吐量達到241 tps,是比特幣吞吐量的約34 倍,是以太坊吞吐量的約16 倍;τ30,tA(tB/tC)10,Δ0 ms 時,系統吞吐量達到1 108 tps,是比特幣吞吐量的約158 倍,是以太坊吞吐量的約74 倍.

圖10 低價值交易壓力測試Fig.10 Low-value transaction pressure test
2)高價值交易壓力測試
測試用例高價值交易為非跨鏈交易,采用混合共識方式:由交易所在聯盟鏈內驗證結點構成第一級共識列表,根據群簽名門限值t隨機生成來自群內各聯盟鏈驗證結點的第二級共識列表.取第一級共識門限值tA(tB/tC)70,系統分別以 Δ10 ms,Δ0 ms為時間間隔構造交易TX,第二級共識門限值分別取t100,t200,高價值交易共識吞吐量隨單次共識的交易數量τ變化情況如圖11 所示.可以看出,圖中4 種參數取值下交易吞吐量均隨著單次共識的交易數量τ的增加而增加.t200,τ30,Δ0 ms時,系統吞吐量達到24 tps,略高于比特幣和以太坊的吞吐量;t100,τ30,Δ0 ms時,系統吞吐量達到69 tps,是比特幣吞吐量的約10 倍,是以太坊吞吐量的約5 倍.

圖11 高價值交易壓力測試Fig.11 High-value transaction pressure test
測試結果表明,跨鏈共識門限值t較小時,系統獲得較高吞吐量;t較大時,系統吞吐量對 Δ 值的變化呈現一定程度的魯棒性.
3)跨鏈交易壓力測試
nAnB100,驗證結點總數n200,系統以Δ10 ms,Δ0 ms為時間間隔構造僅聯盟鏈CA,CB結點參與的跨鏈交易TX,tA,tB分別取(25,25),(50,50),單次共識的交易數量取τ1,群共識門限值t以10 為步長在區間 [100,140] 內取不同值時,上述 Δ 和tA,tB的4 種取值下系統共識吞吐量隨群共識門限值t變化情況如圖12 (a)所示.可以看出,圖中4 種情況下交易吞吐量均隨群共識門限值t的增加而減少. Δ0 ms,tAtB25,t100時,系統吞吐量最高達到50 tps,是比特幣吞吐量的約7 倍,是以太坊吞吐量的約3 倍.

圖12 跨鏈交易壓力測試Fig.12 Cross-chain transaction pressure test
實驗結果表明,Δ 的取值對跨鏈交易吞吐量影響較大.這說明當前機器計算水平下執行密碼算法占交易總周轉時間比重較少,Δ 取較大值時,系統吞吐量顯著減少,且系統吞吐量對鏈內共識門限值的變化呈現一定的魯棒性.
聯盟鏈CA,CB,CD,群共識門限值取t200,鏈內共識門限值tA,tB,tD分別取(25,25,25),(50,50,50),(60,0,60),單次共識的交易數量取τ1,構造跨聯盟鏈CA,CB,CD交易TX的時間間隔 Δ 以2 ms 為步長在區間 [0,10] 內取不同值時,系統吞吐量隨 Δ 變化的情況如圖12 (b)所示.可以看出,設定的三種不同鏈內共識門限取值下,吞吐量均隨著 Δ 的增大而減小,特別是當 Δ10+,系統吞吐量顯著減少. Δ0 ms,t200,tAtBtD∈[25,50]時,系統吞吐量約為18 tps,略高于比特幣和以太坊吞吐量.實驗表明,群共識門限值取較大值t200時,鏈內共識門限值的變化對系統吞吐量呈現一定程度的魯棒性.
綜上,在測試環境下,本文方案處理低價值交易的系統吞吐量明顯高于比特幣、以太坊的吞吐量,可以滿足大部分物聯網輕量級、低價值交易的效率需求.相比處理低價值交易的系統吞吐量,處理高價值交易和跨鏈交易的系統吞吐量有所降低,但大大提升了系統安全性.此外,上述性能是在較強的安全約束條件下得到的,在實際物聯網應用環境中,通過設置合理的共識門限值、單次共識交易數量等參數,本文方案將可以獲得更好的性能.
本文通過對物聯網聯盟鏈鏈間交互場景進行分析,構建了復雜情況下物聯網聯盟鏈鏈間通信模型,從基于TCCM 的鏈間動態授權、可選信任?驗證門限共識、跨鏈原子通信三方面進行改進,給出一種新型的解決復雜跨聯盟鏈實體細粒度動態自主授權問題、由跨鏈操作的異步性帶來的交易阻塞和失效蔓延攻擊問題的通信機制.分析及實驗表明,本文提出的跨聯盟鏈動態通信機制能夠在不犧牲安全性和吞吐量的情況下,實現低價值交易的實時確認,同時保障跨鏈交易和高價值交易的安全性.