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