題記
區(qū)塊鏈作為一種分布式賬本技術(shù),可以被應(yīng)用在金融、健康醫(yī)療、供應(yīng)鏈、資產(chǎn)管理等諸多領(lǐng)域,但是受吞吐量、網(wǎng)絡(luò)孤立性、伸縮性等因素的制約,目前的區(qū)塊鏈項(xiàng)目并不能很好的服務(wù)于商業(yè)應(yīng)用。在區(qū)塊鏈所面臨的諸多問題中,網(wǎng)絡(luò)孤立性阻礙了不同區(qū)塊鏈之間的協(xié)同操作,極大程度的限制了區(qū)塊鏈的發(fā)揮空間。
引言
跨鏈技術(shù)是解決不同區(qū)塊鏈間協(xié)同操作、實(shí)現(xiàn)價值互聯(lián)網(wǎng)的關(guān)鍵。簡單來說,跨鏈就是實(shí)現(xiàn)一個鏈到另一個鏈的通信協(xié)議。目前,本體跨鏈方案已經(jīng)在測試網(wǎng)運(yùn)行。本文就本體跨鏈設(shè)計進(jìn)行初步分析。
其它跨鏈技術(shù)簡析
介紹本體跨鏈設(shè)計之前,我們先比較一下幾個熱門的跨鏈解決方案的特色,分析一下它們是如何實(shí)現(xiàn)跨鏈的。
Plasma:以太坊中熱議的鏈下擴(kuò)容方案 Plasma,它通過把交易轉(zhuǎn)移到更快擁堵更少的側(cè)鏈來提高其可擴(kuò)展性。該方案不需要修改區(qū)塊鏈底層協(xié)議,而是通過復(fù)雜的工作轉(zhuǎn)移到鏈下完成,并在需要時將鏈下的計算結(jié)果提交到主鏈上保證其安全性。
Cosmos:Cosmos 則是 Tendermint 團(tuán)隊開發(fā)的一個支持跨鏈交互的異構(gòu)網(wǎng)絡(luò)。網(wǎng)絡(luò)中第一個區(qū)塊鏈?zhǔn)荂osmos Hub,也就是 Cosmos 主網(wǎng),其他的并行鏈稱為Zone,Zone 通過 IBC 協(xié)議與 Hub 進(jìn)行跨鏈操作。在 IBC 協(xié)議設(shè)計里,兩個鏈建立連接之前需要進(jìn)行彼此注冊,并保存對方鏈驗(yàn)證者集合以及相關(guān) Merkle 證明,以證明跨鏈消息的正確性。同時,不同的 Hub 連接下的 Zone 也可以通過 Hub 路由的方式進(jìn)行交互。
Polkadot:這是由原以太坊主要核心開發(fā)者Gavin Wood 推出的可伸縮性的異構(gòu)多鏈系統(tǒng),主要解決區(qū)塊鏈拓展性問題。在 Polkadot 看來,其它區(qū)塊鏈都是平行鏈,Polkadot 通過中繼鏈技術(shù)能夠?qū)⒃墟溕系?token 轉(zhuǎn)入類似多重簽名控制的原鏈地址中,對其進(jìn)行暫時鎖定,在中繼鏈上的交易結(jié)果將由這些簽名人投票決定其是否生效。它還引入了釣魚人角色對交易進(jìn)行舉報監(jiān)督。通過 Polkadot 可以將比特幣、以太幣等都鏈接到 Polkadot 上,從而實(shí)現(xiàn)跨鏈通信。
本體跨鏈設(shè)計初探
為了解決區(qū)塊鏈的信息孤島問題,本體推出全新的輕量級、低耦合、安全可靠的多鏈體系和跨鏈解決方案。該解決方案以本體鏈為主鏈,同時支持同構(gòu)側(cè)鏈和異構(gòu)側(cè)鏈,并允許主鏈與側(cè)鏈、側(cè)鏈與側(cè)鏈之間的交互。當(dāng)需要連接不同結(jié)構(gòu)的鏈時,dApp 可以通過調(diào)用跨鏈管理合約來完成跨鏈操作。
本體鏈網(wǎng)體系支持主鏈和側(cè)鏈之間、側(cè)鏈和側(cè)鏈之間的跨鏈交互,其跨鏈設(shè)計主要包括如下幾個模塊:
1. 多鏈管理合約
· 主要負(fù)責(zé)側(cè)鏈的注冊和管理,包括側(cè)鏈注冊和退出,側(cè)鏈狀態(tài)管理,側(cè)鏈 ONG 抵押管理,側(cè)鏈資金池管理,驗(yàn)證人信息變更等;
· 側(cè)鏈需要在注冊時向主鏈的多鏈管理合約中提交該側(cè)鏈的創(chuàng)世塊區(qū)塊頭、共識切換周期等基本信息。同時,側(cè)鏈需要將主鏈的當(dāng)前關(guān)鍵區(qū)塊頭信息初始化在自己的區(qū)塊頭同步合約中。另外,側(cè)鏈在向主鏈注冊時需要抵押一定量的 ONG 防止其作惡(若是可信側(cè)鏈,也可不抵押 ONG);
· 注冊后會為子鏈分配子鏈 ONGx 總發(fā)行量的資金池,每次向子鏈的資產(chǎn)轉(zhuǎn)移都會消耗資金池的容量,相反會釋放資金池的容量;
· 子鏈的退出需要有段時間的挑戰(zhàn)期,挑戰(zhàn)期內(nèi)用戶可以將 ONGx 換回 ONG,如發(fā)現(xiàn)無法換回,可以提交子鏈作惡的證據(jù)。挑戰(zhàn)期結(jié)束子鏈退出并贖回質(zhì)押。
2. 區(qū)塊頭同步合約
· 跨鏈交互需要跨鏈交易的相關(guān)合法性證明,跨鏈交易在跨鏈管理合約中被放入merkle tree中,同時 merkle root 被放入?yún)^(qū)塊頭中;
· 因此跨鏈交互過程中需要進(jìn)行跨鏈區(qū)塊頭信息的同步,獲取 merkle root,以驗(yàn)證跨鏈交易的合法性;
·為了驗(yàn)證獲取到的跨鏈區(qū)塊頭的合法性,需要驗(yàn)證對方鏈共識節(jié)點(diǎn)的簽名,而為了獲取對方鏈共識節(jié)點(diǎn)列表,需要同步對方鏈的關(guān)鍵區(qū)塊頭(也就是共識切換的區(qū)塊);
· 側(cè)鏈和側(cè)鏈的交互過程中,雙方將直接從主鏈上取得對方的關(guān)鍵區(qū)塊頭信息。
3. 跨鏈管理合約
· 所有跨鏈交易都由跨鏈管理合約來進(jìn)行統(tǒng)一管理;
· 跨鏈管理合約負(fù)責(zé)為每一筆跨鏈交易分配一個自增 ID,并在完成時標(biāo)記該 ID 已消費(fèi),還負(fù)責(zé)將跨鏈交易放入 Merkle Tree,而 Merkle Root 會被放入當(dāng)前區(qū)塊的區(qū)塊頭中。同時,在發(fā)起跨鏈交易時,用戶需要將一部分 ONG 作為礦工費(fèi)用銷毀或凍結(jié)。
4. ONG(x) 合約
· 系統(tǒng)資產(chǎn)合約,該資產(chǎn)可以實(shí)現(xiàn)跨鏈轉(zhuǎn)移,并可以作為交易手續(xù)費(fèi)和跨鏈交易礦工費(fèi),資產(chǎn)錨定主鏈 ONG;
· 主鏈 ONG 合約添加了跨鏈資產(chǎn)鎖定,解鎖功能;
· 側(cè)鏈 ONGx 合約添加了跨鏈資產(chǎn)增發(fā),銷毀功能。
5. dApp 合約
· 任意本體開發(fā)者開發(fā)部署的 dApp 合約,此合約除了正常的業(yè)務(wù)邏輯,還調(diào)用了跨鏈管理合約的跨鏈方法來實(shí)現(xiàn)跨鏈。是跨鏈 dApp 生態(tài)中的鏈上部分。
· dApp 開發(fā)者無需關(guān)心具體的跨鏈實(shí)現(xiàn),只需調(diào)用跨鏈管理合約的統(tǒng)一方法即可實(shí)現(xiàn)跨鏈。
6. 信息狀態(tài)同步者 Relayer
· 一個狀態(tài)信息同步程序,持續(xù)監(jiān)聽跨鏈管理合約的跨鏈請求和某些關(guān)鍵區(qū)塊,監(jiān)聽到后進(jìn)行跨鏈交易或者關(guān)鍵區(qū)塊頭的同步工作來獲取礦工費(fèi)。
· 任何人都可以無需注冊加入網(wǎng)絡(luò)成為 Relayer,并賺取自己的礦工費(fèi)。
后記
在以后的本體技術(shù)視點(diǎn)文章中,將給大家?guī)砀嚓P(guān)于本體跨鏈設(shè)計的具體細(xì)節(jié)。
目前,本體跨鏈測試網(wǎng)已經(jīng)上線,也提供了詳細(xì)的跨鏈?zhǔn)褂?a href="http://www.socialnewsupdate.com/v/" target="_blank">教程和多鏈開發(fā)手冊,希望廣大技術(shù)愛好者來體驗(yàn)本體跨鏈測試網(wǎng)絡(luò)。
評論