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

金色财经_

作者:Faust,極客Web3

在現實世界中,幾乎每一棟高樓大廈都有一個不可或缺的要素:安全出口。 當火災地震等突發事件降臨時,安全出口就是保障人們生命安全的救命稻草。 而在乙太坊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向前推進一步。

查看原文
免責聲明:本頁面資訊可能來自第三方,不代表 Gate 的觀點或意見。頁面顯示的內容僅供參考,不構成任何財務、投資或法律建議。Gate 對資訊的準確性、完整性不作保證,對因使用本資訊而產生的任何損失不承擔責任。虛擬資產投資屬高風險行為,價格波動劇烈,您可能損失全部投資本金。請充分了解相關風險,並根據自身財務狀況和風險承受能力謹慎決策。具體內容詳見聲明
留言
0/400
暫無留言