布比區塊鏈跨鏈技術提出互聯鏈體系結構,提供多種模式的跨鏈技術。布比鏈的跨鏈協議支援“基於多公證人機制”和“基於可信硬體機制”的主流模式。開發者可以先建立一條Relay Chain,利用SPV技術適配其他業務鏈,其次按照業務需求搭建平行鏈,平行鏈將按照預設的跨鏈協議對接到Relay Chain,從而與其他鏈進行互聯互通,這樣不僅可降低跨鏈架構複雜度,而且更靈活、更契合實際業務場景,布比區塊鏈支援同構及異構跨鏈,不僅支援數字資產的跨鏈轉賬,也支援智慧合約、分散式應用之間的跨鏈操作。
從布比跨鏈技術架構圖可以看出,架構主要包括RelayChain(中繼鏈)、Parallel Chain(平行鏈)、可插拔元件。中繼鏈由多個驗證節點組成,驗證節點負責維護整個區塊鏈安全穩定的執行,使用較高TPS的共識演算法有效提高跨鏈的效率,滿足平行鏈跨鏈對效能的不同要求。平行鏈是所有參與接入跨鏈生態的同構/異構區塊鏈,可以是各種公鏈、聯盟鏈、私鏈等。可插拔元件是中繼鏈和平行鏈的橋樑,實現平行鏈/中繼鏈與平行鏈互聯互通跨鏈通訊。
布比跨鏈技術是以高效能共識的中繼鏈為核心的跨鏈網路結構以及平行鏈動態接入機制,使用可插拔元件作為跨鏈的橋接器,保證跨鏈技術的高效性、擴充套件性和安全性。
中繼鏈跨鏈平臺設計了安全的序號產生器制,保證註冊的平行鏈是可控有效的。首先任一條想加入跨鏈平臺接入中繼鏈的平行鏈,都需要透過抵押的方式在中繼鏈的註冊合約中發起註冊提案,共識完成後會給該平行鏈分配唯一的鏈ID標識。中繼鏈也可以透過多個節點投票的方式登出惡意註冊的資訊,拒絕所有該惡意平行鏈資訊的跨鏈請求。
可插拔元件使用了兩種跨鏈方式公證人模式和可信硬體模式。兩條平行鏈可以透過公證人元件進行跨鏈跨鏈操作,如果需要與更多平行鏈進行跨鏈操作使用中繼平臺是最好的選擇。使用可信硬體元件+中繼鏈的跨鏈元件能最大提高跨鏈的靈活性、安全性,可信硬體元件包含中繼節點程式和SGX部分,負責跨鏈交易的可信計算簽名和鏈間資訊的轉發。
1. 平行鏈註冊
平行鏈需要跨鏈首先必須在中繼鏈裡註冊。中繼鏈的RMC合約負責平行鏈註冊等管理,平行鏈的跨鏈申請者需提供平行鏈AMC資產管理合約地址、已在中繼鏈部署的平行鏈SPV合約地址、平行鏈描述資訊等。流程如下:
1) 平行鏈申請者在中繼鏈中建立平行鏈的Proof合約,獲取合約地址。
2) 申請者在平行鏈上建立AMC合約用於跨鏈交易處理。
3) 申請者向中繼鏈的註冊合約提交註冊資訊,包括AMC合約地址資訊和Proof合約地址資訊等。
4) 中繼鏈共識完成後生成唯一的鏈ID分配給此平行鏈。
2. 公證人模式
在布比區塊鏈中,使用公證人模式的可插拔元件可以看到,鏈間是透過公證人來監聽交易的。公證人賬戶首先需要向平行鏈的AMC合約進行註冊,平行鏈合約管理員授權公證人的接入承擔跨鏈訊息的轉發。跨鏈交易產生之後,所有公證人都會監聽並獲取相關的跨鏈資訊,分析並驗證交易的正確性。之後公證人便將跨鏈資料進行簽名併傳送交易到另一條鏈的相關跨鏈合約中。多個公證人轉發訊息後,合約內部我們使用BFT(Byzantine Fault Tolerance)的演算法共識跨鏈提案資訊,只有達到一定公證人簽名數量後跨鏈交易的合法性才會被確認。透過BFT演算法保證了提案的正確性,即使少數公證人被攻擊或者作惡都不會影響跨鏈系統的正常執行。
3. 可信硬體模式
布比跨鏈技術可插拔元件藉助於因特爾處理器的SGX技術,英特爾® Software Guard Extensions(英特爾® SGX)是一組指令,該組指令增強應用程式程式碼和資料的安全性,為它們提供更強的保護以防洩漏或修改。開發人員可將敏感資訊分割槽進入Enclave中,Enclave是記憶體中具有更強安全保護的執行區域。
閘道器節點-可信硬體模式透過遠端認證可以驗證釋出的軟體正常執行在一個SGX平臺上,並且保證軟體沒有經過篡改。如此我們就可以相信SGX會按照正確的跨鏈過程執行,猶如一個合約一樣。
閘道器節點需要在平行鏈的AMC合約中抵押並進行註冊,平行鏈跨鏈管理稽覈完閘道器節點的註冊後一旦抵押資產達到開啟跨鏈的閾值要求,閘道器節點就開始進行跨鏈工作。
我們將閘道器節點分為兩個部分:SGX程式和中繼程式,
· SGX程式主要平行鏈SPV驗證和跨鏈交易的簽名。
· 中繼程式用於中繼鏈的資料轉發和跨鏈交易轉發。
4. 雜湊時間鎖模式
跨鏈的過程必須要保持狀態的一致,保持跨鏈事務的原子性。這是跨鏈交易的基本要求也是必須解決的問題。布比跨鏈技術透過使用雜湊時間鎖定(HTLC)的方式來保證交易的原子性。如下圖所示:
從上圖可以看出我們的跨鏈流程中,ChainA中發生一筆跨鏈交易,合約透過計算關鍵跨鏈資料生成hash值並儲存此次跨鏈交易,初始化交易狀態。透過中繼鏈轉發到ChainB鏈後,會觸發ChainB生成一個資產接收的證據,產生一個關鍵hash存證。閘道器節點監控到跨鏈交易成功資料後繼續將跨鏈交易反饋資料,返回到ChainA中,直到跨鏈交易更新狀態為已成功的狀態。在一個長固定時間內,若沒有受到關鍵字hash的跨鏈交易的反饋資料,則使用者Alice可以向跨鏈合約申請退回跨鏈交易發起的資金,避免資金的損失。