區塊鏈作為一種分布式賬本技術,可以被應用在金融、健康醫療、供應鏈、資產管理等諸多領域,但是受吞吐量、網絡孤立性、伸縮性等因素的制約,目前的區塊鏈項目并不能很好的服務于商業應用。在區塊鏈所面臨的諸多問題中,網絡孤立性阻礙了不同區塊鏈之間的協同操作,極大程度的限制了區塊鏈的發揮空間。
一、引言
在前面的技術視點文章中,我們詳細介紹了了本體跨鏈的核心模塊,區塊頭同步合約和跨鏈管理合約。本體通過這兩個模塊實現跨鏈交易的驗證。今天主要介紹一下應用跨鏈技術的 ONG(x) 合約、dApp 合約,以及信息狀態同步者 Relayer。ONG(x) 合約和 dApp 合約都是實現跨鏈業務的應用合約,而 Relayer 則負責跨鏈信息的同步,并收取一定的礦工費。
其中,任何人無需注冊都可以成為 Relayer,只要部署運行狀態信息同步服務程序,并進行相關同步工作即可。
二、ONG(x)合約和 dApp 合約
ONG(x)合約
ONG(x)合約是可以實現跨鏈資產轉移的 ONG 資產合約。在原有 ONG 合約的基礎上,為了實現跨鏈業務,ONG(x)合約新增了 Lock 和 Unlock 接口:
1. Lock 接口
在鏈上鎖定資產。該接口調用跨鏈管理合約,該鎖定資產的交易被跨鏈管理合約放入 merkle tree 中。
2. Unlock 接口
在鏈上解鎖資產。該接口被跨鏈管理合約調用,跨鏈管理合約將通過驗證的交易參數傳給該接口,接口按照參數進行資產解鎖。
dApp 合約
dApp 合約是用戶自行實現的跨鏈應用合約,除了用戶自己的業務邏輯外,需要跨鏈的業務需要若干組類似 Lock 和 Unlock 的接口對,通過跨鏈管理合約實現接口對的相互調用。
三、狀態信息同步者 Relayer
任何人無需注冊都可以成為 Relayer,只要部署運行狀態信息同步服務程序,持續監聽跨鏈合約的跨鏈請求和周期切換區塊,并進行跨鏈交易或者區塊頭的同步工作。同一筆跨鏈交易或者區塊頭只有一個 Relayer 能夠成功提交。Relayer 成功提交跨鏈交易后,即可獲取礦工費激勵。Relayer 無需抵押押金,通過設置礦工費的閾值來決定是否同步礦工費比較低的交易。
Relayer 在跨鏈交互過程中需要同步兩類關鍵信息:關鍵區塊頭和跨鏈交易??珂溄灰椎馁M用由用戶支付給搬運數據的Relayer,關鍵區塊頭中有可能不包含跨鏈交易,所以有可能沒有人支付搬運關鍵區塊頭的費用。但關鍵區塊頭對整個周期的跨鏈交易都產生影響,如果沒有人同步關鍵區塊頭信息,則這個關鍵區塊頭后的整個周期的跨鏈交易也沒有辦法完成。因此,會從整個周期的跨鏈交易的費用中抽取一部分用于激勵搬運關鍵區塊頭的 Relayer。
跨鏈交易的用戶可以自己提交跨鏈交易信息,也可以在跨鏈交易中包含一筆礦工費用,用來委托Relayer 進行跨鏈交易同步。具體來說,當用戶在源鏈上進行跨鏈交易時需要額外鎖定一部分 ONG 或銷毀一部分的 ONGx 作為礦工費,Relayer 在監聽到這筆跨鏈請求后,會根據該礦工費用是否高于自己設定的閾值,來決定是否提交這筆跨鏈交易。
當高于自己設定的礦工費閾值時,Relayer 會提交該筆跨鏈交易到目標鏈,在跨鏈交易執行成功后,會在目標鏈上的釋放對應 ONG 或增發對應的 ONGx 作為礦工費用,這筆ONG 或ONGx 會轉給提交這筆跨鏈交易成功的 Relayer,用于激勵 Relayer。
四、后記
在以后的本體技術視點文章中,我們將給大家帶來更多關于本體跨鏈設計的具體細節。目前,本體跨鏈測試網已經上線,也提供了詳細的跨鏈使用教程和多鏈開發手冊,希望廣大技術愛好者來體驗本體跨鏈測試網絡。
評論