Layer 2 擴容解決方案是當前以太坊社區乃至整個區塊鏈技術圈最熱門的話題,而Arbitrum 在率先部署主網測試版之後,又獲得Uniswap 、 Compound等核心DeFi 項目的支持,無疑成為了當下最引人注目的Layer 2 方案。
對於打算從以太坊主網遷移到Layer 2 網絡的用戶來說,Layer 2 方案的安全機制是其最關心的議題之一。本文將全面解析Arbitrum 的安全機制,包括:Arbitrum 是如何繼承以太坊安全性的、為什麼挑戰期設置為7 天、如何防禦審查攻擊等。
繼承以太坊安全性
大家都知道Layer 2 相比其他擴容方案,最大的優勢之一就是完全繼承以太坊安全性,但可能大多數人知其然而不知其所以然,Arbitrum 到底是如何繼承以太坊的安全性的呢?
首先我們再回顧下Optimistic Rollup 方案的主要特點:
- 在Rollup 方案中,交易數據被寫入L1 (作為calldata),但合約的實際計算和存儲則是在L2 上完成,以此來實現擴容;
- 某個驗證者(Validator),會將一個斷言提交到L1,可以理解為該斷言就是將一個Rollup 區塊內的所有交易、結果打包到了L1 的一筆交易裡;
- 而Optimistic 主要是指系統對待斷言的態度是樂觀的,即當一個斷言發佈時,它不需要包含任何保證其有效性的附帶證明,相反,會有一個時間窗口供任何質疑的人去挑戰。挑戰成功,則這個斷言包含的所有交易都將被回撤,發布斷言的驗證者將被沒收所有押金;挑戰失敗/ 無人挑戰,則斷言被接受並獲得終局性。
了解了具體方案,我們再從幾個角度考量Arbitrum 是如何繼承以太坊安全性的。
數據可用性
在L2 上執行的所有交易,首先都會被提交到L1 上運行的Inbox 智能合約中,即作為calldata 寫入L1。任何人都可以通過這些數據,還原L2 上的所有交易,並將L2 恢復到中斷之前的正確狀態。這些數據的可用性是通過L1 來保證的,也因此人們完全不用擔心L2 的故障或者下線會導致自己在L2 上的資產受損。
AnyTrust
AnyTrust 是Rollup 協議的關鍵安全屬性,它表示任何一個誠實的驗證者都可以強制確認L2 鏈的正確執行,也就是說無論有多少想作惡的人試圖阻止你,你或你僱傭的人都可以強制正確處理你自己的交易,你無須信任任何第三方。
緊急退出機制
目前Arbitrum 並沒有專門定義緊急退出機制,但一系列的安全機制已經確保了用戶可以達成緊急退出的目的:
- 首先,數據可用性確保了用戶在二層的資產、數據隨時可以從L1 恢復,永遠不會丟失;
- 其次,任何用戶都可以將交易請求發送到L1 的Inbox 合約中,來強制發起提現;
- 最後,AnyTrust 機制確保了用戶自己就可以強制L2 正確的處理這筆提現交易。
以上三點,用戶都無須信任任何第三方,這充分錶明Arbitrum 完全繼承了以太坊的安全性,是Trustless 的。
為什麼挑戰期是7 天
Arbitrum 是多輪交互式Rollup 方案,方案會首先樂觀的認為驗證者提出的斷言是正確的,直到在挑戰期內由其他驗證者提出挑戰或反駁。大多數情況下並不會出現挑戰,因此整個系統得以更快速和低成本的推進執行。
顯而易見,挑戰期越長,整個系統會越安全,但同時用戶體驗則會越差(因為用戶提款時需要等待一個挑戰期結束),所以如何找出挑戰期的最優時長?
Arbitrum 團隊提出了這樣的模型來計算最優挑戰期時長:
- 假設一個挑戰期為C 個區塊的時長,攻擊者可以獲得的最大收益為L2 上的所有資產V,則攻擊者得到的預期收益為:V exp(-AC),注:exp 指e 的指數函數,A 為某個常數,AC 前的負號指C 和預期收益成反比;
- 為了應對攻擊,斷言者需要質押的資產遠遠大於攻擊可得的收益,我們假設為10 倍,則斷言者的成本為10V exp(-AC)I,I 為資金利率;
- 我們再假設提現用戶被鎖定在挑戰期內的提現資金為CWV (W 為小數,WV 即L2 總資產的一部分,每一個時間點將有C 個區塊未結束挑戰),則用戶的資金成本為CWVI;
- 最佳挑戰期時長即斷言者和提現用戶的資金總成本最低,即C 取何值時,10V exp(-AC)I+CWVI 最小。 V 和I 在前後兩項中都存在,因此不影響最小點,可將其約掉,我們只需對C 求導,再令倒數等於0,然後解出C:
C = ln(10A/W)
現在我們將某個合理數值代入上面的公式,即可得到一個粗略的最優挑戰期。
假設一個區塊的時間內持續審查的成功率高達99.99%,則A=-ln(0.9999)=0.0001;
再假設每天都有1% 的資金需要取出,按15 秒1 個區塊計算,每個區塊的取款比例約為W=0.000002;
代入公式得出最優挑戰期為C=62146 個區塊,即10.79 天,這與Arbitrum 團隊最終選擇的7 天最優挑戰期已經非常接近。
如何防禦審查攻擊
這一節我們討論Arbitrum 如何應對主要的4 種審查攻擊:分叉攻擊、拒絕服務攻擊、阻塞攻擊、飽和攻擊。
分叉攻擊:礦工串通(或被賄賂)棄置包含正常挑戰的區塊,並通過分叉,使另一條沒有包含任何挑戰的區塊鏈被接受。
首先,由於挑戰者的存在,一旦發生分叉攻擊,必然會被某個挑戰者發現。而當大家發現所處的區塊鏈存在算力壟斷者(這是分叉攻擊的前提條件),並且會為了利益不受約束的破壞規則時,對於這個區塊鏈將會是毀滅性的打擊,Arbitrum 是否採取挑戰期設計模式已經無關緊要了。
拒絕服務攻擊:礦工密謀(或被賄賂)在出塊時不打包正常的挑戰。
我們假設壟斷者控制了90% 的算力,挑戰窗口期為50 個區塊,那麼需要連續50 個區塊都由壟斷者打包才能完成攻擊,其概率為0.9 的50 次方,僅為0.5% ,而實際的挑戰期遠遠多於50 個區塊,因此攻擊成功概率極小。而在Arbitrum 的設計中,每次攻擊失敗,攻擊者都將支付大量的罰金,所以發起拒絕服務攻擊對壟斷者而言是相當不經濟的。
阻塞攻擊:攻擊者通過傳統的拒絕服務攻擊(DoS),使得其他人無法提出挑戰(無法發出包含挑戰的交易)
由於只要出現一個正直的挑戰者,攻擊就會失敗,所以攻擊者必須阻止“所有”可能的挑戰者,如果挑戰者足夠多,這是很難完成的。更進一步的,利益相關方可能會僱傭暗中監視者,它們作為後備方案,只有在參與方來不及或難以發出挑戰時才介入,攻擊者根本無法提前辨別這些潛伏的挑戰者,自然也沒辦法對其發起DoS 攻擊。
飽和攻擊:攻擊者在很短的時間內提出大量的鏈上斷言,讓其他人來不及在時間窗口內對所有斷言進行檢查和挑戰。
Arbitrum 防禦飽和攻擊的方法是對提出斷言的頻率進行限制,保證協議在設定的挑戰窗口期內的任何時間點,全網都有足夠的能力去檢查待處理的斷言和挑戰。具體來說,會針對一條Rollup 區塊鏈的智能合約處理能力實施速度限制,使得即使存在某個能快速提出大量斷言的人,最終也不得不慢下來。
綜上所述,我們基本上不需要對分叉攻擊過於擔心,因為存在一個作惡的算力壟斷者讓這條區塊鏈毫無吸引力;至於另外三種審查攻擊,Arbitrum 都能夠通過合理的設計和實踐進行有效的防禦。
Sequencer Mode 的優勢和風險
Sequencer Mode 是Arbitrum 的一個可選特性,主網上線的初期,官方( Offchain Labs )會運營唯一的Sequencer 節點。
Sequencer 被賦予權利,可以控制每筆交易在Inbox 中的順序,從而確保它可以立即確定客戶交易的結果,而無須等待以太坊上5 分鐘左右的區塊確認時間,甚至也不需要等待15 秒的區塊創建時間。
同時,一個正直的Sequencer 可以有效的防禦搶跑攻擊(Front-Running Attack)。
因此,由官方運營一個中心化的正直的Sequencer 節點,對項目早期的發展可能是非常有益的,可以減少很多麻煩,但安全風險也顯而易見(雖然很難想像官方會去自己作惡)。所幸官方承諾,會在技術成熟後,盡快切換至去中心化的多Sequencer 節點方案。
除此以外,Inbox 會被一分為二,一個接受Sequencer 提交的交易,一個接受常規的Aggregator 或者用戶提交的交易,這也給不信任中心化Sequencer 的用戶提供了另一個選擇。
寫在最後
DeGate 作為專注以太坊二層的去中心化交易所,用戶的資產安全是我們的首要考量。通過對Arbitrum 安全機制的全面研究,可以看出官方確實在安全問題上下了很大功夫,方方面面考慮的較為全面,且有相應的文檔對其安全理念進行了闡述。
DeGate 將積極研究在Arbitrum 上搭建部署相關產品,並將很快上線DeGate Bridge 服務,為用戶提供方便快捷的Arbitrum 和以太坊之間的跨鏈資產橋。