三月將會是 Rollup 擴容方案的高光時刻。從進度看各個 Rollup 方案已經蓄勢待發,有些方案已經明確將會在 3 月上線,而 Rollup 擴容方案的上線,將會為行業帶重大影響,
但由于 Rollup 之間難以互通,這就造成了以太坊生態的割裂,不同協議之間難以實現協同性,對 DeFi 非常重要的可組合性也將支離破碎,那有沒有辦法解決這個問題呢?
今天聊一聊幾種想要解決跨 Rollup 交互問題的方案,看看如何將不同 Rollup Layer2 擴容方案連接起來,保持協議間的可組合性和協同性。
一、 Rollup 蓄勢待發
之前我們已經介紹了 Optimism、ZkSync、Arbitrum 以及 StarkEx 這四種主要的Rollup 擴容方案,這里再進行簡要敘述,以作為背景。
四種 Rollup 方案的詳細內容,可以點擊查看:《四種主流 Rollup 方案及熱門 DeFi Layer 2 進展盤點》。
不同的 Rollup 方案和 DeFi 協議的選擇
目前四種主要 Rollup 擴容方案各自都吸引到了一批生態用戶,其中:
Optimism 吸引了來自 Uniswap、Compound 的目光,更是在主網預啟動之后,得到了合成資產交易平臺 Synthetix 的深度參與。
Curve、StablePay、GitCoin 采用或計劃采用 Matter Labs 的 zkSync 方案作為擴容選擇。
Offchain Labs 所創建的 Arbitrum,有多個 DeFi 項目已開始測試或有計劃使用,包括 Bancor、Bounce、DODO、麥子錢包、Burgerswap、Hop、MCDEX 和 Swapr 等。
StarkEx 一邊,也不乏戰友。去中心化合約交易平臺 dYdX 會使用 StarkEx 所支持的 Layer2 網路,還有 Paraswap,DeversiFi 等應用,也會使用 StarkEx 的方案,
各 Rollup 擴容方案進展如何?
Optimism 二月份宣布完成 A 輪融資, 領投方為 Andreessen Horowitz (a16z),將于三月份上線主網。
Arbitrum 由學術性研究計劃而肇始,在計劃進入商業化階段時,曾申請專利。團隊近日表示,在征得普林斯頓大學部同意后,考慮到項目進入社區成熟階段,將放棄專利,Arbitrum 也公告主網處于即將上線階段。
zkSync 項目的創始團隊 Matter Labs 也公開了 A 輪融資的資訊,“聯合廣場風投(USV)領投該輪,此前的投資者 Placeholder、1kx 和 Dragonfly 繼續參與本輪,除此之外還有 zkSync 的生態合作方參與了投資,其中包括 Aave、Balancer、1inch、Curve、Binance、Coinbase Ventures、火幣、路印、Argent、MYKEY、imToken、Flexa、MoonPay、ripio、ZKValidator、CoinGecko”,Matter Labs 表示,zkSync 將于今年支持圖靈完備的智能合約(Solidity),
二、 Rollup 導致生態割裂
大多數 DeFi 協議都是基于智能合約而創建的,這些智能合約部署在 Layer1 的以太坊上,并通過各自的方式,連接到自己的 Layer2 網路。
對用戶來說,將資金存入智能合約,開始使用這些 Layer2 網路,智能合約會記錄所有的交易變化,用戶在 Layer2 網路上使用,能提升效率,降低成本,
但是如果 Synthetix 和 Uniswap 分別存在于不同的 Layer2 網路上,那么彼此之間可能就處于各自的孤島,如何交互會成為問題。
如何讓不同的擴容方案連接起來,保持 DeFi 協議最為人所知的可組合性和協作性?
在幣乎社區的一次線上 AMA 中,Vitalik 提到了目前 Rollup 等 Layer2 方案需要解決的兩個問題:
- 以太坊的社區很多應用喜歡調用智能合約,比如 DeFi 的項目,但目前的 ZK Rollup 不支持智能合約,只支持發幣、交易幣等簡單的應用。這是第一個問題。當我們有支持完整 EVM 的 Rollup 的時候, 我覺得會有更多的用戶搬到 Rollup,
- 現在 Rollup 相關的基礎設施生態還不多,比如我們還沒有解決不同的 Rollup 之間交易的問題。如果我有一些幣在 ZKsync 怎么把幣搬到路印?首先需要把幣從 ZKsync 的二層提取到以太坊底層,然后再轉移到 Loopring 的二層賬戶,如果這樣做了,交易費會不會特別高?
那么如何解決?
三、 Vitalik 提案:如何實現跨 Rollup 轉賬
幾天前以太坊聯合創始人 Vitalik Buterin 提了個想法,將不同的第二層擴展解決方案連接起來,這樣它們就可以相互“交談”,以保持 DeFi 協議的可組合性和協同性。
假設存在兩個 Rollup:A 和 B。用戶 Alice 想要將 Rollup A 上的一些代幣,換成 Rollup B 上的另外一些代幣,假設存在兩種情況:
- Rollup A 和 Rollup B 都能夠支持合約
- 只有一個 Rollup 支持智能合約,另一個 Rollup 只支持簡單的轉賬,
第一種情況,社區也有一份提案,名為 “Hop: Send Tokens Across Rollups(Hop: 跨 Rollup 發送代幣)”,地址見:https://ethresear.ch/t/hop-send-tokens-across-rollups/8581。
Vitalik 的提案,針對第二種情形,即:如果 RollupA 只支持簡單的轉賬交易,而 Rollup B 支持智能合約。
V 神提議,有一種簡單的方法,可以將這些各自孤立的合約網路連接起來。
跨 Rollup 轉賬的基本場景
“假設有一個交易中介,名為 Ivan(當然有很多中介可以選擇,這里只是舉例),Ivan 在 Rollup A 上有一個帳戶 IVAN_A (他完全控制該帳戶)。Ivan 也有一些資金存入到 Rollup B 上的智能合約 IVAN_B 中。”
設想有如下的操作:
- Alice 向 Rollup A 上的 IVAN_A 賬戶發起一筆交易,轉賬到 Rollup B 上的賬戶:ALICE_B。(Alice 在 Rollup A 上轉給 IVAN)
- Ivan 能怎么辦呢?他會通過 IVAN_B 賬戶,發送一筆交易,將扣除了手續費之后的代幣數量,發送到 ALICE_B 這個賬號中,
在第一步之后,第二步可以立即進行,如果 Ivan 證明第二筆交易跟第一筆交易之間的差異非常小,那么甚至可以在合約里設置規則,允許收取更高的費用。
“最壞的情況”是 Ivan 沒有像預期的那樣向 ALICE_B 發送代幣,在這種情況下,Alice 可以等待Rollup A上的交易確認,然后通過其他途徑獲得Rollup B 上的代幣用來支付跨 Rollup 傳輸的手續費,然后她自己就可以 claim,獲得資金,
按照 V 神的解釋,用戶 Alice 可以直接在 Rollup B 上完成,只需要讓 Rollup B 可以獲得在前一 批 Rollup 記錄之前的 L1 上的相應 hash 記錄,然后 RollupB 就能夠記錄下來 Merkle 分支,能夠在 Rollup 里驗證。
通俗來說,通過技術方式能夠確保用戶 Alice 在 Rollup A 上交易確認之后,可以有方式安全的在 Rollup B 上領取到對應的資金(支付了手續費之后),避免因為其中某一個或者幾個交易中介出現問題,導致資金受損,
無論這個交易中介 Ivan 是誰,為什么別人會選擇轉給他代幣,這些可以暫時不管;這里的含義是,存在連接層,讓存入到各類孤立的 Layer2 智能合約上的資金保持同步,實現跨 Rollup 轉賬的功能。
具體的實現細節,可能要了解在 Rollup B 上的合約 IVAN_B 的規則了,遵從下面的設定(為便于理解有所刪減):
- 如果任何人發起一個交易,發送若干數量的比特幣到 IVAN_A 這個賬戶(存在 Rollup A上),在 memo 中,包含了目標地址的資訊,那么,在若干時間之后,他們可以向合約 IVAN_B 發送一筆交易,該交易包含了轉賬的證明,該證明能夠將對應數量的比特幣提到在 Rollup B 上的目標地址之中,
- 提款要經過一些延遲(例如,1天的時間),是為了確保對應的轉賬批次和索引可以記錄到 Rollup A 的 Layer2 網路之中。
- 當 Ivan 在 IVAN_A 收到資金時,他可以自己將代幣發送到目標地址,他可以通過 IVAN_B 合約發送交易。
在這種情況下, Ivan 充當了結算商的角色,可以收取一定的轉賬手續費,讓 Rollup A 這個只支持簡單轉賬交易的Layer2 網路,和可以支持智能合約交易的 Rollup B,能夠連接起來。而通過轉賬證明、Merkle 索引等方式,也確保用戶資產能夠在轉移過程中不會遇到損失。
結算商充當了跨 Rollup 轉賬的協作角色
Ivan 自己也需要進行內部結算,畢竟有可能在某個 Rollup 上會耗盡資金。比如,用戶一直在通過 Rollup A 向 Rollup B 轉賬,需要通過 Ivan 在 Rollup B 上的儲備資金轉給用戶所指定的地址。這時候 Ivan 這類交易中介,就需要進行內部結算了,也因此這提案的限制,會要求 Ivan 這類中介商持有大量的資金在賬戶之中,以便服務用戶需求,
我們用法幣舉例,或許能更好理解。如果你從工商銀行向建設銀行的卡轉賬,盡管 ATM 機上顯示立即變更了,但是實際的結算過程是每天進行一次,只有在工行結算后,才將實際的資金轉給建行,更具體來說,是通過在央行的結算賬號之間進行的。
同樣的,從支持智能合約的 Rollup B 向只支持普通轉賬的 Rollup A 發起轉賬交易,也是類似的操作,
- Alice 發送代幣至合約賬號 IVAN_B, 并附上了目標地址;
- 若干時間之后,Alice 可以將資金取回;
- 不過如果中間 IVAN 這個中間商能夠提供證明至智能合約 IVAN_B, 附上鏈上的轉賬記錄等資訊,證明自己已經將資金在 Rollup A 上轉給了 Alice,那么,Alice 就不能再取回資金了,這時候,跨 Rollup 轉賬完成。
至此,我們大致理解了 Vitalik 提案之中所提到的跨 Rollup 轉賬原理,并且只需要其中一個 Rollup 支持智能合約即可實現,主要引入了 IVAN 這一中間商來支持跨 Rollup 轉賬,
至于如何設置限定,避免中間結算層的資金不足和浪費、以及轉賬的 Memo 應該如何設定等技術細節,可以查看 Vitalik 的提案所述: https://ethresear.ch/t/cross-rollup-dex-with-smart-contracts-only-on-the-destination-side/8778,
四、Hop 的跨 Rollup 轉賬方案
上文中,我們還提到過另外一個場景:兩個 Rollup,比如 ZKSync 和 Optimism,都支持智能合約,那么如何實現跨 Rollup 交互?
Hop 團隊成員 chris whinfrey 1 月 24 日在 ETH Research 論壇發了一篇帖子,介紹 Hop 如何跨 Rollup 進行去中心化的代幣轉賬,
內容如下:
Hop protocol 提供了去信任、可擴展的跨 Rollup 通訊橋。致力于:
- 快速輕松實現跨 Rollup 代幣轉移
- 可以快速從 Rollup 中退出
- 最終實現跨 Rollup 合約調用的功能
在 Hop 團隊看來,對于解決跨 Rollup 可組合性問題,他們提供了廣泛的解決方案,通過雙管齊下的方式實現:
- 創建一個跨網路橋接代幣,可以快速而經濟地從一個 Rollup 移動到另一個 Rollup ,或者在 Layer1 上創建,支持領取對應的底層資產。
- 使用自動做市商(AMM) 在每個 Rollup 上的每個橋接代幣和其對應的代幣之間進行交易,以便動態定價,并讓整個網路的流動性再平衡。
換句話說,借助于一個錨定代幣(比如 Bridge),在多個 Rollup 上都有部署,也可以在 Layer1 的以太坊網路上部署并支持 Layer1 跟 Layer2 的 Rollup 上的 Bridge 代幣的1:1錨定兌換。
如果用戶想要從 Rollup A 轉賬 100 個 BTC 到 Rollup B 上自己或者他人的賬號中,那么,就有如下的過程:
- 首先,在 Rollup A 上,通過 AMM 將這 100 個 ETH 兌換為 Bridge_A 代幣,即橋接代幣;
- 交易確認之后,Rollup B 上通過 AMM 將 Bridge_B 代幣兌換為 100 個 ETH 代幣,然后轉給用戶所指定的在 Rollup B 上的對應地址;
- 由于 Bridge_A 和 Bridge_B 都是同樣的代幣,只是起到了跨 Rollup 橋接的作用,他們的比值是 1:1 錨定的。如果有價值波動,套利者會進行無風險套利,搬磚搬平差價。
Hop 目前已有測試網上線 https://hop.exchange/send,
五、還有沒有其他方案?
除了上述方案之外,Celer 跟 Matic Network 的方向我們也一并聊聊。
Celer 的 Layer2 方案:原地擴容
大陸 DeFi 項目 Celer 提出了個新的思路,稱為“原地擴容”,原地的意思就是,讓 DeFi 項目繼續在 Layer1 即可,不需要專門去 Layer2 另外部署專門的版本,即可通過 Celer 的方案–Layer2.finance, 實現擴容。
根據 Celer 團隊的介紹,在該場景下,用戶的資產存放在 Layer2 鏈上(Celer 從基于 Optimistic Rollup 的方案開始,后續擴展升級,支持 ZK Rollup),然后用戶發送指令,告訴 Layer2.finance 協議自己的操作要求,指明將自己的多少資金、存放到哪些 DeFi 協議中,比如 Curve、AAVE、Compond 等位于以太坊 Layer1 網路上的 DeFi 協議。
通過這種方式,Layer2 充當了命令代理,用戶存儲資產 + 發送指令即可,而具體的業務邏輯,則仍然是交給了 Layer1 上的 DeFi 協議執行,而不同用戶的命令,可以通過合并交易的方式,更經濟的與 Layer1 合約交互。
該方案預計在3月份上線,
Matic Network 品牌重塑:Polygon
Polygon 原名為 Matic Network,則走了另外一條路,定調為 Layer2 聚合器,通過兩種方式實現擴容:
- 依賴以太坊網路,借助對應網路上的驗證者,并支持 Matic Plasma、zkRollups、Optimistic Rollups、Validium 等方案。
- 建立自己的子鏈體系和獨立的驗證節點,自行負責自己的安全性,這一方向,目前已經上線的是 Matic PoS 鏈。
Matic Network 升級之后的方案走得更遠,除了依托現有生態之外要獨立建立自己的生態體系,所付出的努力也要更多,據統計,目前有 80 多個 DApp 部署在 Polygon 上,涵蓋 DeFi、NFT、游戲等領域,
按照當前的進展,Matic Pos 鏈和 Matic Plasma 方案已上線,而目前還未支持 zk Rollup 和 Optimistic Rollup,這些方案會在未來上線,限于篇幅,對 Polygon 不再展開,Polygon 鏈接見:https://polygon.technology/
六、 小結
三月份會很熱鬧,Arbitrum、Optimism 的主網上線,標記著我們目前處在 Rollup 等 Layer2 方案的爆發前夜。Layer2 方案爭奪用戶的舉措,會成為三月份以及上半年的一大母題。
而不同 Layer2 (具體來說 Rollup)之間如何兼容,避免破壞 DeFi 的協作性?目前見到的這幾個方案,其實也都在摸著石頭過河,Vitalik 的提案,Hop 的實現,以及 Celer 的創意,或許能夠解決各自設想中的問題,但是跨 Rollup 實現 DeFi 的調用組合,仍然是個擺在前方的大難題。
另一方面,最近 Sushi 等協議在多條鏈上部署的動作,或許預示了另外一種可能性,跟 Hop 方案之中所提到的類似,借助于 AMM + 協議自身代幣的方式,或許許多 DeFi 協議會先嘗試在內部打通不同 Layer2 網路及 Layer1 之間的隔閡,形成閉環,
也許未來隨著更多 DeFi 加入 Layer2 的行列,更廣泛意義的 DeFi 聚合器大麥克將會出現,現在還只是剛剛開始,讀者朋友們不妨多想想多看看。
參考資料:
https://mp.weixin.qq.com/s/2HYIsxnUaovKYs19xQ_KbQ
https://www.trustnodes.com/2021/03/02/vitalik-buterin-proposes-cross-rollup-scaling-solution
https://www.chainnews.com/articles/872971457746.htm
https://hop.exchange/whitepaper.pdf