段田田 郭 儀 李 博 張瀚文 宋兆雄 李忠誠 張 珺 孫 毅
1(中國科學院計算技術研究所 北京 100190)
2(中國科學院大學 北京 101408)
3(內蒙古大學 內蒙古呼和浩特 010021)
(duantiantian@ict.ac.cn)
自比特幣提出以來,區塊鏈得到了學術界、工業界的極大關注,由于區塊鏈的去中心、可溯源等特性,被廣泛應用于數字貨幣、供應鏈金融、智慧醫療等不同領域,形成了多鏈、異構的區塊鏈生態系統[1].
盡管區塊鏈實現了區塊鏈網絡范圍內的價值流通,但是各獨立區塊鏈之間呈現明顯的孤島效應.隨著應用需求的不斷拓寬,各獨立區塊鏈相互聯通、協作以構建更廣泛價值互聯網的需求日益增強.如何融合同構、異構區塊鏈,突破去中心化應用邊界,構建更加開放、易于協作、多方共贏的區塊鏈生態,成為當今的迫切需求.因此,區塊鏈的互操作性,即跨鏈研究,自2016 年起得到了越來越多的關注[2].
跨鏈技術是跨越單一區塊鏈的數據可信邊界(共識機制作用范圍)實現獨立區塊鏈間信息、價值流通的技術.早期跨鏈研究通過在任意兩條有跨鏈需求的區塊鏈間建立連接實現直接的跨鏈交互[3-5].然而,區塊鏈連接建立過程繁瑣,需要完成區塊鏈的適配,包括數據結構匹配、區塊鏈驗證規則加載以及必要數據同步①例如,SPV 驗證需要區塊頭鏈.等工作,當彼此存在跨鏈交互需求的區塊鏈較多時,兩兩連接的方式導致每條區塊鏈的適配復雜度高(Ο(n)),該方案可擴展性較差.
因而,當前的跨鏈方案大多引入中繼鏈(Relay Chain)連接所有交互區塊鏈[6-8].存在跨鏈交互需求的區塊鏈僅需與中繼鏈進行適配、建立連接后,即可在中繼鏈的橋接下實現與其它區塊鏈的跨鏈交互,每條區塊鏈的適配復雜度降至常數級(O(1)),但中繼鏈的適配復雜度仍然維持在Ο(n).
隨著區塊鏈生態應用類型不斷豐富,跨鏈互通的規模不斷擴大,現有跨鏈方案面臨著挑戰,主要體現在2 個方面:
1)跨鏈架構的可擴展性
無論是公鏈技術體系還是聯盟鏈技術體系,異構區塊鏈數量都在快速增長,異構/同構區塊鏈間的互聯互通需求也隨之快速增長.在公鏈技術體系下,由于性能、可定制性、價值捕捉等原因,開發者越來越多地轉向構建獨立的應用鏈而不是在公共區塊鏈平臺上部署智能合約[9].Cosmos[6],Polkadot[7],zkSync[10]等多種平臺先后出現,用于幫助開發人員快速構建應用鏈,僅Cosmos 主網(2021 年啟動)就有49 條活躍應用鏈,測試網有247 條應用鏈[11].在聯盟鏈技術體系下,更是涌現出了Fabric、FiscoBicos、長安鏈、趣鏈等大量形態各異的區塊鏈技術平臺,基于這些異構區塊鏈技術平臺,面向金融、政務服務等不同領域的行業應用,構建了大量區塊鏈服務平臺[12].各區塊鏈在既有用戶和價值積累的基礎上,產生了與其它區塊鏈交互的外延需求,因此區塊鏈間互聯互通的需求也快速增長,給跨鏈解決方案的可擴展性帶來新的挑戰.
然而,現有跨鏈方案中,中繼鏈承載著所有跨鏈消息的路由、轉發和驗證等工作,隨著接入區塊鏈和跨鏈交易的增多,中繼鏈將會出現擁塞并成為跨鏈系統的性能瓶頸.盡管BitXHub[8]等方案將中繼鏈擴展成中繼鏈網絡以支持更多區塊鏈的接入,但這使得大量跨鏈交易需要經過多跳中繼鏈處理,導致跨鏈交互時延大幅度增加.
2)跨鏈需求的多樣性
一方面,不是所有區塊鏈間都存在相同強度的跨鏈需求,例如:醫院區塊鏈與康復養老區塊鏈之間存在頻繁的跨鏈交互,醫院區塊鏈卻與供應鏈金融的區塊鏈之間幾乎不存在跨鏈交互.而現有的“一通百通”的中繼鏈跨鏈方案②“一通百通”是指區塊鏈接入跨鏈系統后即可與該系統內所有區塊鏈進行跨鏈交互.難以滿足不同區塊鏈間的按需連通.
另一方面,現有跨鏈研究大多針對資產轉移、代幣互換等數字貨幣應用,然而區塊鏈在各領域的廣泛應用帶來了更多類型的跨鏈應用,同時這些跨鏈應用對跨鏈交互在性能、安全、隱私等方面提出了差異化的要求.例如,跨鏈代幣互換為了避免雙花問題更注重安全性;跨鏈醫療數據共享為了保護患者隱私更注重隱私性;跨鏈城市數據共享為了保證數據的實時性更注重性能.現有跨鏈架構與單一、僵化的跨鏈交互機制難以滿足不同區塊鏈以及不同跨鏈應用在隱私、安全、性能等方面的差異化跨鏈需求.
針對上述2 個挑戰,本文提出了一種按需可擴展的跨鏈架構——PieBridge,并在此基礎上提出了具有獨立事務層的4 層跨鏈交互協議棧,保證跨鏈架構可擴展的同時支持差異化的跨鏈交互.
具體而言,本文引入中繼域,基于“按需建域”的理念,將有交互需求的區塊鏈劃分在一個中繼域內,各中繼域基于域內中繼鏈實現域內區塊鏈的跨鏈互聯.通過域的劃分,一方面實現跨鏈系統負載的合理切分,保證跨鏈架構的可擴展性;另一方面滿足域內區塊鏈間的按需連通,以及對差異化跨鏈交互的支持.在按需建域的基礎上,針對單中繼域內跨鏈交易數量增加造成的中繼鏈擁塞問題,本文設計了中繼域按需擴容機制,通過域內中繼鏈復制與中繼鏈負載分流,將跨鏈交易約束在單一中繼鏈中進行處理,在實現中繼域通量提升的同時,避免跨鏈交互時延的增加.進一步,本文針對跨鏈交互需要解決的跨鏈信息傳輸、跨鏈信任傳遞與跨鏈事務處理3 個基本問題,提出了具有獨立事務層的4 層跨鏈交互協議棧.在跨鏈傳輸層、驗證層、事務層實現多種基礎協議,支持應用對各層協議的靈活選擇,滿足不同跨鏈應用在性能、安全、隱私等方面的差異化需求.該協議棧首次解耦了跨鏈事務與應用,抽象出獨立的跨鏈事務層,一方面簡化跨鏈應用的設計與開發,支持跨鏈應用的靈活、快速構建;另一方面為跨鏈事務提供系統級保障,包括跨鏈事務的原子性與事務間的隔離性,避免跨鏈應用在事務保障方面的設計、實現缺陷為所在跨鏈系統引入安全漏洞.
本文的主要貢獻包括3 個方面:
1)提出了一種按需可擴展的跨鏈架構——PieBridge.基于“按需建域”的理念,將需要跨鏈交互的區塊鏈按需組建成中繼域,通過域的管理與性能優化,保證跨鏈架構的可擴展性.
2)提出了一種具有獨立事務層的4 層跨鏈交互協議棧.在對跨鏈交互進行功能分層的基礎上,在各層實現多種基礎協議,支持應用在交互過程中對各層協議的靈活選擇,滿足不同跨鏈應用在隱私、安全、性能等方面的差異化需求.同時解耦跨鏈事務與應用,支持跨鏈應用簡易、靈活、快速構建的同時,實現系統級跨鏈事務保障.
3)基于所提跨鏈架構實現了PieBridge 原型系統,并通過理論分析與實驗驗證,證明了PieBridge 的可擴展性,以及其對差異化跨鏈交互需求的靈活支持.
跨鏈研究包括跨鏈架構和跨鏈交互機制2 個層面的工作,其中跨鏈交互機制是在跨鏈架構的基礎上實現跨鏈交互的具體方法.
現有跨鏈研究根據是否需要借助中繼鏈可以分為直連跨鏈架構與中繼跨鏈架構.
直連跨鏈架構的基本思想是有跨鏈需求的區塊鏈直接實現跨鏈交互.
BTC Relay[3]被認為是最早的跨鏈方案,其在以太坊上部署可以接收并處理比特幣區塊頭與交易的智能合約,并借助Relayer 在以太坊上實現基于最長鏈規則的比特幣輕客戶端,從而實現了比特幣與以太坊的單向跨鏈操作.
RSK[4]是錨定比特幣的一個開源智能合約平臺,其目標是將智能合約引入比特幣.其通過多家有較高社會聲譽的組織、公司組成的可信聯邦與參與聯合挖礦的比特幣礦工作為代理,實現與比特幣的雙向跨鏈操作.
BTC Relay 和RSK 這2 種方案是針對特定2 種區塊鏈跨鏈的方案,針對性強、可擴展性差,難以直接移植至其它區塊鏈跨鏈交互.
WeCross[13]面向區塊鏈互聯互通問題,旨在構建一套未來區塊鏈互聯基礎設施,雖然其支持多鏈跨鏈,但是本質上依舊是基于直連跨鏈架構的方案.WeCross 的核心組件是跨鏈路由,每條參與跨鏈交互的區塊鏈都有一個由部署該區塊鏈的機構搭建的跨鏈路由,區塊鏈強信任其跨鏈路由.WeCross 的交互區塊鏈通過跨鏈路由直接建立連接實現跨鏈交互.與BTC Relay 和RSK 這2 種方案相比,WeCross 面向更通用的區塊鏈跨鏈交互,并將適配復雜度由鏈上卸載至跨鏈路由,但是跨鏈路由間依舊需要進行(Ο(n))次適配,適配復雜度高.
基于中繼鏈的跨鏈方案,其基本思想是有跨鏈需求的區塊鏈借助其它區塊鏈作為中繼,通過一跳中繼鏈處理實現跨鏈交互.單個中繼鏈的處理能力有限,當存在大規??珂溞枨髸r,中繼鏈可以進一步擴展成中繼鏈網絡,有跨鏈需求的區塊鏈借助中繼鏈網絡,通過多跳中繼鏈處理實現跨鏈交互.
Cosmos[6]針對區塊鏈存在的擴展性、可用性以及獨立性問題,提出了構建區塊鏈互聯網的設想,為此設計了一種區塊鏈網絡架構,并提出了該架構下的跨鏈交互方案.Cosmos 的區塊鏈網絡架構分為分區和樞紐2 部分,獨立區塊鏈被稱作分區(Zone),連接分區的特殊分區被稱作樞紐(Hub),分區借助樞紐實現跨鏈交互,在大量分區存在交互需求時,這種架構可以減少區塊鏈之間的適配復雜度.然而由于Cosmos Hub 性能是有限的,其可連接Zone 的數量也是有限的,無法滿足大規??珂溄换鼍跋驴珂溂軜嬁蓴U展性的要求.
Polkadot[7]針對區塊鏈在可擴展性、可伸縮性、安全性等方面普遍存在的問題,設計了一種多鏈架構.Polkadot 由一或多條中繼鏈以及多條平行鏈(parachain)構成.其中,平行鏈負責具體業務的執行;中繼鏈負責與其直接連接的所有平行鏈的最終性共識.為了在保證安全性的前提下實現中繼鏈上復雜的操作,Polkadot 設計了4 種角色共同維護網絡:收集者、漁夫、提名者以及驗證者.與Cosmos 類似,由于Polkadot 需要在中繼鏈上實現所有平行鏈的全局共識,這使得Polkadot 的可擴展性極大地被中繼鏈性能所約束,目前理論上僅100 條平行鏈的接入.
跨鏈交互機制是在跨鏈架構的基礎上實現交互功能的具體方法.跨鏈交互機制研究需要解決跨鏈信息傳輸、跨鏈信任傳遞與跨鏈事務處理3 個層面的基本問題.
1)跨鏈信息傳輸是指將一個區塊鏈中的數據傳送到另一個區塊鏈.與傳統網絡信息傳輸不同的是,區塊鏈是一個封閉的去中心化系統,無法主動向其它外部用戶或者區塊鏈發送信息.
2)跨鏈信任傳遞是指目的區塊鏈接收跨鏈信息后確認該信息來自于源區塊鏈并已通過源區塊鏈共識.由于不同區塊鏈采用不同的共識算法,其信任傳遞(即跨鏈信息驗證)方式相應的也有所不同.
3)跨鏈事務是指為實現某個跨鏈交互邏輯而在2 個(或多個)交互區塊鏈內分別執行的一組鏈內交易(在不同鏈執行),跨鏈事務處理需要保證原子性,即組成跨鏈事務的鏈內交易對所有鏈上狀態的改變是原子的,所有涉及到的狀態要么全部改變,要么全部不改變.
現有跨鏈研究面向跨鏈應用,提供一套完整的、但各層關鍵技術緊耦合的跨鏈交互機制.哈希時間鎖協議(Hashed Timelock Contract,HTLC)是典型的針對跨鏈資產交換應用的跨鏈交互機制[14-18].具體地,HTLC 基于相同的哈希鎖保證各個組成跨鏈事務的鏈內交易可以一致執行,基于引入差異化的時間鎖,保證跨鏈操作最終一致回滾的同時,保證參與者有足夠的時間提交交易.在此過程中,HTLC 并沒有在區塊鏈間傳輸跨鏈信息,而是通過用戶在不同區塊鏈上釋放哈希鎖密鑰代替特定的跨鏈信息.同時HTLC也沒有直接實現跨鏈信任傳遞,而是根據預先設置的哈希鎖驗證哈希鎖密鑰的正確性,從而間接驗證特定跨鏈信息有效.HTLC 無法抵御審查攻擊[19-21]、洪泛攻擊[22]等,且僅適用于跨鏈資產交互應用,無法拓展至其他應用場景.
為了提供更通用的跨鏈交互功能,簡化跨鏈應用的設計與實現,Cosmos,Polkadot,BitXHub 等研究將跨鏈傳輸驗證與應用進行了解耦.
Cosmos 提出了區塊鏈間通信協議(the Inter-Blockchain Communication Protocol,IBC 協議)[23].IBC協議是一種端到端、面向連接、有狀態的協議,實現了獨立分布式賬本上模塊之間的可靠、有序和認證通信.IBC 協議具體由客戶端、連接、通道與中繼器組成.其中,客戶端負責驗證跨鏈交易;連接與通道維護了跨鏈信息傳輸的狀態,實現對端鏈與應用的認證以及傳輸有序性的支持;中繼器實現跨鏈信息的轉發.
Polkadot 設計了平行鏈間跨鏈信息傳輸(the Cross-Consensus Message Passing,XCMP)[24]協議,XCMP協議通過允許雙向通信的跨鏈消息傳遞通道在平行鏈間傳遞數據.由于XCMP 協議仍在設計實現階段,目前平行鏈通信使用資源開銷更大的、借助中繼鏈通過多跳傳輸實現的水平中繼路由信息傳輸(horizontal relay-routed message passing,HRMP).Polkadot 通過中繼鏈上的全局共識實現跨鏈信息驗證.
BitXHub[8]提出的鏈間消息傳輸協議(Inter-Blockchain Transfer Protocol,IBTP 協議)是一種類似TCP/IP 的鏈間傳輸協議,其通過引入轉發節點實現了記錄跨鏈信息的IBTP 數據包的傳輸,包括直接交互模式與中繼鏈轉發模式.BitXHub 通過鏈上簡單支付驗證(simplified payment verification,SPV)實現對跨鏈信息的驗證.
盡管Cosmos,Polkadot 和BitXHub 方案實現了最基本的傳輸驗證與應用分離的2 層結構,但是傳輸與驗證緊耦合,事務與應用緊耦合.在傳輸與驗證方面,上述方案無法滿足不同區塊鏈差異化跨鏈數據驗證的要求.在事務與應用方面,各跨鏈應用的設計、實現需要保證事務的基礎特性,設計、開發難度大且可能因為跨鏈應用在事務性基礎特性保障方面的設計、實現缺陷為所在跨鏈系統引入安全漏洞.
本文提出了一種按需可擴展的跨鏈架構——PieBridge,并在此基礎上提出了具有獨立事務層的4層跨鏈交互協議棧,在保證跨鏈架構的可擴展性的同時支持差異化的跨鏈交互,本節將介紹PieBridge.
本節首先介紹PieBridge 的整體設計思路,區分其與現有跨鏈架構;然后從中繼域全生命周期管理與跨鏈交互的基本流程2 個方面詳細介紹了Pie-Bridge 的設計.
本文引入中繼域,并基于“按需建域”的跨鏈架構設計理念,設計了如圖1 所示的按需可擴展跨鏈架構PieBridge.與現有“一通百通”的基于中繼鏈的跨鏈架構不同,“按需建域”考慮到區塊鏈之間差異化的跨鏈需求強度,僅將有共同跨鏈交互需求的區塊鏈連接在同一條中繼鏈上,形成一個個獨立的中繼域.各獨立中繼域在組建過程中可以根據跨鏈交互需求配置不同的規模、性能、安全等級的中繼鏈.通過“按需建域”,一方面將跨鏈交易隔離在中繼域內,實現跨鏈系統負載的合理切分,保證跨鏈架構的可擴展性;另一方面,可以在中繼域內按需配置中繼鏈,從架構層面支持差異化的跨鏈交互需求.

Fig.1 The architecture of PieBridge圖1 PieBridge 架構
在“按需建域”的基礎上,本文針對單中繼域內平行鏈數量增加、跨鏈交易比例升高等導致中繼鏈擁塞的問題,設計了中繼域動態擴容機制.具體地,在中繼域內復制一條新的中繼鏈,并將跨鏈交易均衡分流至不同中繼鏈進行處理.通過中繼域動態擴容,在保證實現中繼域處理能力提升的同時,避免多跳中繼鏈處理帶來的跨鏈交互時延增加問題.
進一步地,考慮到中繼域是隨跨鏈交互需求動態生成、更新的,本文秉持去中心化的理念,引入了一條專門區塊鏈對中繼域進行去中心化的管理.
本文設計的PieBridge 架構如圖1 所示,包括管理面與交互面2 部分.
PieBridge 管理面由管理鏈組成,實現對交互面去中心、去信任、公開透明的管理.管理鏈是為PieBridge 提供去中心管理服務的區塊鏈,其以智能合約的形式部署了具體的管理規則,通過管理決策下發機制可以將管理決策發送給交互面執行,具體實現方法將在2.2 節中繼域全生命周期管理中詳細介紹.此外,管理鏈還管理了一組用于構建中繼鏈與網關節點的節點.
PieBridge 交互面實現具體的跨鏈應用,其由平行鏈、中繼鏈、網關節點與按需組建的一系列中繼域組成.
1)平行鏈.平行鏈是存在跨鏈需求的獨立區塊鏈,其通過組建或者加入中繼域實現跨鏈交互.
2)中繼鏈.中繼鏈即按需組建的、在域內連接指定平行鏈的區塊鏈,其通過與域內平行鏈適配、建立連接,為它們提供去中心的中繼服務①為了應對域間不頻繁、非時間敏感的跨鏈交互需求,可以引入連接中繼鏈的二級中繼鏈,以實現域間交互..
3)網關節點.網關節點即在域內平行鏈與中繼鏈之間轉發跨鏈數據,支撐跨鏈信息傳輸的節點.網關節點既可以由平行鏈提供,又可以由跨鏈系統提供,甚至可以通過設置激勵機制引入,本文不討論這部分內容.
4)中繼域.中繼域是PieBridge 中進行跨鏈交互的基本單元,區塊鏈需要加入中繼域才能進行跨鏈交互.中繼域由有共同跨鏈交互需求的平行鏈、連接這些平行鏈的中繼鏈以及在區塊鏈之間轉發跨鏈信息的網關節點組成.域內平行鏈大多為相同行業領域的區塊鏈,而由于部分平行鏈可以應用于不同行業,與不同行業平行鏈存在跨鏈交互需求,例如供應鏈、保險等行業的跨鏈應用均需要引入銀行區塊鏈進行結算,因此平行鏈可以根據應用需求加入多個中繼域.
為了實現對中繼域按需生成、按需更新的支持,本文設計、實現了對中繼域的全生命周期管理,具體包括中繼域的組建、中繼域新增/刪除平行鏈、多粒度的跨鏈資源訪問控制與中繼域動態擴容.
域的組建可以分為3 個階段,首先是請求發起階段,各平行鏈代表向管理鏈提交建域請求,聲明要組建一個域,并提出期望的共識算法、出塊頻率等中繼鏈選型信息;隨后進入決策階段,管理鏈根據收到的建域請求生成中繼鏈創世區塊,實現了對中繼鏈的按需配置與域內網關節點的初始化授權,并選擇一組節點作為中繼鏈初始共識節點;最后進入決策執行階段,管理鏈基于網絡將決策信息分發給中繼鏈初始共識節點,這些節點驗證決策已在管理鏈中達成一致后,依據該決策啟動中繼鏈,基于已授權的網關節點完成平行鏈與中繼鏈的連接,實現域的構建.
域新增、刪除平行鏈與域組建類似,但是在決策執行階段管理鏈需要將決策信息分發給運行中的中繼鏈,該操作無法直接基于網絡傳輸實現.為此,Pie-Bridge 引入了中繼鏈治理者,由治理者以中繼鏈交易的形式實現決策分發.而為了避免引入信任與單點故障問題,PieBridge 進一步設計了基于分布式私鑰[25]的治理決策分發機制,由管理鏈共同擔任中繼鏈治理者,保證決策分發擁有與管理鏈相同的安全等級與去中心化程度.具體地,管理鏈基于分布式私鑰技術生成中繼鏈治理節點公鑰地址以及由管理鏈共識節點共同持有的分布式私鑰,當管理鏈處理平行鏈組加域、退域請求時,管理鏈共識節點根據管理鏈決策分別使用其持有的分布式私鑰簽署中繼鏈交易,當分布式私鑰簽名達到一定數量時該交易生效.
在多粒度的跨鏈資源訪問控制方面,PieBridge通過中繼鏈對平行鏈網關節點權限的控制,保證只有授權網關節點所在平行鏈的跨鏈信息能被轉發至中繼鏈,從而實現區塊鏈級別的資源訪問控制;在平行鏈上部署基于區塊鏈標識、跨鏈應用標識與用戶全局標識的資源訪問控制列表,并通過跨鏈請求與資源訪問控制列表的匹配,實現應用與用戶級別的資源訪問控制.
由于中繼鏈需要處理域內所有跨鏈交易,是中繼域的性能瓶頸,因此隨著接入平行鏈增多、跨鏈交易增多,中繼鏈將率先出現擁塞,并導致域內跨鏈交互高時延問題.為此,PieBridge 提出了如圖2 所示的動態擴容:管理鏈在域內復制一條與域內平行鏈連接的中繼鏈,將域內原本由單一中繼鏈處理的跨鏈交易分流至2 條中繼鏈上.該方案通過適度增加平行鏈上的存儲、計算開銷,可以有效緩解單中繼鏈擁塞問題,并保證域內跨鏈交易無需多跳中繼鏈處理,從而降低跨鏈系統平均跨鏈交易時延.
域的擴容同樣可以分為3 個階段:首先是請求發起階段,平行鏈代表向管理鏈提交擴容請求,聲明中繼域達到性能瓶頸;隨后進入決策階段,管理鏈依據該域中繼鏈生成新中繼鏈創世區塊、選擇一組節點作為新中繼鏈初始共識節點并生成跨鏈數據分流策略;最后進入決策執行階段,管理鏈基于網絡將創世區塊分發給新中繼鏈初始共識節點,由這些節點啟動新中繼鏈,基于網絡將分流策略分發給已授權的網關節點,網關節點加載分流策略,同時平行鏈適配新增中繼鏈,實現域的擴容.
PieBridge 中繼域內,平行鏈借助中繼鏈實現跨鏈交互,因此平行鏈與中繼鏈均需要部署跨鏈交互功能.跨鏈應用的具體功能需要基于跨鏈交互實現,例如,在資產類應用場景下,跨鏈轉賬應用通過資產區塊鏈A對資產區塊鏈B上用戶資產狀態的跨鏈更新實現;在醫療保險應用場景下,跨鏈核保應用通過保險區塊鏈對醫院區塊鏈患者醫療數據的跨鏈讀取實現.而由于跨鏈交互無法協調交互區塊鏈完成不存在的應用功能,因此交互區塊鏈均需要部署相應的應用,在上述跨鏈轉賬應用中,資產區塊鏈B需要本身支持對用戶資產狀態的管理.
本文抽象了PieBridge 中跨鏈交互的流程,具體如圖3 所示,包括跨鏈請求發起階段、跨鏈請求中繼階段、跨鏈請求處理階段以及跨鏈回執反饋階段.為了便于描述,本文將發起跨鏈交互的平行鏈稱為“源平行鏈”,接收并處理跨鏈請求的平行鏈稱為“目的平行鏈”,在上述例子跨鏈核保應用中,保險區塊鏈是源平行鏈,醫院區塊鏈是目的平行鏈.
1)跨鏈請求發起階段.用戶在源平行鏈上以交易的形式調用跨鏈應用合約并觸發跨鏈請求.源平行鏈跨鏈協議棧合約將該跨鏈請求打包成標準的跨鏈數據包.
2)跨鏈請求中繼階段.源網關節點通過監聽源平行鏈獲取跨鏈數據包,整理出證明數據包在源平行鏈中達成一致的證據,隨后將該跨鏈數據包與證據以交易的形式發送到中繼鏈中.中繼鏈跨鏈協議棧合約基于證據驗證跨鏈數據包在源平行鏈達成一致,并將驗證結果寫入鏈中實現背書.
3)跨鏈請求處理階段.目的網關節點通過監聽中繼鏈獲取跨鏈數據包與中繼鏈背書的證據,并將該數據包以交易的形發送到目的平行鏈中.目的平行鏈跨鏈協議棧合約解析跨鏈數據包,并通過驗證中繼鏈對跨鏈請求的背書間接驗證該跨鏈請求在源平行鏈上達成一致,隨后調用對應的應用合約,完成跨鏈請求響應.
4)跨鏈回執反饋階段.跨鏈請求處理回執以同樣逐跳傳輸、驗證的方式傳回源平行鏈.
復雜的跨鏈應用需要多次跨鏈交互實現,PieBridge跨鏈交互協議的具體設計與實現將在第3 節中詳細展開.
本節介紹具有獨立事務層的4 層跨鏈交互協議棧,首先概述了分層跨鏈交互協議棧的整體設計思路,隨后詳細介紹協議棧各層的內容.
針對跨鏈交互需要解決的跨鏈信息傳輸、跨鏈信任傳遞與跨鏈事務處理3 個層面的基本問題,本文通過抽象跨鏈元操作與跨鏈事務,首次將跨鏈事務與跨鏈應用解耦,提出了具有獨立事務層的4 層跨鏈交互協議棧,如圖4 所示.獨立事務層的抽象,一方面簡化了跨鏈應用的設計與開發,支持跨鏈應用的靈活、快速構建;另一方面為跨鏈應用的事務性安全提供了系統級保障,避免跨鏈應用在事務處理方面的設計、實現缺陷為所在跨鏈系統引入安全漏洞,有利于跨鏈應用生態系統的發展.在協議分層解耦的基礎上,本文在協議棧各層均實現了多種基礎協議,并采用適配器設計模式[26],為協議棧各層引入聚合器,設計通用層間接口,將層間多協議的復雜交互轉換為聚合器間的簡單交互,降低了多種協議的管理復雜度,保證了層內協議的靈活性,滿足不同跨鏈應用在性能、安全、隱私等方面的差異化需求.
4 層跨鏈交互協議棧具體包括跨鏈應用層、跨鏈事務層、跨鏈驗證層與跨鏈傳輸層.
1)跨鏈應用層.跨鏈應用層部署在平行鏈上,包括多種跨鏈應用,各跨鏈應用設計、實現需要跨鏈交互的應用功能.跨鏈應用需求將會被封裝成跨鏈事務,交由跨鏈事務層處理.
2)跨鏈事務層.跨鏈事務如圖5 所示,由在2 個(或多個)交互區塊鏈內分別執行的一組鏈內交易(在不同鏈執行)組成.跨鏈事務層部署在平行鏈,提供了獨立的事務協議,在保證跨鏈事務原子性的同時,保證跨鏈事務與跨鏈事務間、跨鏈事務與鏈內交易間的隔離性,即組成跨鏈事務的交易與組成其他跨鏈事務的交易及鏈內交易互不影響.
3)跨鏈驗證層.跨鏈驗證層解決跨鏈信任傳遞的問題,與跨鏈傳輸層一起支撐跨鏈事務處理.其部署在平行鏈、中繼鏈以及網關節點上,提供了多種區塊鏈驗證方法與對應的證據生成機制,實現了平行鏈與中繼鏈對基于跨鏈傳輸層所獲取的跨鏈數據的可信性驗證.
4)跨鏈傳輸層.跨鏈傳輸層解決跨鏈信息傳輸的問題,與跨鏈驗證層一起支撐跨鏈事務處理.其部署在平行鏈、中繼鏈以及網關節點上,提供了多種跨鏈傳輸協議,實現了跨鏈數據在交互區塊鏈間的傳輸.其中,由于區塊鏈無法主動向外部發送信息[18],各跨鏈傳輸協議均通過網關節點監聽平行鏈與中繼鏈獲取跨鏈信息、轉發跨鏈信息實現.
本文采用適配器設計模式,如圖4 所示,為協議棧各層引入聚合器,一方面實現層內協議管理,另一方面實現層間交互.在層內協議管理方面,本文通過協議注冊與協議地址映射表實現新協議的加載與協議的調用.在層間交互方面,本文設計了如表1 所示的各層控制信息.在跨鏈請求發送階段,上層聚合器將處理好的跨鏈數據以及控制信息發給下層聚合器,下層聚合器根據控制信息進行協議調度,數據經過層內協議處理后,聚合器再將本層數據打包,連同控制信息一并發給下層聚合器;在跨鏈請求處理階段,各層解析本層控制信息,并將本層控制信息外的其它數據發給上層聚合器.各層的數據包拆封與解封方式與傳統網絡協議棧類似,每層的數據都是由本層的數據包頭以及來自上層的數據包體組成,發送時層層封裝,接收時層層解封.

Table 1 Control Information of the Cross-Chain Interaction Protocol Stack表1 跨鏈交互協議??刂菩畔?/p>
1)跨鏈事務層
跨鏈事務層解耦應用與事務,為跨鏈事務提供多種事務協議保障其原子性與隔離性.
本文針對事務協議的共性需求,抽象出資源鎖服務、回滾日志服務、事務時鐘服務3 種基礎服務.
資源鎖服務是保證跨鏈事務隔離性的重要模塊.跨鏈事務隔離性本質上需要解決并行的多個跨鏈事務對同一公共資源的競爭問題.資源鎖服務通過在鏈上維護資源鎖映射表,記錄當前世界狀態下指定對象的操作權限.跨鏈事務在訪問區塊鏈資源前需要成功申請資源鎖,在跨鏈事務完成后需要釋放資源鎖.資源鎖具體包括讀鎖、共享寫鎖和獨占寫鎖.
回滾日志服務是保證跨鏈事務原子性的重要模塊.回滾日志服務通過預寫日志和回滾日志的方法實現事務處理失敗時所涉及的區塊鏈狀態的回滾.具體而言,跨鏈事務在執行前需要將回滾操作加載至回滾日志服務中,若事務處理失敗,則回滾日志服務會按照事務預先注冊的回滾策略進行事務回滾.
事務時鐘服務主要解決區塊鏈缺少統一時鐘帶來的事務協議可終止性問題.事務時鐘服務通過鏈上記錄事務有效時間與鏈下計時器監聽、觸發事務超時事件完成對跨鏈事務超時情況的監測.
基于上述3 種基礎服務,本文設計了3 種基本的事務協議,包括基礎事務協議(BTP)、自動事務協議(ATP)、多鏈事務協議(MTP).BTP 僅適用于有補償操作的跨鏈應用,且需應用顯示地給出事務處理失敗時的補償操作,其基于補償保證原子性,基于資源鎖服務保證隔離性.ATP 基于回滾日志服務保證原子性,基于資源鎖服務保證隔離性,適用范圍更廣.MTP 適用于多鏈事務,其原子性和隔離性保障方式與BTP 相同.
2)跨鏈驗證層
跨鏈驗證層提供多種跨鏈驗證方法保證跨鏈交互過程中跨鏈信息的可信性,即跨鏈信息是經過源鏈共識的且存在于源鏈主鏈中的數據.
本文實現了基于SPV 的跨鏈數據驗證方法與基于公證人的跨鏈數據驗證方法.基于SPV 的驗證方法通過區塊頭鏈的同步保證區塊頭的可信性;通過狀態樹驗證,保證指定狀態數據在有效區塊頭中.基于公證人的驗證方法通過可信公證人背書實現跨鏈數據的驗證.
跨鏈驗證層部署在平行鏈、中繼鏈以及網關節點上,其中平行鏈與中繼鏈實現具體的驗證方法;網關節點根據不同驗證協議生成不同的證據.
3)跨鏈傳輸層
跨鏈傳輸層實現鏈到鏈的信息傳輸.由于區塊鏈需要借助鏈下網關節點監聽轉發實現跨鏈信息傳輸,在此過程中需要解決如何在源鏈上發現并獲取待轉發的跨鏈信息這一基本問題.
為此,本文設計了跨鏈事件拋出與跨鏈數據隊列存儲2 種基礎服務.其中,跨鏈事件拋出服務是指利用大多數區塊鏈自有的事件機制,將封裝好的跨鏈數據包以事件形式拋出,以便網關節點監聽.跨鏈數據隊列存儲服務是指利用智能合約維護一個存儲跨鏈數據的隊列,新產生的跨鏈信息將存儲在隊列中等待傳輸,鏈下網關需要不斷查詢這個隊列來判斷是否有新的數據包到來.
在此基礎上,本文進一步設計了基礎跨鏈傳輸協議與可靠跨鏈傳輸協議.其中,基礎跨鏈傳輸協議僅實現跨鏈信息監聽、轉發.而可靠跨鏈傳輸協議為跨鏈數據包引入唯一的序號,實現重復跨鏈信息的過濾;基于源平行鏈、目的平行鏈上維護的下一筆跨鏈數據包發送序號、跨鏈數據包接受序號,實現跨鏈信息有序交付以及數據包丟失重傳.
本節從理論分析與實驗2 個角度對PieBridge 的可擴展性與差異化跨鏈交互進行了驗證.首先通過理論分析,對比中繼鏈網絡方案與PieBridge 在擴展性方面的優劣.接著,通過2 組實驗,對比了單中繼鏈方案與PieBridge 在可擴展性方面的優劣,并驗證了PieBridge 對差異化跨鏈交互的支持.
本文選取跨鏈交易的時延作為指標,由于所有跨鏈交易都需要經過源平行鏈、目的平行鏈處理,因此此處時延僅指跨鏈交易在中繼鏈中的時延.若跨鏈系統在時延可接受、波動較小的情況下可以接入更多區塊鏈,則表明該跨鏈系統擴展性良好;反之,若跨鏈系統為接入更多區塊鏈,造成了嚴重的阻塞,甚至是無限制排隊,導致時延很高,則跨鏈系統可擴展性不佳.
4.1.1 建模
首先,本文對于一條中繼鏈上跨鏈交易的到達和處理作出一些基本假設.假設交易的到達、處理是服從參數為 λ和μ的泊松過程,這種假設將每條中繼鏈的交易處理過程簡化為一個M/M/1模型[27].此處的λ和μ的單位并非區塊鏈中??剂康膖ps,而是以中繼鏈的區塊為單位計數的頻率,例如若中繼鏈從一條區塊鏈收到跨鏈交易的頻率是5 tps,中繼鏈處理交易的速度是100 tps,且區塊能打包500 筆交易,那么在本模型中對于中繼鏈而言,此時每秒鐘會從一條平行鏈收到 λ=個中繼鏈區塊,并處理 μ=個中繼鏈區塊,即
其中,TPS1是一條源平行鏈的交易處理速率,γ是其中的跨鏈交易比例,B是一個中繼鏈區塊所能容納的交易數目,TPS2是中繼鏈處理交易速率.
接下來,討論每種方案的理論時延.
1)中繼鏈網絡
記Wrelay為中繼鏈網絡下一筆跨鏈交易從被發送至中繼鏈到上鏈處理完畢的時延,表示為
因為中繼鏈隨機連接一組平行鏈,對于一筆跨鏈交易,其源平行鏈與目的平行鏈既可能連接同一條中繼鏈,又可能連接不同的中繼鏈,這2 種情況對應的概率分別記做p1和p2.W為經歷一次中繼鏈的時延,則當源中繼鏈、目的中繼鏈在同一中繼鏈群組時,跨鏈交易會經歷一次中繼鏈時延,源中繼鏈、目的中繼鏈分處于不同中繼鏈群組時,跨鏈交易經歷2 次中繼鏈時延.p1和p2的計算公式為:
k為中繼鏈網絡下中繼鏈群組的數目,它是下面方程的解.
其中k-1是指當前中繼鏈需要與所有其他中繼鏈互聯,n為整個網絡中需要提供服務的平行鏈數量,則為每個群組中隨機分配到的平行鏈數量,不得超過中繼鏈的極限接入能力mmax.θ是本文引入的參數,代表中繼鏈接入鏈數目占其極限數目的百分比,θ <1,記m=θ·mmax.根據前文抽象的排隊論M/M/1模型,每條中繼鏈的負載強度 ρ不得大于1,否則中繼鏈會發生阻塞,跨鏈交易無限制排隊下去,由此可得mmax:
需要注意的是,式(1)中的 μ表示中繼鏈處理交易的能力,但是在中繼鏈網絡下,除跨鏈交易外,每個源平行鏈區塊頭也需要被中繼鏈同步,這會降低中繼鏈的處理能力,我們假設平均q筆跨鏈交易會有1 個區塊頭需要同步,中繼鏈對跨鏈交易的實際處理能力 μ′為
由M/M/1模型可知,單一中繼鏈的時延W為
因此有
2)PieBridge
本文分別為PieBridge 不進行中繼域擴容的基礎方案與進行中繼域擴容的優化方案建模.
①基礎方案
在“按需建域”的PieBridge 中,一筆跨鏈交易的源平行鏈、目的平行鏈總是存在于同一中繼域中,因此有,
其中,m=θ·mmax.需要注意的是,PieBridge中繼域依據跨鏈需求生成,各中繼域內平行鏈數量不一致,本文建模對此進行了簡化.同時,由于各中繼域獨立,中繼鏈不需要互聯,因此每條中繼鏈所連接的所有區塊鏈都是需要服務的平行鏈,這將使得在全網區塊鏈數目一定的情況下,本文方案需要更少的中繼鏈群組建立更少的中繼鏈,才達到更低的時延.
②優化方案
在支持中繼域擴容的PieBridge 中,網關節點根據跨鏈交易分流策略,實現中繼鏈之間的負載均衡.假設每個中繼域有s條中繼鏈,此時整個中繼鏈的模型不再是單鏈模型M/M/1的組合,而是相當于一個多服務臺的M/M/s系統[27].
根據圖6,中繼鏈時延WPieBridge2可以表示為

Fig.6 The multi-server queuing model圖6 多服務臺排隊模型
式(4)中p0為中繼鏈空載概率,其計算公式為
其中 ρ代表整體中繼鏈負載強度,其計算公式為
式(4)中 ρs代表此時每條中繼鏈負載強度,其計算公式為
此處 μ′′為該方案下每條中繼鏈對跨鏈交易的實際處理能力,需要注意的是,此時即使一筆跨鏈交易沒有經由某條中繼鏈處理,但是其區塊頭仍然需要s條中繼鏈全部同步,即
mmax由ρs=1取得,m仍然滿足m=θ·mmax.值得注意的是,此時mmax擴展了倍.盡管支持中繼域擴容的PieBridge 方案中,由于域內中繼鏈均需要適配所有平行鏈,每條中繼鏈上的平行鏈數據同步開銷將隨著平行鏈的接入而不斷增加,因此mmax無法擴展為s倍.但是,仍然可以極大地提升跨鏈架構的可擴展性,且提升效果在跨鏈交易密集的情況下更好.
4.1.2 分析
本文根據對Cosmos 網絡中跨鏈交易比例的測量以及現有相關測量工作[28],進行了如表2 所示的配置,并討論了表2 配置下PieBridge 與Cosmos 的端到端跨鏈時延隨接入平行鏈數量變化的模擬實驗結果.

Table 2 Parameters When the Number of Connected Parachain Varies表2 接入平行鏈數量變化時的參數
對比如圖7 所示的3 種方案在不同接入區塊鏈數目下的延時變化情況.

Fig.7 Delay of transactions in the relay chain system when the number of connected parachain varies圖7 隨接入平行鏈數量變化的中繼鏈交易時延
1)中繼鏈網絡的時延始終高于PieBridge 的2 種方法,這是因為中繼鏈網絡下,跨鏈交易有很大的概率需要跨越中繼鏈群組,隨著區塊鏈和中繼鏈群組數目越多,跨鏈交易需要涉及其他群組的概率也就越大,因此其時延不斷增長.進一步地,因為中繼鏈既需要與一定數目接入區塊鏈相連,又需要負責連接數目越來越多的其他中繼鏈,當接入區塊鏈數目超過某一臨界值后,所有中繼鏈徹底擁塞,跨鏈交易開始無限制排隊,此時如圖7 中虛線所示,理論時延不是虛線對應的數值120 s,而是隨著無限排隊趨于無窮,因此中繼鏈網絡的可擴展性瓶頸可見一斑.
2)PieBridge 的2 種方法因為不涉及跨鏈交易跨中繼鏈群組傳播,因此時延顯著低于中繼鏈網絡方案,且因為中繼鏈不需要連接其他中繼鏈,系統不會因為中繼鏈群組、接入區塊鏈數目的增多而發生擁塞,展現了良好的可擴展性.
3)PieBridge 的優化方案展現出了極佳的性能,在每個中繼鏈群組只額外引入1 條區塊鏈的情況下,系統的時延由55 s 大幅度下降到了4.21 s,該時延已經接近中繼鏈本身的共識時延,基本可達到“跨鏈交易產生,即被中繼鏈處理”的效果.此外,如模型中討論,PieBridge 優化方案的區塊鏈可接入數量得到極大的提升,系統的可擴展性優異.
本文選取中繼鏈吞吐量(中繼鏈單位時間內處理交易的數目)作為指標,進行了性能實驗.通過增加接入中繼鏈的平行鏈數量,比較中繼鏈吞吐量,衡量跨鏈系統性能.若中繼鏈吞吐量趨于平穩,則表明中繼鏈已到達性能瓶頸,無法接入更多的平行鏈.
然后本文驗證了PieBridge 對差異化跨鏈交互的支持.根據供應鏈數據存證場景與跨城市公共服務場景對跨鏈交互在可擴展性與時效性上的不同需求,針對性地構建了不同類型的中繼域,并通過實驗比較2 個中繼域在性能方面的差異性,驗證了PieBridge對差異化跨鏈交互的支持.
考慮到實際跨鏈應用中的網絡問題,本文選擇部署在不同地區的云服務器進行實驗.服務器使用了2 個CPU,每個CPU 配置為2.10 GHz、20 核,服務器內存為256 GB.
4.2.1 性能試驗
本文將Cosmos 跨鏈系統與按需建域的PieBridge進行比較,通過比較相同實驗環境下Cosmos 與PieBridge 吞吐量隨接入平行鏈數量的變化,驗證PieBridge 在性能方面的可擴展性.
在實驗中,本文設置Cosmos 跨鏈系統和PieBridge跨鏈系統的中繼鏈配置相同,均采用4 個共識節點,分別部署在4 臺服務器上,中繼鏈每個區塊可容納的最大交易數量為5 000;同時使用了進程模擬平行鏈出塊過程,假設平行鏈出塊間隔時間為6 s,每個區塊中的跨鏈交易比例為10%,每當平行鏈有新的區塊產生,區塊內的跨鏈交易都會被逐個發送到中繼鏈.
實驗結果如圖8 所示.Cosmos 吞吐量首先隨接入平行鏈數量的增多持續增大,并在接入500 條平行鏈后趨于穩定,這意味著跨鏈系統到達性能瓶頸,無法接入更多的平行鏈、處理更多的跨鏈交易;而PieBridge由于將平行鏈接入了不同的中繼域,并且當中繼域到達性能瓶頸時會動態擴容,其吞吐量隨接入平行鏈數量的增多持續增大.由圖8 表明,PieBridge 可以通過域的擴容,按需提升跨鏈系統的吞吐量,保證跨鏈性能不隨跨鏈交互的增加而降低.

Fig.8 Throughput of cross-chain system when the number of connected parachain varies圖8 隨接入平行鏈數量變化的跨鏈系統吞吐量
4.2.2 差異化交互實驗
本文依據供應鏈數據存證場景與跨城市公共服務場景對跨鏈交互在可擴展性與時效性上的不同需求,構建2 個中繼域,并通過比較這2 個中繼域的吞吐量與跨鏈交互時延,驗證PieBridge 對差異化跨鏈交互的支持.
在該實驗中,供應鏈數據存證場景更加注重中繼域(Zone-1)的吞吐量,且需要保證存證數據完整可靠,中繼鏈配置了較大的區塊容量與權威證明(proof of authority,PoA)共識機制,跨鏈交互協議棧在驗證層配置了基于SPV 的跨鏈數據驗證方法,傳輸層配置了可靠傳輸協議;面向跨城市公共服務場景的中繼域(Zone-2)注重跨鏈交互的時效性,中繼鏈配置了較小的出塊間隔與tendermint 共識機制,跨鏈交互協議棧在驗證層配置了基于公證人的跨鏈數據驗證方法,傳輸層配置了基礎跨鏈傳輸協議.
實驗結果如圖9 所示,Zone-1 擁有更高的平均吞吐量,Zone-2 擁有更低的跨鏈交互時延.這是因為Zone-1 配置了較大的區塊容量,單區塊包含的交易數量增多;Zone-2 配置了較小的出塊間隔,且采用基于公證人的跨鏈數據驗證方法,縮短了交易等待時間與跨鏈數據驗證時間.該結果符合不同應用場景對跨鏈交互提出的需求,這意味著PieBridge 可以通過中繼鏈與跨鏈交互協議的配置實現差異化的跨鏈交互.

Fig.9 Diversity of cross-chain interactions圖9 差異性跨鏈交互
本文基于“按需建域”的理念提出了一種按需可擴展的跨鏈架構PieBridge,并在此基礎上提出了具有獨立事務層的4 層跨鏈交互協議棧,在保證跨鏈架構可擴展的同時支持差異化的跨鏈交互.本文實現了PieBridge 原型系統,并通過建模分析與實驗驗證了PieBridge 的可擴展性,以及其對差異化跨鏈交互需求的靈活支持.
未來,我們將在本文工作的基礎上,針對當前跨鏈交互性能低的問題,從2 個層面開展工作:
1)架構層面.針對中繼鏈上交易類型單一、交易分區明顯的特點,研究中繼鏈并行化方法,通過提升單中繼鏈性能,降低跨鏈交互時延.
2)交互協議層面.針對跨鏈事務處理機制在多主體、長流程的場景下低效率的問題,研究單事務并行執行技術與多事務并發執行技術,通過提升跨鏈事務處理效率,提升跨鏈交互性能.
作者貢獻聲明:段田田提出系統、實現系統并撰寫論文;郭儀實現系統、參與實驗;李博對系統進行理論分析;張瀚文、李忠誠、張珺、孫毅負責方案設計指導與論文修改;宋兆雄負責系統實現指導與論文修改.