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