一文深入分析 Arbitrum 的安全機制

買賣虛擬貨幣

來源 | Hackernoon

作者 |DeGate

Layer 2 擴容解決方案是當前以太坊社羣熱議的話題,也是整個區塊鏈技術社羣正在討論的熱門話題。基於 Optimistic Rollups 的 Arbitrum 是目前最具有吸引力的 Layer 2 擴容解決方案之一。它率先部署了主網 beta 版本,並獲得了 UniswapCompound 等核心 DeFi 專案的支援。

對於打算從以太坊主網遷移至 Layer 2 的使用者來說,他們最關心的一個問題就是 Layer 2 解決方案的安全機制如何。本文將深入探討 Arbitrum 的安全機制,包括:Arbitrum 如何植根於以太坊的安全性中;為什麼挑戰期是七天;以及如何防禦審查攻擊。

植根於以太坊的安全性中

眾所周知 Layer 2 解決方案與其他擴容解決方案相比,最大的一個優勢就是其安全性依賴於以太坊主網的安全性。然而,大部分人可能都知道這個道理,但卻不知道為什麼。那麼 Arbitrum 如何根植於以太坊的安全性中呢?

我們首先來回顧一下 Optimistic Rollup 解決方案的主要特點:

在一個 Rollup 解決方案中,交易 (作為 calldata) 編寫在 L1 上,但是其實際計算和合約的儲存在 L2 上完成,以實現擴容。

驗證者在 L1 上釋出一個斷言 (assertion),可以理解為將所有交易和結果打包成一個 Rollup 區塊,然後傳送到 L1 的交易中。

Optimistic Rollup 之所以稱為”樂觀的“ rollup 解決方案,因為當一個斷言釋出時,其不包含保證其有效性的隨附證明,即預設該斷言有效。相反,屆時會有一個時間視窗,而任何人都可以在這個時間內挑戰該斷言。如果挑戰成功,那麼此斷言內的所有交易都將被撤回,並且提出斷言的人會失去其保證金。如果挑戰期到期且沒人挑戰成功,那麼斷言就會被最終確認。

在瞭解了這個解決方案之後,我們再從幾個角度來思考 Arbitrum 是如何植根於以太坊的安全性的。

資料可用性

所有在 L2 上執行的交易首先會提交至在 L1 上執行的收件箱智慧合約,然後作為 calldata 編寫進 L1 中。任何人都可以利用該資料來檢索回 L2 上的所有交易並將 L2 恢復到其原始狀態。這些資料可用性透過 L1 得到保證,使用者不必擔心 L2 因出現故障而導致其損失 L2 上的資產。

AnyTrust

AnyTrust 是 Rollup 協議的關鍵安全功能。這個功能允許任意誠實驗證者確保交易在 L2 上正確地執行。無論有多少攻擊者惡意阻止交易的進行,你或者你僱傭的任何人都能夠強制確保交易的正確執行,而無需信任任何第三方。

緊急退出機制

Arbitrum 當前沒有一個特定的緊急退出機制,但是有一系列安全機制來確保使用者可以安全退出。

首先,資料可用性確保使用者儲存在 L2 上的資產和資料可以在任意時候從 L1 上恢復,並且永遠不會丟失。

其次,任意使用者都能向 L1 上的收件箱合約傳送一個交易請求來強制退出。

最後,AnyTrust 機制確保使用者可以強制 L2 正確地處理退出交易。

在以上三點中,使用者不需要信任任意第三方,這充分地展示了 Arbitrum 植根於以太坊的安全性中,並且是去信任的。

為什麼挑戰期是七天

Arbitrum 是一個多輪互動的 Rollup 解決方案。這個解決方案首先會樂觀地相信驗證者做出的斷言是有效的,而在挑戰期其他驗證者可能會對此提出質疑和挑戰。在大多數情況下,不會有挑戰提出,那麼整個系統就可以更高效且成本更低。

顯然,挑戰期越長,整個系統就越安全,但同時使用者體驗也會更差 (因為使用者需要等到挑戰期結束之後才能退出)。那麼我們是如何確定最佳的挑戰時期呢?

Arbitrum 團隊提出這種模型來計算最佳的挑戰時期:

假設一個挑戰時期等於 C 區塊的長度,以及攻擊者在 L2 上可以獲得的最大值為 V。

則攻擊者獲得的預期價值為 V exp(-AC)。

註解:exp 為指數函式”e“,A 為某常數 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 = ln(10A / W) / A。

現在我們將一些合理的數字插入上述等式中,以獲得一個大概的最佳挑戰期限。

假設一個區塊時間內的連續審查成功率高達 99.99%,即 A = -ln(0.99) = 0.01。

進一步假設每天提款為總值的 1%,並且每個區塊的提款百分比約為 W=0.000002,基於出塊時間為 15 秒的前提。

將這些代入公式中,我們得到的最佳挑戰期限為 C = 62146 區塊,即 10.79 天。這與 Arbitrum 團隊最終選擇的 7 天挑戰期限非常接近。

如何防禦審查攻擊

在這一部分,我們討論了 Arbitrum 如何防禦四種主要的審查攻擊:分叉攻擊 (forking attacks)、迴避攻擊 (shunning attacks)、干擾攻擊 (jamming attacks) 和快速攻擊 (speed demon attacks)。

分叉攻擊 (forking attacks):礦工合謀 (或受賄) 丟棄包含正常挑戰的區塊,以便接受不包含挑戰的替代鏈。

首先,由於挑戰者的存在,一旦發生分叉攻擊,難免會被某個挑戰者發現。而當大家發現區塊鏈中的挖礦算力壟斷者 (這是分叉攻擊的先決條件) 為了盈利而肆無忌憚地違反規則時,區塊鏈本身就被摧毀了。此時,Arbitrum 是否採用挑戰期設計模型還存在爭議。

迴避攻擊 (shunning attacks): 礦工們合謀 (或受賄) 忽略掉他們生產出的區塊中的普通挑戰。

我們假設壟斷者控制了 90% 的挖礦算力,並且期限為 50 個區塊。那麼壟斷者需要將 50 個連續的區塊打包起來才能完成攻擊。這個概率是 0.9 的 50 次方,也就是 0.5%。而實際挑戰期限遠不止 50 個區塊,所以攻擊成功的概率極小。在 Arbitrum 的設計中,攻擊者在攻擊失敗時會支付鉅額罰款,因此壟斷者發起迴避攻擊是非常不划算的。

干擾攻擊 (jamming attacks) :攻擊者發起”老式的拒絕服務攻擊 (DoS)“ 來阻止任何一方釋出任何交易 (不能釋出包含挑戰的交易)。

因為只要有一個正直的挑戰者,攻擊就會失敗,所以攻擊者必須阻止所有有可能的挑戰者。如果有很多這樣的挑戰者,攻擊將很難完成。更糟糕的是,任意利益相關的一方都可能僱傭一個沉默的監察者以作為備用計劃。他們只在主要參與方太晚釋出挑戰或者在釋出挑戰時遇到了困難時才會介入。攻擊者並不知道網路中是否有沉默的監察者,或者儘管知道他們存在,也不知道他們是誰,所有在這些監察者有實際行動之前,攻擊者都無法向他們發起 DoS 攻擊。

快速攻擊 (speed demon attacks):攻擊者生成鏈上斷言的速度十分快,以至於其他方不能在時間截止之前檢查並且挑戰所有斷言。

Arbtirum 採取的應對方法是:限制建立斷言的速率,以確保在任何時候檢查未決斷言和挑戰其中一個斷言所需的總工作量能夠在協議的期限之內完成。具體來說,對 Rollup 鏈中的智慧合約運作程序施加速度限制,因此即使有人能夠快速生成大量斷言,它最終也必須慢下來。

總之,我們不需要太擔心分叉攻擊。如果出現惡意挖礦算力壟斷的情況,那麼可以說這個區塊鏈已經基本上變得沒有吸引力了。Arbitrum 可以透過適當的設計或者實踐來防禦其他三種審查攻擊。

序列器模式 (Sequencer Mode) 的優勢和風險

Sequencer 模式是 Arbitrum 的一個可選功能,Offchain Labs 在主網的釋出版本上執行唯一的 Sequencer 節點。

Sequencer 被賦予有限的權力來控制收件箱中每筆交易的排序,以保證使用者的交易結果能夠立即被確定,無需在以太坊上等待五分鐘至區塊被確認,甚至不需要像在以太坊一樣等待 15 秒的出塊時間。

同時,一個表現良好的 sequencer 可以有效地防禦搶跑攻擊。

因此,一個由 Offchain Labs 運營的中心化的、表現良好的 Sequencer 節點,對於專案的早期開發是非常有利的,併為其減少了很多麻煩。但是安全隱患也很明顯 (雖然很難想象 Offchain Labs 會作惡,但也不排除這樣的可能性)。Offchain Labs 承諾在技術成熟後立即切換到去中心化的、多個 Sequencer 節點的解決方案。

此外,收件箱也將一分為二,一個接受由 Sequencer 提交的交易,另一個則接受由常規聚合器或者使用者提交的交易,這也為不信任中心化的 Sequencer 的使用者提供了另一種選擇。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读