原文: 《A Trustless Sidechain-to-StarkEx Bridge Secured by Ethereum》
編譯:Starknet中文社區
概要
-在側鍊和L2 之間轉移資金的需求日益增長
-目前的方法:通過L1(以太坊)轉移,緩慢、昂貴但無需信任;或通過應用程序(或LP)轉移,需要信任,但快速、便宜
-我們提出了一個無需信任、安全且便宜的跨鏈橋,它依賴於以太坊的安全,能在側鍊和StarkEx 之間轉移資金
-通過在StarkEx 和多個側鏈之間擴展跨鏈橋,我們創造了一個高效跨鏈橋連接側鏈
簡介
雖然以太坊仍然是DeFi 的資本區塊鏈,具有很高的關注量和安全性,並與多條鏈建立了跨鏈橋。但以太坊也越來越擁擠,交易成本高且波動大。這促使用戶轉向側鏈(如Polygon、BSC、Solana)和L2( Optimistic Rollups 或ZK-Rollups)等平台。這些平台在成本、安全、性能和可用的應用程序方面各不相同,於是加劇了割裂現象。
因此,在不同平台之間轉移資金的需求越來越高。
提供側鏈之間無信任跨鏈的解決方案已經上線(比如Hop 或MovR)。然而,L2(特別是rollups)和側鏈之間的無信任互操作性還沒有得到解決。
與Optimistic Rollups 的互操作性設計本身有問題,因為較長的最終性時間增加運營資本要求,也就提高了轉移成本。
那麼ZK-Rollups 呢?在L1 和ZK-Rollups 的無需信任存取款已經可以在實時系統中使用(例如dYdX、DeversiFi、Loopring)。而且它們通過條件轉移縮短最終性時間。
但ZK-Rollups 目前與側鏈兼容性不佳。出現這個問題有其技術因素:目前部署在L1 上的ZK-Rollup 需要證明特定計算命題的有效性(即便有支持圖靈完備性的Cairo 語言,目前也是如此)。這就造成與需要在Rollup 內有一個“互操作智能合約”的方案不兼容。
我們的去中心化、無需許可的ZK-Rollup StarkNet 將改變這種狀況。但是我們的無需信任可擴展性引擎StarkEx 在此時此刻可以做什麼?我們將在下面演示StarkEx 如何支持與側鏈的互操作性。
StarkEx 自2020 年6 月開始在主網上運行,已完成數百萬筆交易,總價值達數十億美元。下文將介紹StarkEx 系統和方案,展示如何支持便宜且快速地將資金轉移到側鏈上,為在ZK-Rollup 和側鏈上的運行的dApp 之間更好的互操作性鋪平道路。但首先,先來想想什麼定義了一個好的互操作性系統。
互操作性最優解的特質
側鏈與L2 之間互操作性的好解決方案應該應用最小信任,並簡化用戶體驗。準確來說:
1. 最小化信任:應要求用戶以盡可能少信任實體
2. 快速最終性:資金應可以快速到位
3. 低成本:低成本的解決方案必須在各個平台上提供低交易價格和高資本跨鏈效率(因為流動性提供者承擔的成本將被用戶抵消)
L2 與側鏈之間的互操作性
迄今為止,用戶如果想要在側鍊和L2 直接轉移資金,就必須在兩個原生選項中做出選擇:無需信任且成本高、速度慢的方案(圖一);成本低、速度快,但需要信任的方案(圖二)。
(圖一:經L1 實現側鍊和L2 之間的資產轉移)
(圖二:經應用程序實現側鍊和L2 之間的資產轉移)
由StarkEx 支持的解決方案
圖三展示了我們提議的方案,用StarkEx 為L2 和側鏈之間提供互操作性,同時滿足上述提到的三個特徵。請注意,這個方案使用StarkEx 作為通道,同樣適用於側鏈之間的互操作性。
(圖三:由StarkEx 支持、以太坊提供安全保障的側鏈橋接)
StarkEx 的優勢
一些用戶可能不熟悉StarkEx,下文簡要介紹了其基本概念。讀者可以在此處查看StarkEx 完整文檔。如果只想讀懂本文提議的橋接方案,以下的背景已經足夠:
StarkEx 無需信任
由於StarkEx 依賴於STARK 證明,如果沒有證明該狀態確實有效,則L1 上不會發生狀態更新。這意味著資金只能根據在Cairo 實施的邏輯在StarkEx 內部易手,該邏輯強制執行以下操作:
-沒有用戶在相關轉賬請求上的有效簽名,就不能從用戶那裡轉移資金
- L1 上已提交的StarkEx 狀態反映了L2 環境中發生的所有資產轉移記錄
-同樣的資產轉移請求StarkEx 不能執行兩次
這樣的結果是,運營節點(例如交易所)無法盜取用戶的資產。強制交易、應急艙口和專門的升級機製完善了去信任這一版圖,使StarkEx 變得完全自託管。
StarkEx 速度快
一旦進入StarkEx 交易隊列,運營商可能會認為交易已結算。這意味著用戶可以即時隨後提交交易; 無需等待交易的鏈上實際結算後再提交!
StarkEx 成本低
在StarkEx 上,即使是複雜的永續交易,其成本也低至ZK Rollups 模式的1100 gas,這是比L1 執行相同邏輯便宜200 倍。 Validium 模式下的交易成本更加低。此外,StarkEx 資本效率高,一旦包含其執行的證明在鏈上發布,就會立即敲定交易— 要在交易後幾個小時。
從StarkEx 提款至側鏈
(圖四:StarkEx-側鏈的互操作性— 提款)
步驟1:用戶向應用程序發送鏈下請求,指定想要提取的資產數量和類型。應用程序驗證用戶在他們的StarkEx Vault 中是否有足夠的資金。
步驟2:應用程序在側鏈中的互操作合約中鎖定指定的資產數量和類型,然後將這些資金與(未簽名的)StarkEx 的轉移請求相結合。該請求命令StarkEx 將相關資產從用戶的Vault 轉移到應用程序的Vault 中。
步驟3:用戶簽署圖4 步驟2 中指定的轉移請求用以激活側鏈上的互操作合約。該交易立即解鎖用戶的資金以便在側鏈上使用。
回滾流程:如果用戶未能在設定時間範圍內簽名,則應用程序將從互操作性合約中收回資金。
步驟4:該應用程序現在可以在StarkEx 上執行轉賬請求並在那裡接收用戶的資金。
滿足需求
1. 該方案無需信任:用戶在向StarkEx 上的運營節點提供資金之前先在側鏈上獲得資金(如果沒有前者,後者就不可能發生)
StarkEx 強制要求,為了從用戶哪裡獲取資金,應用程序必須知道他們的簽名
提供簽名可以解鎖用戶在側鏈上的資金
2. 速度快:在兩倍的側鏈最終性時間後,用戶可以使用資金。
3. 交易成本低:不涉及L1 交易,應用程序可以在StarkEx 上立即取款,幾小時後在L1 上取款。
從側鏈存款至StarkEx
(圖五:StarkEx-側鏈的互操作性— 存款)
步驟1:用戶將其資金鎖定在互操作合約中的側鏈賬戶中。這些資金與StarkEx 上的特定轉賬請求參數關聯,指定錢可以轉到用戶的Vault。
步驟2:運營節點在StarkEx 內執行圖5 中步驟1 的轉賬請求,將資金釋放到用戶的StarkEx 金庫。用戶可以立即開始交易這些資金。
步驟3:步驟2 的轉賬與其他交易批量進行(圖5 步驟3.1 )。 StarkEx 向L1 證明這些交易已經發生(步驟3.2),鏈上狀態也相應更新(步驟3.3)。
步驟4:以太坊上的一個專用合約將新的L1 狀態傳輸給側鏈上的互操作合約。這個狀態,即StarkEx 上所有交易的Merkle 根,證實了用戶按照要求在StarkEx 上收到了資金。
步驟5:應用程序打開Merkle 樹承諾,向側鏈證明用戶確實在圖5 步驟2 中收到了StarkEx上的資金,為應用程序解鎖互操作性合約中的資金。
回滾流程:如果應用程序未能在有限的時間內完成步驟5,用戶可以從互操作性合約中取回側鏈上的資金。
滿足需求
1、本方案是無需信任:用戶先在StarkEx 上收到資金,然後應用程序才能在側鏈上認領資金。 StarkEx 的邏輯和證明強制要求,如果沒有前者,後者就不可能發生。
要想在側鏈上接收資金,運營節點必須通過StarkEx 向用戶展示相關轉賬記錄。
StarkEx 強制要求,只有在用戶收到資金之後才能獲得該轉賬記錄。
2、速度快:交易一旦在側鏈上確認,應用程序就可以立即將StarkEx 上的資金交給用戶。
3、 交易成本低:側鍊或者StarkEx 上的交易成本較低,雖然步驟四中L1 交易的成本較高,但這個費用由多個存款請求共同分擔。
此外,此應用程序在幾小時之後就可以在側鏈上獲取資金。
未來還有什麼?
StarkEx 的用戶很快就能用到上面介紹的去信任的互操作方案。
至於StarkNet,我們無需許可的去中心化ZK-Rollup:StarkNet Planets Alpha 1 已經上線Ropsten 測試網—— 我們計劃支持與其他生態系統(如側鏈) 的互操作性(譯者註:本文發表於2021年8 月,關於StarkNet 可參考最新更新)。由於StarkNet 證明了任何任意邏輯,它可以支持與此處描述類似的機制,或者部署現有的互操作性解決方案。
無論如何,StarkNet 促進了高度的互操作性,並將成為眾多尋求擴展到以太坊之外的DeFi 應用程序的互操作性的中心。