主鏈與側(cè)鏈的雙向橋接網(wǎng)絡(luò)怎樣去構(gòu)建
概述
我們提出了一種新穎的方法,用于在主鏈和側(cè)鏈之間構(gòu)建無信任的雙向橋梁。 通過永久停止側(cè)鏈,即使在樂觀的情況下,我們也不再需要嚴(yán)格的同步要求和長時(shí)間的退出延遲。而代之的是,只有在側(cè)鏈暫停很長一段時(shí)間后才允許提款。 一旦停止了側(cè)鏈,就可以通過流動性提供者網(wǎng)絡(luò)使用原子交換立即提取資金以進(jìn)行使用。 可以同時(shí)啟動新的側(cè)鏈,以終止舊的側(cè)鏈以接受并開始處理掉期后的資金。
現(xiàn)有提案存在的問題
目前的側(cè)鏈建議有幾個(gè)問題,我們在這篇文章中解決。我們將在本節(jié)中討論一些更常見的建議:
合并挖礦(Merge-Mined)側(cè)鏈
合并挖礦涉及通過允許礦工同時(shí)開采兩個(gè)或更多鏈條來重復(fù)使用工作量證明。這用于像Rootstock這樣的系統(tǒng),作為引導(dǎo)側(cè)鏈啟動的一種方式。
不幸的是,合并挖礦僅提供針對外部哈希率的安全性,而在一般情況下則不提供安全性。另外,它在任何情況下都無法實(shí)現(xiàn)不信任的雙向資金橋梁(即在不信任第三方的情況下,將代幣/代幣從主鏈和側(cè)鏈轉(zhuǎn)移到主鏈和側(cè)鏈)。
Federated Peg(聯(lián)邦掛鉤)側(cè)鏈
federated peg聯(lián)邦掛鉤)實(shí)現(xiàn)主側(cè)鏈之間的互相轉(zhuǎn)賬,通過多個(gè)集體構(gòu)成的聯(lián)盟共同監(jiān)督和維護(hù)主側(cè)鏈之間的轉(zhuǎn)賬。如果聯(lián)盟的大多數(shù)成員未通過多重簽名對此表示同意,則該聯(lián)盟無法從側(cè)鏈向主鏈釋放資金。即使聯(lián)盟不直接控制實(shí)際資金,用戶也可以將其資金無限期地停留在側(cè)鏈中,直到大多數(shù)人決定解鎖資金為止。因此,用戶應(yīng)聯(lián)邦的要求。
通常在主鏈的智能合約功能(例如比特幣腳本)的表達(dá)能力不足時(shí)使用。為了有效地鎖定和解鎖側(cè)鏈和主鏈之間的資金,需要在鏈上驗(yàn)證證明,這可能需要廣泛的功能。這就是Liquid 1和Rootstock等系統(tǒng)的工作方式。
還有另一種稱為Drivechain的2-way federated peg(雙向聯(lián)邦掛鉤)系統(tǒng),其中聯(lián)邦是主鏈礦工的隱式子集。即使在這種情況下,加入聯(lián)盟是未經(jīng)許可的,我們?nèi)匀挥龅脚c上段所述相同的問題,即大多數(shù)礦工可以任意竊取或鎖定資金。
Plasma鏈
受早期CoinWitness的啟發(fā),Plasma Cash使用基于代幣的數(shù)據(jù)模型(不同于比特幣的UTXO數(shù)據(jù)模型或以太坊的賬戶數(shù)據(jù)模型)。這具有很好的功能,即側(cè)鏈上的所有代幣對主鏈都是已知的-類似于打開的通道。通過使用復(fù)雜的退出博弈來維護(hù)不信任的雙向掛鉤,無論在側(cè)鏈上發(fā)生什么情況(包括操作員扣留區(qū)塊或產(chǎn)生無效區(qū)塊),都必須維護(hù)該掛鉤,這是維持雙向交易所必需的。
這些退出游戲產(chǎn)生的問題是它們是交互式的,必須在一個(gè)實(shí)時(shí)的、不斷變化的側(cè)鏈上執(zhí)行。因此他們需要考慮用過的代幣和無效支出的可能的欺詐性退出,這最終阻止了監(jiān)視塔的有效使用,并要求用戶持有狀態(tài)(代幣歷史)。這迫使用戶進(jìn)入嚴(yán)格的同步要求,并要求每個(gè)用戶運(yùn)行一個(gè)完整的節(jié)點(diǎn)。
停止的雙向橋接
假設(shè)與要求
這篇文章使用了“側(cè)鏈”一詞,盡管它可以等效地替換為“具有延遲狀態(tài)執(zhí)行的執(zhí)行環(huán)境”,我們將在后面的文章中介紹。
資金通過單向橋存入側(cè)鏈(即資金被鎖定在合約中,沒有立即取回的方式)。側(cè)鏈上的執(zhí)行按正常情況進(jìn)行。盡管我們要求側(cè)鏈區(qū)塊標(biāo)頭在鏈上可用,并且對無效區(qū)塊和不可用數(shù)據(jù)都提供解決方案,但這種方式通常是正向的。無效的數(shù)據(jù)區(qū)塊可以通過有效性證明或欺詐證明解決(盡管首選欺詐證明),而不可用的數(shù)據(jù)可以通過按請求始終將所有數(shù)據(jù)作為調(diào)用數(shù)據(jù)發(fā)布在鏈上或通過使用非交互式鏈上數(shù)據(jù)可用性證明來解決
任何數(shù)據(jù)模型都可用于側(cè)鏈,包括UTXO數(shù)據(jù)模型(如比特幣),賬戶數(shù)據(jù)模型(如以太坊)或基于代幣的數(shù)據(jù)模型(如Plasma Cash實(shí)際上這里提出的方案可用于增強(qiáng)Plasma結(jié)構(gòu))。執(zhí)行模型還可以通過任意斷言和程序擴(kuò)展到廣義狀態(tài)執(zhí)行。
雙向橋接
我們注意到,側(cè)鏈退出游戲的復(fù)雜性、成本和安全假設(shè)的大部分允許無可信的雙向橋(即Plasma)源于這樣一個(gè)事實(shí),即在每一個(gè)退出嘗試中,通過永久性的、在非常緊迫的時(shí)間窗口內(nèi),必須執(zhí)行有效性。這使得這些方案特別容易受到鏈擁塞攻擊,并且大大限制了它們的安全容量。
我們可以通過簡單地拒絕提款來減少這種復(fù)雜性,直到側(cè)鏈已經(jīng)停止并且足夠長的時(shí)間已經(jīng)過去(比如,幾個(gè)月或一個(gè)系統(tǒng)參數(shù))。在此之前,任何人都可以發(fā)布欺詐證明或數(shù)據(jù)不可用證明來使任何數(shù)量的側(cè)鏈區(qū)塊失效。
停止側(cè)鏈
現(xiàn)在最大的懸而未決的問題是“誰來決定何時(shí)停止側(cè)鏈?”多重簽名聯(lián)合會可能具有過多的控制權(quán)或者可能永遠(yuǎn)不會停止?;跈?quán)益的投票是可操縱的,也可能導(dǎo)致側(cè)鏈永不停止。
事實(shí)證明,最簡單的答案是最優(yōu)雅的:側(cè)鏈在預(yù)定數(shù)量的固定塊之后簡單地停止。這也具有阻止側(cè)鏈僵化的良好效果:用戶將撤回資金,然后將其存入新的側(cè)鏈中,這可能會改善規(guī)格或減少安全漏洞??梢栽阱X包級別將其抽象出來,因此不是一個(gè)重要的UX阻止程序。
快速提款:流動性提供者
為了避免提款延遲,流動性提供者可以通過原子交換購買側(cè)鏈上的資金所有權(quán)。這與為Plasma提議的代幣化快速退出類似,盡管沒有資金被提取。流動性提供者將承擔(dān)欺詐和資本鎖定成本的相關(guān)風(fēng)險(xiǎn),并將其轉(zhuǎn)移給用戶以獲取利潤以換取流動性。但是通過運(yùn)行側(cè)鏈完整節(jié)點(diǎn),他們將能夠?qū)A(chǔ)資產(chǎn)的有效性充滿信心地進(jìn)行購買。
快速提款只需要一個(gè)流動性提供者,而無需執(zhí)行無信任的雙向橋梁。成為流動性提供者只需要提供流動資金而無其他許可。激勵(lì)流動性提供者以確保他們交換有效資金,并因此通過任何必要手段確保與之交換的側(cè)鏈技巧有效。
快速恢復(fù):跨側(cè)鏈發(fā)生
盡管現(xiàn)在我們有了讓用戶能夠通過流動性提供商迅速提取其資金以使用的方法,但用戶資金現(xiàn)在已處于主鏈上,這速度可能會很慢,昂貴,擁擠,或者涉及昂貴的gas費(fèi)用。為了解決這個(gè)問題,我們可以在舊的側(cè)鏈停止后立即啟動一個(gè)新的側(cè)鏈,可能會使用新規(guī)則(類似于硬分叉)。
新的側(cè)鏈可以立即接受存款,因此用戶可以從舊的側(cè)鏈進(jìn)行原子交換資金,然后將其無縫地存入新的側(cè)鏈(具有UI集成)。在舊的側(cè)鏈經(jīng)過很長時(shí)間發(fā)布欺詐證明之后,新的側(cè)鏈也可以接受批量取款到存款。
借助正確的錢包集成和無許可的流動性提供商網(wǎng)絡(luò),幾乎在所有情況下,這都使用戶甚至不知道自己使用的是特定的側(cè)鏈情況下進(jìn)行資金轉(zhuǎn)移。
來源: 區(qū)塊鏈研究實(shí)驗(yàn)室