跨鏈方案面臨怎樣的問題和挑戰(zhàn)
題記:區(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ù)視點(diǎn)文章中,我們詳細(xì)介紹了本體跨鏈的六大模塊的具體設(shè)計和實(shí)現(xiàn),相信大家對本體跨鏈技術(shù)有了一個基本的了解。
這次我們主要介紹目前所有的跨鏈方案所面臨的問題和挑戰(zhàn),以及本體為了應(yīng)對這些問題和挑戰(zhàn)給出的進(jìn)一步改進(jìn)和優(yōu)化方案。
二、側(cè)鏈作惡
跨鏈交互中涉及到的一個重要安全問題就是如何防止側(cè)鏈驗(yàn)證人集體作惡,即側(cè)鏈作惡。
在 Cosmos 中側(cè)鏈?zhǔn)亲灾蔚南到y(tǒng),側(cè)鏈驗(yàn)證人的選舉由側(cè)鏈自己決定;而在 Polkadot 中,側(cè)鏈驗(yàn)證人的管理由 Polkadot 主鏈決定。無論是自治的驗(yàn)證人選舉還是統(tǒng)一的驗(yàn)證人選舉,都會面臨一個根本性的問題——這些側(cè)鏈驗(yàn)證人都不一定可靠。若跨鏈交互的中任意一種或多種資產(chǎn)實(shí)際價值大于驗(yàn)證人抵押的實(shí)際價值,驗(yàn)證人會有足夠的動力去作惡。
例如: 某個 dApp 的開發(fā)者同時在主鏈和側(cè)鏈上部署了智能合約,希望進(jìn)行跨鏈的資產(chǎn)交互。當(dāng)該 dApp 的用戶將一部分資產(chǎn)轉(zhuǎn)移到側(cè)鏈后,如果這部分資產(chǎn)的實(shí)際價值大于側(cè)鏈(驗(yàn)證人集體)在主鏈上抵押資產(chǎn)的實(shí)際價值,那么惡意的側(cè)鏈(驗(yàn)證人集體)可以直接將這部分的資產(chǎn)轉(zhuǎn)移到自己的名下,最終轉(zhuǎn)移到主鏈上并在交易所賣掉了這部分的資產(chǎn)。
當(dāng)然,側(cè)鏈驗(yàn)證人在主鏈抵押的保證金會賠付用戶的部分損失。但是如果側(cè)鏈驗(yàn)證人在主鏈上抵押資產(chǎn)的實(shí)際價值小于這部分用戶資產(chǎn)的實(shí)際價值,惡意的側(cè)鏈驗(yàn)證人會有動力采取集體作惡的方式來獲益。
作惡方式
現(xiàn)有的跨鏈方案中大都采用 Merkle Tree 證明的方式,即側(cè)鏈會在每一個區(qū)塊中生成當(dāng)前區(qū)塊中所有交易產(chǎn)生狀態(tài)的 State Root,側(cè)鏈驗(yàn)證人會對該 State Root 進(jìn)行簽名。當(dāng)有跨鏈交易發(fā)生時,通過驗(yàn)證該 State Root 即可驗(yàn)證跨鏈狀態(tài)的合法性。
若側(cè)鏈驗(yàn)證人發(fā)現(xiàn)用戶跨鏈交互的資產(chǎn)實(shí)際價值大于這些驗(yàn)證人抵押資產(chǎn)的實(shí)際價值,那么側(cè)鏈驗(yàn)證人可以基于當(dāng)前區(qū)塊偽造一個 State Root,即無視當(dāng)前區(qū)塊的執(zhí)行結(jié)果,強(qiáng)行構(gòu)造一個對自己有利的 State Root,從而竊取用戶鎖定在主鏈上的資產(chǎn)。
三、如何解決側(cè)鏈作惡
我們可以設(shè)置一個挑戰(zhàn)期,在挑戰(zhàn)期內(nèi)可以分為如下幾個步驟進(jìn)行作惡舉證:
(1) 是否能提交作惡的區(qū)塊;
(2) 是否能提供作惡的交易的前一個狀態(tài);
(3) 是否能提供作惡的智能合約;
(4) 是否在對應(yīng)虛擬機(jī)中運(yùn)行生成的 States Root 是否與當(dāng)前區(qū)塊的 State Root 一致。
驗(yàn)證人作惡是通過集體在當(dāng)前區(qū)塊構(gòu)造虛假的 State Root,但區(qū)塊中的交易因?yàn)闊o法偽造用戶簽名并不能被改變。因此,針對驗(yàn)證人作惡的情況,我們提出一個解決該問題的設(shè)想。
在挑戰(zhàn)期內(nèi),若發(fā)現(xiàn)某一筆交易作惡,可以通過作惡區(qū)塊、作惡區(qū)塊中的交易、作惡區(qū)塊中交易的前一個狀態(tài)、作惡智能合約去對應(yīng)的虛擬機(jī)中運(yùn)行結(jié)果,并比較運(yùn)行產(chǎn)生的 State Root 與提交作惡區(qū)塊中的 State Root 是否一致,從而驗(yàn)證該 State Root 是否合法。
同時,不管是否有跨鏈交易的發(fā)生,Relayer 都會實(shí)時監(jiān)聽側(cè)鏈的情況,若監(jiān)聽到當(dāng)前區(qū)塊頭的 State Root 與實(shí)際運(yùn)行 State Root 的不符,可立即提交該證明到主鏈中,舉證側(cè)鏈的惡意行為,并獲得側(cè)鏈驗(yàn)證人抵押在主鏈中相應(yīng)的激勵。
可以看到,目前該方案也存在進(jìn)一步優(yōu)化的空間。其驗(yàn)證過程稍顯復(fù)雜,特別是對于異構(gòu)鏈而言;另外,挑戰(zhàn)期的存在對用戶也不是足夠的友好。因此,本體會在該方案的基礎(chǔ)上繼續(xù)研究其它更可行、更高效的解決方案。
四、后記
在這一系列關(guān)于跨鏈的技術(shù)視點(diǎn)文章中,我們給大家?guī)砹岁P(guān)于本體跨鏈設(shè)計的相關(guān)具體細(xì)節(jié)。目前,本體跨鏈測試網(wǎng)已經(jīng)上線,也提供了詳細(xì)的跨鏈?zhǔn)褂媒坛毯投噫滈_發(fā)手冊,希望廣大技術(shù)愛好者來體驗(yàn)本體跨鏈測試網(wǎng)絡(luò)。
來源: 本體研究院