基于多區塊鏈協作的高效可驗證溯源查詢
近年來,區塊鏈系統被廣泛應用于數據溯源場景,其有效保證了溯源結果的真實性。傳統上,所有參與方都駐留在單個區塊鏈系統中,從而催生出許多面向單區塊鏈系統的溯源方案。與此同時,各方單獨部署自己的區塊鏈系統已經成為一種趨勢。不幸的是,當擴展到對抗性跨鏈商業交易時,現有的單區塊鏈查詢方案無法適用于多區塊鏈的部署場景。具體而言,由于缺乏對跨鏈依賴的全局知識,查詢結果可能在多個區塊鏈上不一致和不完整。此外,這些方案順序在區塊鏈間執行跨鏈溯源查詢,導致了較高的查詢延遲。在本文中,我們提出了一種支持高效且可驗證的多鏈溯源查詢系統,其融合了三個創新設計:1) 探索跨鏈交易的依賴關系,2) 通過在共享區塊鏈上記錄和查詢依賴關系來驗證跨鏈來源的真實性,以及 3) 通過并行化查詢提高效率。實驗結果表明,我們的溯源方案可以在保證吞吐量不變的前提下,將查詢延遲縮短 85.9%。
該成果“Vassago: Efficient and Authenticated Provenance Query on Multiple Blockchains”發表在CCF-B類會議The 40th International Symposium on Reliable Distributed Systems (SRDS 2021)上,是實驗室分布式系統組在區塊鏈領域的研究成果。

- 論文鏈接:https://ieeexplore.ieee.org/abstract/document/9603540
背景與動機

圖1 多區塊鏈場景下Ford溯源查詢
區塊鏈系統由于其不可篡改和透明的優點,已被廣泛應用于供應鏈等許多領域中。然而,在許多場景中,并不是所有的參與方都能參與到單一的區塊鏈系統中。例如,在 COVID-19 疫苗的供應鏈中,來自不同國家的供應商可能需要通過區塊鏈系統合作建立供應鏈。由于單一區塊鏈缺乏可擴展性、以及不同國家的各種監管政策,將所有相關供應商的疫苗交易記錄在一個區塊鏈中是不切實際的。針對該問題,每個國家通常會分別部署獨立的區塊鏈系統,以保證數據安全性。這種多區塊鏈系統的部署場景,要求設計跨鏈查詢方案來追蹤疫苗在這些區塊鏈上的流通。圖1展示了一個多區塊鏈場景下,供應鏈最下游參與者Ford對目標的歷史交易記錄的溯源查詢需求。
與單鏈查詢相比,跨鏈查詢面臨兩大挑戰:無法保證數據真實性和較高的查詢延遲。具體而言,在單鏈查詢場景中,區塊鏈共識可以保證查詢結果的真實性。然而在多鏈場景中,缺少一種覆蓋多條鏈的跨鏈共識。因此,跨鏈查詢結果的真實性無法有效保證。此外,跨鏈查詢由每個區塊鏈上的多個子查詢任務組成,每個子查詢任務都會產生額外的查詢延遲,從而導致了較高的整體延遲。
設計與實現
為了應對上述挑戰,我們根據溯源場景本身存在的事務依賴關系,設計了一種跨鏈來源依賴關系。這種依賴關系可以作為一個鏈中的交易是否在其他鏈中具有相應交易的證明。通過這種依賴,可以驗證查詢結果的一致性和完整性,從而保證跨鏈查詢的數據真實性。此外,一旦獲得依賴,跨鏈查詢中的子查詢任務可以并行執行,從而提高整體查詢效率。

圖2 Vassago系統架構
基于上述思想,我們設計跨鏈架構Vassago,它包含自適應兩層架構。如圖2所示,第一層包含一個依賴區塊鏈(DB),它記錄了跨鏈來源的依賴。第二層包括一個交易區塊鏈(TB)組,它包含一組執行鏈內和鏈間交易的TB。用戶將按需加入DB中定義的TB。

a)跨鏈事務依賴

b) 跨鏈溯源依賴
圖3 跨鏈溯源依賴關系
圖3描述我們定義的跨鏈依賴關系,包括跨鏈交易依賴和跨鏈溯源依賴。再次以背景問題介紹的場景為例,物品首先來自區塊鏈1,然后經由區塊鏈2,最后在區塊鏈3中進行消費。每個組包含多個企業。組內不依賴其他組交易的交易用藍色方塊表示,而依賴其他組交易的交易(即跨鏈交易)用紅色方塊表示。黑色箭頭表示發生在一組中的交易依賴,紅色箭頭表示跨鏈交易依賴。圖中顯示了兩個跨鏈交易依賴:Tx3和Tx4之間的依賴Rcro1和Tx6和Tx7之間的依賴Rcro2。依賴方向是從下游企業到上游企業。藍色箭頭表示跨鏈溯源依賴關系,例如圖中來源依賴關系Rint1將下游交易依賴關系Rcro2與上游交易依賴關系Rcro1聯系起來。此外,還存在其他一些從其他區塊鏈發起的跨鏈來源依賴關系。所有藍色箭頭的集合將構成一個項目的完整溯源依賴圖。

圖4 Ford進行跨鏈溯源查詢
圖4描繪了Ford的跨鏈溯源查詢的過程。跨鏈溯源查詢查詢包括5個步驟:項目溯源請求、依賴查詢、跨鏈查詢、結果驗證和結果返回。更具體地說,如果Ford想要在多個區塊鏈之間進行查詢,他需要首先向TB3中的智能合約提出項目溯源請求。作為響應,智能合約向DB查詢與目標項目相關的跨鏈溯源依賴關系。之后,TB3可以根據物體的跨鏈溯源依賴對所有相關的TB執行溯源查詢。在驗證階段,當存在不一致的跨鏈交易時,會與DB中記錄的依賴關系進行比對,從而發現錯誤的跨鏈交易。
性能評估
為了評估Vassago,我們在Hyperledger Fabric上面實現了一個原型系統。系統部署了8組機器,每組維護4個節點。進行了多次實驗,利用Blockbench測試系統性能。我們的實驗結果證明了Vassago在執行跨鏈查詢方面的高效率和高擴展性。

圖5 有無依賴關系的查詢性能對比
與無依賴的系統相比,Vassago可以減少85.9%的數據查詢延遲。我們比較了有和沒有依賴的系統的查詢延遲,并描繪了如圖5所示的結果。由于Vassago 中的每個參與者都存儲了依賴關系,因此查詢者可以在不同TB中并行執行查詢。沒有依賴關系時,查詢延遲會隨著塊數的增加而線性增加。相比之下,它在Vassag中幾乎保持不變。特別是當總查詢數據達到80萬區塊時,Vassago的查詢延遲僅為58.41ms,優于無依賴的410.56ms。此外,系統中涉及的組織數量越多,查詢延遲的減少就越大。綜上所述,Vassago可以顯著提升跨鏈數據查詢的效率。