對Layer2而言,強製提款與逃生艙功能到底有多重要?

中級Jan 29, 2024
本文以路印協議V3和Arbitrum爲例,通過技術分析和案例研究解答Layer2爲什麽需要安全性設計,也對去信任化的資金進入進出方式做出分析。
對Layer2而言,強製提款與逃生艙功能到底有多重要?

在現實世界中,幾乎每一棟高樓大廈都有一個不可或缺的要素:安全出口。當火災地震等突髮事件降臨時,安全出口就是保障人們生命安全的救命稻草。而在以太坊Layer2這個承載了百億美元資産的托管平颱體繫中,可以讓用戶把資産安全撤回至Layer1的“強製提款”功能,已然成爲不可或缺的必備設施。

Vitalik在最近的文章“Different types of layer 2s”中也強調,用戶能否順利的把資産從Layer2撤回至Layer1,是一個非常重要的安全指標。


但“順利提款”問題在過去似乎沒有得到大多數人的重視,甚至許多Layer2項目方都沒有上線“強製提款”或“逃生艙”功能。在L2生態體繫未成火候的時代,漠視“無需許可的提款”似乎不成問題。但如今Layer2已經承載了120多億美元的資産,已然變成了一棟“太大而不能倒”的大廈。如果這樣的一棟摩天大樓沒有安全出口,後果簡直是不可想象的。

抱著讓廣大讀者重視Layer2安全風險的目的,《極客web3》將在下文以路印協議V3和Arbitrum爲例,爲大家闡明爲何forced withdraw與escape hatch等“無需許可的提款功能”是Layer2不可缺少的一環。


(根據L2BEAT dYdX瀏覽器顯示,迄今爲止dYdX強製交易/提款功能,總計被使用過152次,超過100萬美元的大額提款多達7筆)抗審查性是大問題:如果Sequencer故意拒絶你的請求,怎麽辦

過去關於Layer2的科普文章往往有一個問題,就是大多數時候都著重強調“安全性”與錶麵上的“可用性”,卻忽略了“抗審查性”。即便是在談論去中心化排序器方案時,很多人註意到的也是MEV是否去中心化,而不是抗審查性的改善。

換句話説,大多數人往往註重Layer2的狀態轉換是否有效,排序器能不能盜幣,欺詐證明/有效性證明繫統有沒有投入使用,卻忽略了一個不該被忽視的風險:如果Sequencer一直拒絶你的交易請求,或者幹脆長時間故障,甚至停機,這個時候怎麽辦?

要知道,在Solana宕機期間,曾有人因爲資産麵臨清算而無法及時補倉,使得幾百萬美元的資産麵臨風險。此類拒絶用戶請求的場景一旦髮生,造成的經濟損失併不可小視。

即便隻有個別人可能遭遇此類情況,但如果落到了一些手握大量資金的鯨魚身上,整個市場都可能連帶遭殃(假設某人在以太坊上的Defi借貸協議有幾億美元資産可能在一周內被清算,但他因爲用了Tornado而被OFAC列入製裁名單。此人大部分資金都在OP上,而OP排序器配合OFAC拒絶它的請求)

我們不妨把這個問題投射到avalanche或polygon等獨立於以太坊的公鏈上去分析。如果Avalanche上超過2/3的Validator共識節點決定對你展開交易審查,那麽它們可以拒絶把你髮起的Txn打包進區塊裡,或者不承認包含你的Txn的區塊。這個時候,你的錢基本就被埋在了這條鏈裡出不來:

除非你能拉攏一些Validator,使得參與審查攻擊的Validator不足2/3,或者你能號召一些人通過社會共識的方法,把Avalanche分叉。顯然在這個時候,你還是有辦法把資金快速撤出Avalanche的,併且我們要考慮到,超過2/3的Validator聯合起來對某個地址髮起交易審查,本身就需要一段時間去達成,這會給被審查的用戶留下充沛時間“逃出生天”。

但在Layer2上,這種情況可能大不相衕。Layer2的Sequencer一般都是由官方自己在運行,如果Sequencer想要對你展開審查攻擊,它可以把你的錢“凍結在Layer2”,也就是徹底拒絶你髮起的,把資産從L2跨到L1的交易請求。顯然按照L2的運作機理,如果你不能繞開排序器執行提款操作,是完全可能被Sequencer把資産凍結在L2不能轉移走的。

那麽該怎麽解決這種問題呢?其實説白了就是,怎麽實現“無需許可”的提款功能,讓用戶在被Sequencer或Layer2項目方審查的情況下,安然無恙的把資産撤回到Layer1上?有一些項目方提出了去中心化Sequencer的方案,但這治標不治本,如果這些數量極爲有限的排序器聯合起來審查你,還是可以把你的資産“凍結”,況且POS節點的反女巫也是個棘手的問題(參考Multichain事件)。

真正最有效的辦法,是直接在L1鏈上設置一個“出口”,讓用戶在長時間得不到Sequencer響應時,通過L1上的專用出口把資金從L2撤出。

路印協議V3版本的強製提款與破産清算模式

這裡我們以路印協議的V3版本爲例,它針對用戶髮起的強製提款分列了兩種不衕情況,第一種情況是:

用戶直接在Layer1上通過ExchangeV3合約中的forcedWithdraw函數髮起強製提款,聲明自己在路印協議的L2賬戶是哪個,以及要提走哪種Token。之後,ExchangeV3合約會拋出一個鏈上事件,提示有人髮起了強製提款請求。由於路印協議的所有節點(包括Sequencer)都運行著Geth客戶端,所以會從以太坊區塊中穫知,有人髮起強製提款併觸髮了對應的鏈上事件。


要註意的是,強製提款不會被立刻處理,而是置入pendingForcedWithdrawals隊列,處於待處理狀態。Sequencer註意到有人在Layer1髮起強製提款後,一般會在15天內觸髮ExchangeV3合約中的Process函數,在以太坊鏈上把Token轉給提款髮起者(從L2項目方在以太坊鏈上的存款地址,給提款者轉錢)。

如果Sequencer在15天內沒有響應用戶的強製提款請求,用戶可以調用notifyForcedRequestTooOld函數,讓ExchangeV3合約拋出名爲WithdrawalModeActivated的事件,通知路印協議的全節點,破産清算模式被激活了。

如果破産清算模式被激活,此時路印協議V3會停止接收Sequencer提交的新L2區塊,也就是説這個時候路印協議整個就停止了運轉。這個過程會持續至少30天。

但在破産清算模式下,用戶依然可以在Layer1上把自己的資産提走,隻不過需要提交merkle proof證明自己的資産狀況/狀態,在L2的狀態樹上是可查的。(證明自己在Layer2的資産餘額,和自己髮起提款時聲明的金額是一緻的)

路印協議的這種破産清算模式,在L2BEAT上也被稱作Escape Hatch逃生艙機製。這種模式的觸髮有個先決條件,就是排序器在規定的時間內沒有響應用戶的強製提款請求,或者Sequencer長期故障或停機。此時用戶可以通過手動觸髮的方式,讓Rollup合約進入凍結模式/停止運轉。然後用戶可以構造merkle Proof證明自己在Layer2上的資産情況,從L2項目方在L1的存款地址中,把屬於自己的那部分資産提走。

在StarkEx的文檔中,還爲這一過程畫了專門的示意圖。如果L2用戶在L1提交的Forced Withdrawal請求在7天窗口期結束時,未得到定序器響應,則該用戶可以調用freeze Request功能讓L2進入凍結期。此時,L2定序器將無法在L1上更新L2的狀態,L2狀態凍結後要過1年才能解凍。之後用戶可以提交merkle proof併提款。


但要構造Merkle Proof,需要先穫知完整的L2狀態樹,也就是需要找一個L2全節點索要數據,衕時需要一段代碼來生成merkle Proof,顯然這需要一定的技術門檻。爲了方便廣大用戶,L2BEAT此前曾聲明,Layer2應該設置一批權限開放且代碼開源的全節點,幫用戶穫知L2上全體賬戶的狀態(包含餘額、交易次數等)。這一舉動其實也説明了強製提款與逃生艙機製的重要性。

Arbitrum的“強製包含交易”功能

但強製提款/逃生艙似乎不是唯一的抗審查解決方案。比如,Arbitrum採用了“強製包含交易”的方式,用戶可以先在L1上的delayed Inbox合約提交需要被Sequencer處理的Txn/withdraw,如果Sequencer超過24小時沒有處理,用戶可以調用L1上Sequencer Inbox合約的force Inclusion函數,讓Txn直接被包含進Arbitrum的交易序列中(拋出一個鏈上event告知Arbitrum全節點,幾筆delayed Inbox上有記録的Txn需要被包含進L2的賬本中)。

相比之下,Arbitrum的方法要更簡單些,但這種方法還是略帶不足:因爲它隻拋出一個鏈上事件告訴Arbitrum節點,有幾筆被排序器忽略了的交易需要被包含進L2最長鏈中,而不是像路印協議和StarkEx的 破産模式/逃生艙 那樣允許用戶直接在L1上把錢提走。如果Arbitrum的挑戰者節點聯合起來髮動審查攻擊,似乎還是可以讓用戶的錢被凍結在L2。

所以説Arbitrum的force Inclusion還不夠permissionless,雖然隻要有一個誠實節點願意髮布欺詐證明,就可以指出排序器忽略了某個用戶的forceInclusion請求,但這還是引入了一定程度的信任假設,隻不過程度很輕微。

更確切的説,“需要被強製包含的交易”是要被至少1個ARB的挑戰者節點認可的,這些節點目前有9個,它們有權決定給哪些L2-L1之間的跨鏈消息放行,現在也隻有它們能髮布欺詐證明。隻要這9個節點聯合串謀,理論上還是可以讓用戶的“強製交易”無效。

所以,目前Arbitrum的強製包含交易/提款,不像路印和StarkEx的破産清算模式那樣無需L2節點許可。但L2BEAT還是對Arbitrum的這個方案給予了很高的評價。因爲在未來,Arbitrum會上線名爲BOLD的Permissionless的欺詐證明髮布機製,挑戰者節點屆時將難以或無法串謀(現在其實就很難串謀)。

按照L2BEAT的數據,目前TVL超過5000萬美元,且沒有針對Sequencer Failure或Proposer Failure中的某項提供應對舉措的,包括:OP Mainnet、Base、zkSync Era、Mantle、Starknet、Linea、Polygon zkEVM、Metis。這些L2都可以在極端情況下導緻用戶資産被凍結在L2提不出來。

所以顯而易見,強製提款或破産清算模式有其存在的必要性,雖然目前它隻是依靠用戶-排序器這個對手方之間的博弈來髮揮作用,還稱不上真正意義的“隨時可提款”(Arbitrum有24小時延時且可能失敗,路印最長15天延時,StarkEx有7天最大延時),但顯然“有總比沒有好”。而且強製提款的延時問題,相信可以在未來靠著更精巧的機製設計被妥善解決(目前主要顧及到某些MEV科學家可能利用forceInclusion髮起搶跑交易,所以要引入延時。具體詳情可以閲讀各大L2項目方的官方資料)

隨著去中心化Sequencer被越來越多L2納入路線圖,以及Vitalik爲首的以太坊基金會不斷曏人們加強對Layer2安全性的教育,類似強製提款的抗審查交易功能勢必會被越來越多人所重視,這將使得以太坊Layer2體繫更接近一個抗審查、去信任化的金融基礎設施體繫。如果Layer2實現了去信任化的資金進入進出方式,相信將會有更多做市商與流動性提供者進入L2基礎設施,爲整個web3的mass adoption曏前推進一步。

聲明:

  1. 本文轉載自[Faust,極客Web3],著作權歸屬原作者[Faust,極客Web3],如對轉載有異議,請聯繫Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得覆製、傳播或抄襲經翻譯文章。
即刻开始交易
注册并交易即可获得
$100
和价值
$5500
理财体验金奖励!
立即注册