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





