孟博,王乙丙,趙璨,王德軍,麻斌豪
中南民族大學 計算機科學學院,武漢430074
區(qū)塊鏈是一種分布式賬本技術,其具備過程可信和去中心化兩大特性,能夠在多利益主體參與的場景下以低成本的方式構建信任,可以重塑社會信用體系。隨著區(qū)塊鏈技術的快速發(fā)展,區(qū)塊鏈技術應用日益廣泛,已經在金融、電子政務、車聯網、數字身份、版權保護等多個領域得到廣泛應用。目前,區(qū)塊鏈加速構建新一代的價值網絡和契約社會,其最大意義在于鏈接不同行業(yè),解決信任難題,實現數據和資產的可信流轉,進一步提高生產效率,從而激發(fā)經濟增長動力。
區(qū)塊鏈技術發(fā)展至今,經歷了以比特幣技術為代表的區(qū)塊鏈1.0 階段和以智能合約技術和聯盟鏈為代表的區(qū)塊鏈2.0 階段,目前區(qū)塊鏈進入了以各行業(yè)的區(qū)塊鏈應用融合為代表的區(qū)塊鏈3.0 階段。在區(qū)塊鏈1.0 階段中,區(qū)塊鏈技術圍繞數字資產的發(fā)行和交易進行架構設計,在金融領域初步應用。在區(qū)塊鏈2.0 階段中,隨著智能合約技術的發(fā)展,區(qū)塊鏈在金融領域得到更加廣泛的應用,也開始擴展使用到其他行業(yè)。而在區(qū)塊鏈3.0 階段中,隨著區(qū)塊鏈技術的逐漸成熟,區(qū)塊鏈開始應用到金融、經濟、科技和政務等領域,面臨更加復雜的業(yè)務需求,開始產生跨異構鏈進行數據、資產和功能的互聯互通需求,并向跨鏈應用發(fā)展。但是不同區(qū)塊鏈系統(tǒng)之間在互聯互通上的欠缺,極大限制和阻礙了區(qū)塊鏈技術的進一步發(fā)展與應用。
隨著跨鏈技術的發(fā)展,解決跨鏈難題的技術方案不斷涌現,在區(qū)塊鏈跨鏈領域中諸多學者對跨鏈技術進行整理總結,分析主流跨鏈技術的特點和挑戰(zhàn)。其中,李芳等人從跨鏈技術的原理與實現思路出發(fā),分析跨鏈技術的安全風險;徐卓嫣等人從跨鏈技術的主要挑戰(zhàn)出發(fā),對比主流跨鏈解決方案;路愛同等人從跨鏈技術難點出發(fā)對主流跨鏈技術進行分析。以上學者著重關注跨鏈技術,較少關注跨鏈協議。在區(qū)塊鏈跨鏈領域中,跨鏈技術提供了技術解決思路,而跨鏈協議則是具體的設計規(guī)范,設計實現跨鏈互操作的同時對安全性、可擴展性、隱私性等方面進行設計,為跨鏈應用提供解決方案。因此跨鏈協議是實現區(qū)塊鏈跨鏈互操作和構造跨鏈應用的關鍵和基礎。隨著區(qū)塊鏈跨鏈領域向著跨鏈應用方向不斷發(fā)展,有必要對跨鏈協議的最新研究成果進行全面的總結與分析。
隨著區(qū)塊鏈技術的蓬勃發(fā)展,從公有鏈到聯盟鏈,從數字貨幣到產業(yè)應用,區(qū)塊鏈應用領域不斷擴大,區(qū)塊鏈技術走向生產實踐,鏈與鏈之間的應用與數據的互聯互通需求成為區(qū)塊鏈發(fā)展道路上迫切需要解決的難題。2018 年,Vo 等人首次提出鏈聯網的概念,并設想鏈聯網未來的發(fā)展方向。鏈聯網(Internet of blockchains,IoB)指同構或異構區(qū)塊鏈之間形成一個互相通信的去中心化網絡,以促進價值、數據和狀態(tài)轉換的跨鏈交易。從技術角度看,鏈聯網的實現涉及跨鏈技術、智能合約、區(qū)塊鏈預言機等技術。從應用角度看,鏈聯網旨在實現不同鏈的價值、數據和功能互通,進而實現跨鏈應用,推動區(qū)塊鏈技術的進一步發(fā)展。從網絡空間安全角度看,鏈聯網涉及去中心化區(qū)塊鏈網絡中的數據可信驗證、數據隱私保密等核心安全性要求。
目前,已有公證人機制(notary scheme)、哈希鎖定(hash-locking)、側鏈(sidechain)、中繼(relay)和分布式私鑰控制(distributed private key control)這五種主流跨鏈技術,在不同程度上解決了跨鏈互操作問題,為實現跨鏈提供了技術方案。
公證人機制通過引入第三方來驗證交易信息是否一致、合法,無需對交易的細節(jié)進行驗證。其優(yōu)點是實現原理簡單且無需復雜工作量證明,缺點是有中心化風險。公證人機制主要包括三種類型:單簽公證人、多重簽名公證人、分布式簽名公證人。單簽公證人又稱中心化公證人機制,其通過單一的獨立節(jié)點或機構充當公證人角色。多重簽名公證人通過多個公證人進行簽名的方式提高公證人機制的安全性。分布式簽名公證人采用多方計算(multi-party computation,MPC)實現安全性。
哈希鎖定機制又稱為哈希時間鎖定協議(hashedtimelock agreements,HTLA),是一種基于原子交換的跨鏈機制,其通過資產鎖定并設置相應的時間和解鎖條件來實現資產交換,并實現原子性。優(yōu)點是安全性高,缺點是使用場景有限。哈希鎖定機制只支持資產或者信息交換,而不支持資產或者信息轉移。
側鏈又稱為錨定側鏈(pegged sidechains),是一種通過雙向掛鉤(two-way peg)實現在不同區(qū)塊鏈之間轉移資產或數據信息的跨鏈技術。其中,雙向掛鉤是側鏈機制實現的核心。側鏈的缺點在于網絡和資產的復雜度增加,新攻擊媒介的產生和中心化挖礦的風險。
中繼機制不完全依賴于可信第三方的驗證判斷,僅通過中間人收集不同鏈的數據狀態(tài)進行自我驗證。在中繼機制中,平行鏈通過遵守協議規(guī)范與中繼鏈連接,當平行鏈需要發(fā)起跨鏈操作時,平行鏈需要將跨鏈互操作的交易信息通過中繼鏈的驗證者審核后發(fā)布到中繼鏈上,由中繼鏈傳遞信息到目標平行鏈上實現跨鏈互操作。
側鏈機制和中繼機制的優(yōu)點在于擴展性、安全性有一定保證,且使用場景廣泛,而缺點是側鏈實現難度較大。側鏈機制和中繼機制的區(qū)別在于:中繼通過中間鏈的方式實現不同鏈之間數據狀態(tài)的驗證,而側鏈是通過雙向錨定實現性能拓展的解決方案。
分布式私鑰控制是使用分布式私鑰的生成與控制來實現將多種不同區(qū)塊鏈的數字資產映射到一條新的區(qū)塊鏈上,并在這條新的區(qū)塊鏈上實現不同鏈之間的數字資產交換。分布式私鑰控制技術基于分布式的密鑰分發(fā)機制,類似分布式簽名公證人,但其進一步避免中心化風險。分布式私鑰控制技術目前的使用場景有限,只應用于數字資產領域。
對主流跨鏈技術的分析與比較如表1 所示。從對比結果看:在安全性方面,目前主流跨鏈技術的安全性有待進一步加強;在應用場景方面,哈希鎖定的應用場景比較有限,僅僅支持實現資產的跨鏈交換??傊?,目前同一應用場景下可采用多種跨鏈技術,此時需要將跨鏈技術的原理與應用背景結合,選擇最合適的跨鏈技術去解決實際應用問題。
表1 跨鏈技術對比分析Table 1 Comparison and analysis between cross-chain technology
一般來說,互操作性指不同系統(tǒng)和組織機構之間協同工作的能力。在計算機科學領域,是指不同的計算機系統(tǒng)、網絡、操作系統(tǒng)和應用程序一起工作并共享信息的能力。Wegner指出互操作性是不同語言、接口和執(zhí)行平臺的軟件組件之間的合作能力。Vernadat認為企業(yè)系統(tǒng)之間的互操作性為衡量軟件、流程、系統(tǒng)、業(yè)務單元這些實體之間的互操作能力,關鍵是如何促進這些實體的溝通、合作和協調。區(qū)塊鏈互操作性主要是指不同區(qū)塊鏈之間通過跨鏈技術手段實現互聯互通。
關于區(qū)塊鏈互操作性,不同學者進行了總結歸納。Koens 等人概括將區(qū)塊鏈互操作性分為三類:第一類是區(qū)塊鏈系統(tǒng)與現存系統(tǒng)的互操作性;第二類是不同區(qū)塊鏈間的互操作性;第三類是單獨的區(qū)塊鏈上不同智能合約之間的互操作性。以上概括缺少對區(qū)塊鏈互操作性實際功能的關注。Buterin認為區(qū)域鏈互操作性是兩個區(qū)塊鏈之間通過引入第三方,并在不改變原生鏈的情況下進行跨鏈的資產轉移、支付或者信息交互的能力。Jin等提出區(qū)塊鏈互操作性是從一條區(qū)塊鏈到另一條區(qū)塊鏈的有效通信和直接信息交換的特性,同時保留了每個區(qū)塊鏈的本質,包括不可逆性和可追溯性。Abebe等將區(qū)塊鏈互操作性定義為不同分布式賬本之間的語義依賴,目的是傳輸或交換數據或價值,并保證有效性或可驗證性。對區(qū)塊鏈互操作性的觀點總結如表2所示。
表2 跨鏈互操作性概念對比Table 2 Concept comparison between cross-chain interoperability
根據對以上區(qū)塊鏈互操作性概念的分析和總結,認為區(qū)塊鏈互操作性,又稱跨鏈互操作性,主要表現為數據互通、價值互通與功能互通。數據互通關注不同區(qū)塊鏈之間的跨鏈數據訪問與跨鏈數據傳遞。價值互通關注不同區(qū)塊鏈之間的跨鏈資產互換與跨鏈資產轉移。功能互通旨在實現不同區(qū)塊鏈之間功能融合,如實現跨鏈調用智能合約。因此跨鏈協議主要包含跨鏈通信協議、跨鏈資產交易協議和跨鏈智能合約調用協議。跨鏈協議是實現鏈聯網和區(qū)塊鏈跨鏈互操作的關鍵和基礎。其中,跨鏈通信協議實現數據互通,跨鏈資產交易協議實現價值互通,跨鏈智能合約調用協議實現功能互通。區(qū)塊鏈互操作性如圖1。
圖1 區(qū)塊鏈互操作性Fig.1 Blockchain interoperability
跨鏈協議依托于跨鏈技術,通過定義一系列通信數據格式、協議規(guī)范、共識協議等,實現區(qū)塊鏈跨鏈互操作。Zamyatin 等人定義跨鏈通信協議的有效性、原子性和及時性等概念,介紹基于跨鏈通信協議實現跨鏈通信。Belchior 等人定義跨鏈通信協議為實現同構區(qū)塊鏈或異構區(qū)塊鏈間的通信交互,并達成跨鏈事務同步的過程。自基于哈希鎖定的原子交換技術應用于區(qū)塊鏈實現跨鏈數字資產交換后,學術界開始基于原子交換、側鏈、中繼等跨鏈技術設計跨鏈資產交換協議以實現跨鏈資產互換。Schulte等人指出為解決鏈上數字資產只能在原鏈上使用的局限性問題,需設計跨鏈資產轉移協議,從而建立在不同區(qū)塊鏈上轉移數字資產的方法。其中,跨鏈資產交換協議和跨鏈資產轉移協議兩者對象都是鏈上的數字資產,因此將兩者總結歸納為跨鏈資產交易協議。Nissl 等人提出跨鏈智能合約調用的概念,強調通過實現跨區(qū)塊鏈的智能合約調用,進而實現跨區(qū)塊鏈的互操作性,引出跨鏈智能合約調用協議。綜合上述研究,可將跨鏈協議總結為跨鏈通信協議、跨鏈資產交易協議和跨鏈智能合約調用協議三類。具體而言,跨鏈通信協議通過跨鏈數據通信實現數據互通,跨鏈資產交易協議通過跨鏈資產交易實現價值互通??珂溨悄芎霞s調用協議通過跨鏈智能合約調用實現功能互通。
跨鏈通信協議通過傳輸、讀取和驗證其他鏈或鏈外的狀態(tài)或事件,實現數據的傳遞與訪問。當前主要的跨鏈通信協議有IBC(interblockchain communication protocol)、MBCCP(multi-blockchain consociation and communication protocol)、XCMP(cross-chain message passing)和IBTP(interblockchain transfer protocol)。
IBC 協議由Goes 提出,應用于Cosmos 平臺,是一種端到端、面向連接、有狀態(tài)的協議,具備消息驗證、多路復用、超時處理等功能。IBC 協議實現基于中繼的跨鏈通信,由客戶端、連接、通道、中繼器組成??蛻舳素撠燆炞C跨鏈交易的輕客戶端,確保執(zhí)行交易的有效性和合法性。連接是基于輕客戶端建立握手連接,通過發(fā)送和接收特定數據包的形式判斷連接是否成功。通道基于應用層實現數據包傳輸,實現跨鏈交易的有序性,并確保數據包只發(fā)送一次,通過一個連接與多個通道匹配的方式來提供多路復用功能。中繼器負責在運行IBC 協議的多個分布式賬本系統(tǒng)之間傳遞數據。在安全性方面,應用共識算法的最終性(finality)來防止雙花。Tendermint和PBFT(practical Byzantine fault tolerance)類共識算法滿足Cosmos的最終性要求,而PoW(proof of work)、PoS(proof of stake)、DPoS(delegated proof of stake)類的概率共識算法提供概率最終性,需要應用層選擇安全閾值。
MBCCP 協議由She 等人提出,應用于跨鏈通道匹配模型。該協議原理如圖2 所示。MBCCP 協議通過在不同區(qū)塊鏈間創(chuàng)建對等節(jié)點匹配通道實現可信跨鏈信息傳輸,應用PM 共識機制實現參與鏈的節(jié)點管理和匹配問題。其跨鏈通信過程如下:首先由錨定中繼鏈錨定參與鏈的主節(jié)點并創(chuàng)建相應的映射節(jié)點,同步原鏈的相關信息并提交給order 節(jié)點。然后order 節(jié)點選取參與鏈上的節(jié)點,并將節(jié)點信息廣播給所有order 節(jié)點,當某個節(jié)點收取到(3+1)/4 個相同信息時達成共識并向其他所有節(jié)點廣播,從而將該共識信息記錄入區(qū)塊鏈。order 節(jié)點將選取的節(jié)點通過映射節(jié)點廣播給所有參與鏈上的節(jié)點。最后PM 共識機制完成,觸發(fā)智能合約創(chuàng)建對等節(jié)點匹配通道,并將通過PM 共識機制選取的節(jié)點加入到通道中,通過該通道完成跨鏈數據交換。
圖2 MBCCP 協議Fig.2 MBCCP protocol
XCMP 協議由Burdges 等人提出,應用于Polkadot 平臺,實現平行鏈之間的信息傳輸。XCMP允許雙向通信的消息傳遞通道在平行鏈間傳遞數據。XCMP 協議具備快速、有序性、可驗證性、一致性、可用性和安全性。在有序性方面,通過輸入/輸出驗證可確??珂溳敵龅南⒈3终_的順序。在可驗證性方面,應用中繼鏈狀態(tài)來驗證消息的來源與處理。中繼鏈狀態(tài)用平行鏈塊頭信息為平行鏈之間的區(qū)塊提供了時間同步,進而在中繼鏈中對發(fā)送的消息進行驗證。在一致性方面,即使發(fā)生了鏈重組,接收到的消息也不會改變。在可用性方面,通過可用于重構消息的糾刪碼實現。在安全性方面,應用中繼鏈實現共享安全性,另外基于SPREE(shared protected runtime execution enclaves)確保消息傳遞的正確性和可用性。
IBTP 協議由Wang 等人提出,應用于BitXHub平臺。IBTP 協議以中繼鏈作為跨鏈交易的合法性驗證和交易路由平臺,支持無狀態(tài)的跨鏈消息轉發(fā),應用跨鏈網關實現多層級的跨鏈消息路由,構建高可擴展的、兼容性良好的區(qū)塊鏈價值網絡。IBTP 協議通過數據包進行消息傳遞,規(guī)定了跨鏈消息的主要數據字段,旨在提供統(tǒng)一的跨鏈交易傳輸、路由和驗證格式,保證跨鏈交易的有序性和跨鏈數據的可信驗證,通過特殊序列化規(guī)則、DH(Diffie-Hellman)秘鑰協商、隱私交易三種方法保護數據隱私。
此外,Wu 等人提出一種公平且有效的周期性委員會輪換協議,結合公證人機制和中繼機制,提出中繼委員會機制,實現跨異構區(qū)塊鏈的數據訪問機制。Luo 等人基于三階段事務提交協議提出支持原子性和一致性的跨鏈通信協議,規(guī)定路由消息的格式與消息傳輸流程,并設計了執(zhí)行失敗時的回滾操作和重傳協議??挡┖热嗽贚uo 等人工作基礎上,提出適用于智能服務交易的跨鏈通信服務協議,在滿足三階段事務提交協議的基礎上支持原子性和一致性。
對典型跨鏈通信協議的跨鏈技術、可驗證性、安全性、隱私性、可擴展性、跨鏈類型和局限性對比分析如表3 所示。關于可驗證性,大部分跨鏈通信協議基于現有的公證人機制或默克爾證明的SPV(simplified payment verification)驗證機制實現數據驗證,在一定程度上確保數據的真實性。關于安全性,現有跨鏈通信協議通過設計基于三階段提交協議的分布式事務機制、基于交易日志的崩潰恢復機制、交易超時重傳機制等確保跨鏈交易的安全性,但是未考慮到數據通信過程中對數據安全性的保護,比如如何確保數據的保密性。關于隱私性,現有的大部分跨鏈通信協議未考慮到數據通信過程中的隱私性,缺少對用戶數據和交易數據的隱私保護。關于可擴展性,基于中繼的跨鏈通信協議盡管可擴展性較高,但是依然存在部分跨鏈通信協議實現跨異構鏈通信的難度較大。
表3 跨鏈通信協議對比分析Table 3 Comparison and analysis between cross-chain communication protocols
跨鏈資產互操作包含跨鏈資產轉移和跨鏈資產交換??珂溬Y產交換(cross-chain asset swap)又名原子交換(atomic swap),是具備原子性和一致性的跨鏈交易,本質上是資產在各自區(qū)塊鏈上的流動。如Alice 和Bob 在以太坊和比特幣上都有賬戶,Alice 想用20 個以太幣換取Bob 的1 個比特幣,Alice 需要先將自己賬戶的20 個以太幣轉賬給Bob 在以太坊上的賬戶,Bob 在收到付款后,將自己在比特幣賬戶上的1個比特幣轉給Alice 在比特幣上的賬戶??珂溬Y產轉移(cross-chain asset transfers)支持不同鏈之間的資產轉移且支持原子性和去中心化一致性,其本質上是資產在一個區(qū)塊鏈上的凍結(銷毀)和在另一個區(qū)塊鏈上的解凍(創(chuàng)建)。如Alice 與Bob 分別在比特幣和以太坊上擁有賬戶,Alice 想將自己的1 個比特幣轉移給Bob,Alice 需要先將她的比特幣轉移到一個特殊的地址進行凍結,然后在以太坊中發(fā)行(或解凍)20 個以太幣給Bob 的賬戶(假設以太坊和比特幣之間的匯率為20)。Herlihy 等人將跨鏈資產交換和跨鏈資產轉移共同構成的跨鏈資產互操作總結為一種計算抽象,其反映標準商業(yè)實踐活動中的商業(yè)互動,執(zhí)行復雜的分布式狀態(tài)變化??珂溬Y產交換協議和跨鏈資產轉移協議兩者都具備原子性和一致性,其區(qū)別在于單次資產操作的方向性不同,跨鏈資產交換的單次操作具備雙向性,即資產能從每一方轉移到另一方,而跨鏈資產轉移的單次操作具備單向性,即資產只能從一方轉移到另一方。
跨鏈資產交換分為中心化的和去中心化的跨鏈資產交換。中心化的跨鏈資產交換有Coinbase、Binance 等,交易費用較高,交易活動缺乏公開的可核查性,容易導致虛假交易量和受到黑客的攻擊。去中心化的跨鏈資產交換支持不同類型的數字資產的交換。目前去中心化的跨鏈資產交換是跨鏈資產交換協議的主流研究方向?;诠fi定技術、側鏈機制、中繼機制等主流跨鏈技術,出現了XCLAIM、NCASP(novel hash-time-lock-contract based cross-chain token swap mechanism)、ACWN(atomic cross chain commitment witness network)、3PP(three-phase protocol)、Relay Swap等實現去中心化跨鏈資產交換的跨鏈資產交換協議。
XCLAIM 協議由Zamyatin 等人提出,通過發(fā)行資產代幣的方式在現有區(qū)塊鏈上實現跨鏈資產交易。XCLAIM 協議由支持區(qū)塊鏈、發(fā)行區(qū)塊鏈、保險庫和智能合約組成。其中,支持區(qū)塊鏈是現有區(qū)塊鏈,比如比特幣等。發(fā)行區(qū)塊鏈是基于支持區(qū)塊鏈發(fā)行資產代幣的區(qū)塊鏈,比如以太坊等。保險庫是一個不可信的第三方中介,負責完成資產的鎖定與贖回。智能合約負責對資產進行鎖定和釋放操作的驗證。XCLAIM 協議流程如圖3 所示。XCLAIM 協議由發(fā)布階段、轉移/交換階段和贖回三個階段組成。在發(fā)布階段中,用戶將發(fā)行區(qū)塊鏈上的資產與保險庫鎖定,然后基于智能合約驗證鎖定并在發(fā)行區(qū)塊鏈上發(fā)布資產代幣。在轉移/交換階段中,發(fā)送方和接收方在發(fā)行區(qū)塊鏈上基于智能合約實現資產鎖定,進而實現具備原子性的資產代幣的轉移與交換。在贖回階段中,用戶用支持區(qū)塊鏈上的資產代幣贖回發(fā)行區(qū)塊鏈上對應的資產。
圖3 XCLAIM 協議Fig.3 XCLAIM protocol
NCASP 協議由劉峰等人提出,基于中間賬戶進行資產托管和轉移的方式改進哈希時間鎖,使得在原有跨鏈交易速率不變的同時,保證了交易的安全性。引入賬戶體系并融合智能合約技術,實現了在以太坊和Fabric 聯盟鏈網絡之間的安全無縫資產交換,無需第三方區(qū)塊鏈介入即可實現高效安全的跨鏈資產交換,保證跨鏈資產交換的原子性、公平性和透明性。
ACWN由Zakhary 等人提出,基于去中心化的公證人網絡,通過側鏈上的智能合約對跨鏈資產交換的交易狀態(tài)進行控制,實現去中心化原子跨鏈交換,確保實現原子交換的原子性和最終承諾性。公證人網絡本質上相當于已有區(qū)塊鏈的側鏈。ACWN本質上依然采用了原子交換技術,因此也存在和原子交換技術一樣的通信通道攻擊問題,另外由于公證人網絡側鏈,提高了協議的復雜性,降低了性能。
3PP 協議由Shadab 等人提出,支持通用多方跨鏈資產交易。3PP 協議用端到端屬性確保協議的一致性,實現發(fā)送方轉移資金的同時接收方接收資金。3PP 協議支持多方跨鏈資產交易的轉換,將原始的多方跨鏈交易轉換為雙方跨鏈交易,利用哈希鎖定機制在雙方之間發(fā)起資產交換。
Relay Swap 協議由Lys 等人提出,基于區(qū)塊鏈適配器提出中繼交換思路,實現去中心化原子跨鏈,移除ACWN 方法中使用的公證人網絡側鏈,進一步改進基于哈希鎖定機制的原子交換技術。
此外,Tian 等人實現一種去中心化的資產交易協議,實現不同類型資產之間的交換,并基于智能合約實現多對用戶并行處理跨鏈資產互換的方式,提高了跨鏈資產交換的性能。張詩童等人提出一種多方跨鏈協議,基于哈希鎖定實現多方多鏈資產轉移結算,但缺乏對資產互換過程中安全性的關注。Cao 等人基于零知識證明和哈希鎖定技術提出一種資產互換匿名方案,實現交易雙方之間匿名交換智能合約地址,實現對跨鏈資產交易過程中雙方交易隱私的保護。
對以上跨鏈資產交換協議從跨鏈技術、安全性、原子性、隱私性、可擴展性、跨鏈類型及局限性進行對比分析,見表4。
表4 跨鏈資產互換協議對比分析Table 4 Comparison and analysis between cross-chain asset swap protocols
跨鏈資產轉移協議主要有DeXTT(deterministic cross-blockchain token transfers)協議、ILP(Interledger protocol)協議、Zendoo 協議、SuSy 協議、AUGP(atomic unidirectional gateway protocol)協議等。
DeXTT協議由Borkowski 等人提出,通過claim-first transactions 和deterministic witnesses 確保了資產余額的最終確定性。首先,發(fā)送者將資產轉移信息提供給接受者,資產轉移信息包括發(fā)送方、接收方、發(fā)送數量和有效期等。然后,接受者給一個區(qū)塊鏈發(fā)起Claim 交易,記錄資產轉移信息。當公證人候選者們觀察到Claim 交易發(fā)起后,向所有區(qū)塊鏈發(fā)起無序的Contest交易。Contest交易向所有區(qū)塊鏈廣播經過公證人候選者簽名后的資產轉移信息,于是每條區(qū)塊鏈中將保存所有公證人競爭者的名單和資產轉移信息。當有效期結束后,接受者發(fā)起Finalize交易,最后完成轉賬交易,并確定性地將獎勵分配給在Contest交易中獲勝的公證人。
ILP 協議,又名Interledger 協議,由Ripple 公司提出,類似HTTP 協議。Interledger 協議中資產轉移是從發(fā)送方到接收方的一系列托管傳輸,利用連接者(connector)連接跨鏈交易的發(fā)送者和接收者,在最終接受者收到資金前,協議對各方的資金進行托管鎖定。該協議包括原子模式和通用模式這兩種模式。在原子模式下,轉賬由參與者選擇的一個特別公證人小組進行協調。在通用模式下,沒有外部協調,而是通過有限的執(zhí)行窗口、參與者激勵和“反向”執(zhí)行順序使得各方之間能夠安全支付,而無需共享對任何系統(tǒng)或機構的信任。
Zendoo 協議由Garoffolo 等人提出,基于側鏈和zk-SNARK 零知識協議來構造去中心化和可驗證的跨鏈資產轉移協議,實現資產在主鏈和側鏈之間的雙向轉移操作。Zendoo 的跨鏈轉移協議將主鏈與從主鏈派生的所有側鏈連接起來,允許將貨幣發(fā)送到側鏈并以安全可靠的方式接收它們,且是一個雙向協議,定義了正向轉移(forward transfer,FT)和反向轉移(backward transfer,BT)兩個基本操作。zk-SNARK 允許在不泄露某些信息的情況下證明擁有這些信息,Zendoo 中基于zk-SNARK 為主鏈實現有效轉移驗證。
SuSy 協議由Pupyshev 等人提出,基于Gravity協議和智能合約實現異構跨鏈資產轉移。其中,Gravity 協議是一種去中心化預言機協議,用于搭建去中心化的預言機系統(tǒng)。SuSy 協議在源鏈和目標鏈上部署智能合約,與資產轉移的發(fā)送者和接收者交互,并基于Gravity 協議的預言機網絡在源鏈和目標鏈中建立中繼,實現對資產轉移的驗證。SuSy 協議的跨鏈資產轉移高度依賴預言機網絡的安全性,若預言機網絡遭受嚴重攻擊,則SuSy 協議的安全性將無法保障。
此外,Hardjono 提出AUGP 協議,基于區(qū)塊鏈網關建立安全的通信通道實現具備原子性和一致性的單向跨鏈資產轉移。其中,區(qū)塊鏈網關指區(qū)塊鏈中的一個節(jié)點,擁有對區(qū)塊鏈賬本的數據讀寫權限,可能參與區(qū)塊鏈的共識機制,在跨鏈過程中定義跨鏈通信格式,實現跨鏈資產轉移后的賬本一致性。該協議基于網關標識公鑰私鑰對的身份密鑰機制,在跨鏈資產轉移過程中實現對網關身份的驗證。另外,該協議基于網關對區(qū)塊鏈賬本的數據讀寫權限實現對跨鏈資產轉移過程中的資產驗證和狀態(tài)驗證。Sigwart 等人提出Sigwart 協議,定義用于實現去中心化、安全的異構跨鏈資產轉移協議的協議規(guī)范。該協議基于智能合約技術實現資產轉移聲明,并通過激勵機制實現資產轉移的最終確認。Pillai 等人提出Burn-to-Claim 協議,實現去中心化的跨鏈資產轉移。該協議基于哈希鎖和時間鎖對資產轉移條件進行驗證,從而確保資產的安全性,提出跨鏈資產轉移交易應由exit 交易和entry 交易組成。其中,exit交易在源鏈中鎖定資產,并在源鏈中充當資產轉移證明,entry 交易負責在目標鏈上驗證轉移證明的有效性,以便在目標鏈中重新創(chuàng)建資產。
對以上跨鏈資產轉移協議從跨鏈技術、安全性、原子性、隱私性、可擴展性、跨鏈類型及局限性這些方面進行對比分析,具體結果見表5。
表5 跨鏈資產轉移協議對比分析Table 5 Comparison and analysis between cross-chain asset transfer protocols
跨鏈智能合約(cross-chain contracts)主要目的是對原鏈交易進行確認和交易,與跨鏈資產轉移非常類似。此外,跨鏈智能合約還支持跨區(qū)塊鏈調用智能合約。借助跨鏈智能合約,能實現區(qū)塊鏈資產留置。資產留置是一種區(qū)塊鏈鎖定資產的能力,鎖定鏈上的資產,并使鎖定條件取決于鏈上的活動。在跨鏈智能合約調用過程中,解決異構區(qū)塊鏈智能合約接口不一致問題,統(tǒng)一智能合約的運行時環(huán)境和編程語言是實現跨鏈智能合約調用的兩大難點。目前,為實現跨鏈智能合約調用,學術界相繼提出Move協議、UIP(universal inter-blockchain protocol)、SCIP(smart contract invocation protocol)、GPACT(general purpose atomic crosschain transactions)等跨鏈智能合約調用協議。
Markus 等人首先引入跨鏈智能合約的概念,提出跨鏈智能合約調用框架,實現了數據的跨鏈傳輸并允許智能合約跨鏈調用。跨鏈智能合約調用框架原理如圖4 所示。跨鏈智能合約調用框架由調用者、被調用者、中間人、驗證者、分發(fā)合約、調用合約六部分組成。其中,調用者是指在源鏈上的調用實體,被調用者是指在目標鏈上被調用的賬戶,中間人是指在源鏈和目標鏈之間傳遞信息的第三方。跨鏈智能合約調用框架中實現了分發(fā)合約和調用合約。分發(fā)合約負責注冊跨鏈智能合約調用,保存跨鏈相關參數,存放代幣以支付交易數據和獎勵。調用合約負責轉發(fā)交易,進而調用執(zhí)行智能合約,并將執(zhí)行結果返回。驗證者用來驗證中間人傳遞的信息。
圖4 跨鏈智能合約調用框架Fig.4 Framework for cross-chain smart contract invocations
Move 協議由Fynn 等人提出,能夠將對象和智能合約從源區(qū)塊鏈移動到目標區(qū)塊鏈上。Move協議實現Hyperledger Burrow 和以太坊之間的鏈間通信,實現了不同區(qū)塊鏈之間數據和資產的轉移。Move協議將智能合約的移動操作分為Move1 和Move2 兩個事務。在Move1 事務中,智能合約的狀態(tài)(數據或資產)在源鏈中被鎖定,然后不會再被修改,但是事務依然可以讀取被鎖定的智能合約中的內容。另外用L存儲智能合約要轉移去的目標鏈。在Move2事務中,客戶端2 實現驗證目標鏈的正確性、驗證區(qū)塊鏈的默克爾根和驗證是否被鎖定三大證明功能。在客戶端2 通過上述三大證明之后,由Move2 事務在目標鏈上重新創(chuàng)建智能合約的狀態(tài)。
UIP 協議由Liu 等人提出,應用于HyperService平臺。UIP 協議是一種區(qū)塊鏈通用的互操作性協議,定義了跨鏈操作中各方實體要執(zhí)行的動作,采用網絡狀態(tài)區(qū)塊鏈(network status blockchain,NSB)和保險智能合約(insurance smart contract,ISC)兩大創(chuàng)新設計。NSB 是HyperService 設計的區(qū)塊鏈,其提供對DApp 執(zhí)行狀態(tài)的客觀和統(tǒng)一的視圖。NSB 實現行動證明(proofs of actions,PoAs),支持DApp客戶端和VESes 通過構建證明的方式來證明它們參與的跨鏈行為。ISC 是運行在NSB 上的智能合約,負責保證跨鏈操作正確執(zhí)行,以NSB 構建的事務狀態(tài)證明作為輸入,從而判斷DApp 執(zhí)行的正確性與非法性,同時使用上述的行動證明來確定異常情況下的責任方。
SCIP 協議由Falazi 等人提出,基于網關的方式為異構區(qū)塊鏈提供一個同構接口,統(tǒng)一不同區(qū)塊鏈智能合約的交互。SCIP 網關結構分為SCIP 端口、區(qū)塊鏈訪問核心層、適配器模塊三部分。SCIP 端口實現了一個JSON-RPC 服務器提供調用、訂閱、取消訂閱、查詢這四種方法,允許智能合約客戶端調用和監(jiān)視異構區(qū)塊鏈系統(tǒng)的智能合約,從而實現智能合約交互。區(qū)塊鏈訪問核心層提供了處理請求和發(fā)送回調的邏輯。適配器模塊是可插拔的適配器模塊,由一個特定區(qū)塊鏈的協議客戶端執(zhí)行特定于某個區(qū)塊鏈的操作,比如如何處理調用智能合約,如何編碼/解碼參數,如何監(jiān)控和查詢事件等。
GPACT 協議由Robinson 等人提出,基于BLS閾值簽名(BLS threshold signatures)、協調合約(coordination contracts)、動態(tài)代碼分析和簽名嵌套事務、合約鎖定的原子跨鏈交易技術實現跨鏈智能合約調用,在區(qū)塊鏈間的應用層和合約層提供具備原子性和一致性的跨鏈合約調用功能。其中,原子跨鏈交易技術是區(qū)塊鏈layer1 技術,需要更改以太網客戶端軟件,不適用于以太網客戶端軟件無法修改的應用。上述研究只針對以太坊平臺,如何將上述研究提出的原子跨鏈技術和GPACT 協議用于非以太網區(qū)塊鏈系統(tǒng),進而實現異構區(qū)塊鏈跨鏈是一項重大挑戰(zhàn)。
目前在跨鏈智能合約方面的研究主要關注跨鏈智能合約調用的實現,對以上跨鏈智能合約調用協議從安全性、隱私性、可擴展性、原子性、跨鏈類型和局限性這些方面進行對比分析,見表6。
表6 跨鏈智能合約調用協議對比分析Table 6 Comparison and analysis between cross-chain smart contract call protocols
綜前所述,跨鏈協議主要包含跨鏈通信協議、跨鏈資產交易協議和跨鏈智能合約調用協議。三者共同構成區(qū)塊鏈跨鏈互操作領域的協議規(guī)范。通過對跨鏈協議的設計原則,即可擴展性、安全性和隱私性進行詳細闡述,進一步明確跨鏈協議的技術要求與設計規(guī)范。
在跨鏈互操作過程中,跨鏈協議的安全性是一個值得關注的問題。跨鏈協議中需要對涉及到的數據對象、資產對象進行保護,確保在跨鏈過程中安全、可靠、可信地實現數據或資產的鏈間轉移或鏈間互換。為設計安全性高的跨鏈協議,需要滿足以下設計原則:
(1)資產保護機制。資產保護機制重點關注跨鏈資產轉移和跨鏈資產互換過程中對資產的保護,比如對雙花攻擊(double-spend attack)、競爭條件攻擊(race condition attack)、跨鏈重放攻擊(cross-chain replay attacks)等安全問題的處理。在跨鏈資產轉移中的資產安全問題關鍵在于如何防止偽造資產轉移并且資產轉移只能發(fā)生一次。另外在跨鏈資產互換中的資產安全問題關鍵在于某條鏈發(fā)生重構的情況下,是否能夠依然保持兩條鏈的資產總量不變。Pang通過改進PoS(proof of stack)共識提出MPoS(multi-token proof of stake)共識,用于中繼跨鏈中的資產安全性。Hardjono 等人為實現安全的資產交換,基于現有的公鑰證書體系提出一種面向虛擬資產和虛擬資產服務提供商的公鑰管理方案,實現密鑰的安全交換和個人隱私信息的保護。
(2)超時處理機制??珂渽f議在執(zhí)行跨鏈交易時,在遇到超時的交易時應當進行適當的處理,從而避免交易失敗影響跨鏈協議的后續(xù)過程。因此,跨鏈協議應設置超時處理機制,當所進行的跨鏈交易中的操作未在限定時間內響應時,應視為操作失敗,回滾已經執(zhí)行的操作,將交易狀態(tài)恢復到之前的狀態(tài)中。
(3)可信性。在跨鏈場景中,各自獨立的區(qū)塊鏈網絡需要相互獲取對方鏈上的數據,由于它們并沒有參與對方區(qū)塊鏈的共識流程,如何保證獲得的數據可信是一個技術難度。因此需要引入額外的可信證明對跨鏈交易的合法性和有效性進行驗證,從而實現跨鏈協議的可信性。目前公證人機制、SPV 驗證是常用的跨鏈交易驗證方式。
(4)可審計性。跨鏈協議中的跨鏈交易中有著不同的跨鏈行為,其在跨鏈過程中會對數據信息、資產信息進行修改。而惡意的跨鏈行為會造成數據、資產的損失,因此跨鏈協議需要提供對跨鏈行為的記錄,從而實現跨鏈行為的可審計、可追溯。Belchior 等人設計了具備原子性、一致性、可持久性和隔離性的區(qū)塊鏈互操作性中間件,用于兩方跨鏈資產交易,提供可審計日志功能。雷志偉等人提出基于雙鏈并行模式實現監(jiān)管鏈,從而實現跨鏈的可審計性。
(5)崩潰恢復機制。在區(qū)塊鏈跨鏈互操作過程中,網絡的可用性會影響跨鏈成功與否,因此當遇到網絡崩潰時跨鏈協議應有崩潰恢復機制對崩潰的狀態(tài)進行修復。
(6)數據一致性。在區(qū)塊鏈跨鏈互操作過程中,數據一致性指在跨鏈協議執(zhí)行跨鏈交易時如何保證不同區(qū)塊鏈上的數據能夠達成一致??珂渽f議為保證跨鏈交易中各自鏈上交易執(zhí)行后的數據一致性,需要對事務進行管理,比如跨鏈資產交易協議中讓所有參與交易的區(qū)塊鏈對資產的操作同時成功或者同時失敗。在跨鏈協議的設計過程中,借鑒傳統(tǒng)分布式事務提出的兩階段提交協議(two phase commit,2PC)和三階段提交協議(three phase commit,3PC),這兩種分布式一致性算法對跨鏈協議的數據一致性機制進行設計,實現分布式事務,以確保不同鏈上的數據正確被修改并被記錄入區(qū)塊中,跨鏈交易完成后不同區(qū)塊鏈之間達成數據一致。
區(qū)塊鏈的可擴展性問題指的是由于區(qū)塊大小限制、共識時間長、每秒交易數(TPS)限制等問題造成的區(qū)塊鏈交易性能低下以及區(qū)塊鏈存儲空間急劇加大。目前,區(qū)塊鏈可擴展性的瓶頸包括性能擴展和功能擴展兩方面,在性能擴展上主要關注于如何提升區(qū)塊鏈的性能效率,在功能擴展上主要關注擴展區(qū)塊鏈的功能進而增強區(qū)塊鏈服務能力。區(qū)塊鏈系統(tǒng)的可擴展性的不足在一定程度上影響了建立在區(qū)塊鏈之上的服務的可擴展性,因此區(qū)塊鏈跨鏈協議在設計上需要考慮可擴展性的需求。為了設計具備可擴展性的區(qū)塊鏈跨鏈協議,需要滿足以下設計原則:
(1)應用場景多元化。實際應用業(yè)務中存在跨部門、跨業(yè)務、跨架構、跨行業(yè)的跨鏈需求,為此跨鏈協議的設計需要考慮到應用場景多元化的問題,通過對跨鏈交互模型的抽象設計,提煉出關鍵的跨鏈參數,以應對復雜多變的跨鏈場景,從而提高系統(tǒng)的可擴展性。如鄭建輝等人將跨鏈場景抽象為資產交換、資產轉移、信息付費和信息交互四類,針對這四種跨鏈交互場景分別設計智能合約模板,從而提高可擴展性。
(2)松耦合架構。在跨鏈協議的設計中,應降低跨鏈協議與區(qū)塊鏈平臺的耦合度,擴大跨鏈協議的應用范圍,從而提高可擴展性。類似互聯網通信協議中的端到端原則,在跨鏈交易的轉移過程中跨鏈協議無需關心內部的架構設計,對被移動的資產或數據的價值不可知,從而允許跨鏈協議的設計更加高效、快速和可靠。當跨鏈協議中的跨鏈通道或者錨定節(jié)點受損時,區(qū)塊鏈不會受到影響,依然可以正常運行。
(3)并行架構?;趥孺溁蛑欣^的跨鏈協議在設計跨鏈架構時均采取了并行架構設計,通過并行的方式擴展了區(qū)塊鏈的交易性能與存儲空間,如Cosmos 中的中心鏈(hub)與平行鏈(zone),Polkadot中的中繼鏈(relay-chain)和平行鏈(parachains)。戴波等人將區(qū)塊鏈節(jié)點進行多角色劃分,通過主鏈和子鏈的并行架構進一步提高可擴展性。
(4)鏈下通道??珂渽f議的鏈下通道設計包括微支付通道和鏈下存儲通道兩種方式,如比特幣系統(tǒng)中的閃電網絡、以太坊系統(tǒng)中的雷電網絡技術和基于IPFS(interplanetary file system)和Swarm 的鏈下存儲,兩者均可通過鏈下通道的方式可以將支付或存儲轉移到鏈下,在支付和存儲上增強跨鏈協議的性能,進一步提高跨鏈協議的可擴展性。
歐盟通用數據保護條例(general data protection regulation,GDPR)要求涉及安全和隱私數據的系統(tǒng)支持不同級別的機密性、安全性和隱私性保證。而區(qū)塊鏈中的隱私分為身份隱私和交易隱私兩類。身份隱私代表用戶身份信息與區(qū)塊鏈地址之間的隱私關聯關系。交易隱私指在區(qū)塊鏈中存儲的交易記錄及其背后隱藏的信息,比如比特幣區(qū)塊鏈中記錄了用戶之間的轉賬記錄。目前,較少跨鏈協議考慮到對身份隱私和交易隱私的保護。比如當前大部分跨鏈交易的候選方案未提供交易隱私保護機制,交易雙方的身份以及交易信息均是公開的。而在區(qū)塊鏈跨鏈互操作過程中,對用戶的身份隱私與交易隱私進行保護是不可或缺的,為設計具備隱私性的跨鏈協議,需要滿足以下設計原則:
(1)交易信息隱藏機制。跨鏈協議在進行跨鏈交易時需要對關鍵的交易信息進行隱藏處理,通過零知識證明、混幣機制、代理重加密、同態(tài)加密、環(huán)簽名等密碼學技術加密區(qū)塊鏈賬本中記錄的交易信息,保證賬本正確性的可驗證,從而防止攻擊方獲得完整的交易信息,增強跨鏈交易的匿名性。Stone基于零知識證明和Merkle 樹實現交易驗證,從而保護交易隱私。
(2)網絡數據混淆處理。為了預防攻擊者利用網絡拓撲來獲取用戶的身份隱私信息,跨鏈協議需對網絡數據進行混淆處理,比如使用基于洋蔥路由和大蒜路由的混淆網絡對系統(tǒng)進行加固,從而保護區(qū)塊鏈系統(tǒng)中的用戶IP 地址的隱私安全。
(3)數據訪問控制。在跨鏈過程中為保護區(qū)塊鏈上的數據安全,任何供區(qū)塊鏈外部實體訪問的數據信息都必須在經過授權后通過特定的接口才能被訪問。基于主流身份認證協議、加密校驗、零知識證明、屬性基加密等方式實現數據訪問控制策略,從而確保區(qū)塊鏈的數據隱私。Fabric 的通道機制實現不同場景下的數據訪問控制,并且實現業(yè)務數據隔離,通過限制消息的傳播范圍保護了用戶隱私。如Wang等人基于跨鏈技術解決醫(yī)療信息孤島問題,并通過對訪問權限的控制保護病人的就醫(yī)隱私信息。
對以上三點跨鏈協議關鍵設計原則進行分析,相關內容總結如表7。
表7 跨鏈協議關鍵設計原則總結Table 7 Summary of key design principles of cross-chain protocols
對跨鏈協議的研究是構建區(qū)塊鏈跨鏈應用生態(tài)的必經之路,其中的研究重點是跨鏈協議的安全性、可擴展性和隱私性。針對當前跨鏈協議研究的不足,未來的研究方向主要包括以下五方面:
(1)跨鏈協議的統(tǒng)一標準。區(qū)塊鏈互操作標準,又稱區(qū)塊鏈跨鏈標準,是基于跨鏈實現區(qū)塊鏈互操作性的標準規(guī)范,旨在創(chuàng)建所有區(qū)塊鏈通用的標準化事務格式和語法。IEEE、ITU、ISU、中國區(qū)塊鏈技術和產業(yè)發(fā)展論壇等國內外相關專業(yè)機構提出了若干跨鏈標準。但目前的跨鏈協議沒有遵守統(tǒng)一的跨鏈標準,無法形成統(tǒng)一的跨鏈體系。因此為了構建可用性強、擴展性強、安全性高、隱私性好、高性能、高效率的區(qū)塊鏈鏈聯網生態(tài)系統(tǒng),促進數字經濟新型基礎設施建設,在未來的跨鏈協議研究中應重視對跨鏈協議統(tǒng)一標準的研究。
(2)跨鏈協議的安全性??珂溚ㄐ呕ゲ僮鲄f議如何驗證通信傳輸數據的正確性,如何確??珂溚ㄐ胚^程中的數據安全性,采取何種同步手段來保持數據一致性是未來研究關注的重點方向。跨鏈資產交易互操作協議如何實現資產安全性并確保交易的原子性也是未來研究關注的重點方向。
(3)跨鏈協議的性能與應用。目前跨鏈協議的性能存在一定瓶頸,在實際應用場景中的應用能力有待加強。因此,提升跨鏈協議的性能與應用能力將是今后研究的一個重要方向。
(4)跨鏈協議的隱私性。跨鏈協議的隱私性涉及交易隱私和用戶隱私,而當前跨鏈協議側重于對安全性、可擴展性的分析研究,缺少對隱私性的關注,未來對跨鏈協議的研究應該考慮到隱私性方面的設計。
(5)跨鏈行為審計與故障處理機制。在跨鏈協議的實現過程中,應實現對跨鏈行為的審計,對各方的惡意行為進行檢測與處理,最終加強并優(yōu)化激勵機制以激勵各方遵守協議。另外跨鏈互操作協議如何處理跨鏈過程的網絡故障,如何恢復發(fā)生故障后的交易信息也是有待解決的難題。
(6)跨鏈智能合約應用。智能合約有增強區(qū)塊鏈互操作性的潛力,但目前尚未重視智能合約在區(qū)塊鏈互操作性領域的作用,跨鏈智能合約調用協議的研究近幾年剛剛興起。在未來設計跨鏈協議的過程中,需要針對跨鏈智能合約調用協議,研究如何通過跨鏈智能合約調用實現跨鏈事務處理和跨鏈查詢處理,結合不同區(qū)塊鏈的功能,實現跨組織、跨業(yè)務的功能互通,進而構建區(qū)塊鏈跨鏈應用。
隨著區(qū)塊鏈技術的發(fā)展,區(qū)塊鏈跨鏈互操作需求不斷增長,實現區(qū)塊鏈的鏈間互操作性必將是區(qū)塊鏈未來發(fā)展的必經之路。區(qū)塊鏈跨鏈互操作的最終目的在于構建鏈聯網,即構建跨鏈應用,從而實現各個區(qū)塊鏈的互聯互通。實現不同區(qū)塊鏈之間的數據互通、價值互通和功能互通將破除異構區(qū)塊鏈之間的聯通壁壘,從根本上解決區(qū)塊鏈的可擴展性問題,擴展區(qū)塊鏈的應用范圍。因此,為實現區(qū)塊鏈跨鏈互操作,構建跨鏈協議將是區(qū)塊鏈的重點研究方向。本文總結和分析了區(qū)塊鏈互操作性的定義以及跨鏈技術和跨鏈架構,并對跨鏈通信協議、跨鏈資產交易協議、跨鏈智能合約調用協議的研究現狀進行總結分析,最后指出跨鏈協議的關鍵設計原則和未來研究方向。