下個月,Tracer 將在 Arbitrum 上部署其永續掉期產品。本文將幫助你深入理解Arbitrum 背後的機制,以便你在L2 環境中通過Tracer 交易時獲得更好的體驗。
架構摘要
由於Arbitrum 是針對以太坊L1 的L2 可擴展性方案,Arbitrum 的架構有部分在L1 上,有部分在L2 上。 Arbitrum 在L1 上的組件是EthBridge,由一組以太坊合約構成。 EthBridge 負責對Arbitrum Rollup 協議進行仲裁,以及維護Arbitrum rollup 在以太坊鏈上的收件箱和發件箱。用戶、L1 合約和全節點可以通過以太坊鏈上的收件箱和發件箱將其交易發送至Arbitrum 鏈,並觀察這些交易的結果。 Arbitrum 虛擬機(AVM)是EthBridge 提供的功能,是L1 和L2 之間的網關。 AVM 能夠讀取輸入,並基於這些輸入執行計算,從而產生輸出。 ArbOS 運行在AVM 上,確保智能合約在Arbitrum 鏈上執行。 ArbOS 完全存在於L2 上,並像在以太坊上一樣運行EVM 合約。
- Arbitrum 架構圖-
Arbitrum Rollup 協議
收件箱內消息的順序決定了交易的結果。因此,任何查看收件箱的人都能知道交易的結果,只要親自執行這些交易即可。 Arbitrum Rollup 協議負責確認已經發生的交易的結果。參與協議的用戶被稱為驗證者;如果驗證者在質押合約中存入ETH,就會變成質押者,可以給Arbitrum 鏈上的區塊押注。成為驗證者和質押者都無需經過許可。在安全性方面,只需要一個誠實的驗證者來確保Arbitrum 鏈正確執行。這使得Arbitrum 鏈具備與以太坊鏈相同程度的免信任性。 Arbitrum 假設至少有一位驗證者是誠實的。 Arbitrum Rollup 協議作用於Arbitrum Rollup 鏈。後者是一條由Rollup 區塊組成的鏈,獨立於以太坊鏈。驗證者的職責是提議新的區塊並將其添加到Arbitrum 鏈上。每個被提議的區塊最終都會被協議確認或拒絕。每個區塊都包含多個字段。除了區塊號字段之外,每個字段的數據都是區塊提議者的斷言,但不一定是正確的。如果有任何斷言字段不正確,協議最終會拒絕該區塊。凡是被提議的區塊都有確認期限。反對某個區塊的驗證者應提議正確的區塊。成功提交欺詐證明的誠實驗證者會獲得獎勵。
質押
要想將某個Rollup 區塊添加到鏈上,質押者必須押注該區塊。質押是無需許可的,任何人都可以押注任意區塊。一旦你押注某個區塊,在該區塊被確認之前無法取回押金。一旦你押注某個區塊,即表明你認定這個區塊是正確的,且認定最新確認區塊到你所押注的區塊這段鏈上的每個區塊都是正確的。如果你押注的區塊不正確,或最新確認區塊到你所押注的區塊這段鏈上的某個區塊不正確,你的押金就會被罰沒。如果你不想押注某個區塊,你可以押注最新被確認區塊。如果你押注了某個區塊,可將押注延伸至跟在該區塊之後的任何區塊。所需質押量是動態的。 Arbitrum 鏈上有一個指定的基礎質押量參數,在大多數情況下都會用到。為了防止攻擊者不惜犧牲押注也要拖慢網絡的情況,質押量會乘以一個隨超時時間呈指數級增長的因子(超時時間從第一個未確定區塊的截止時間算起)。這是為了增加這類攻擊在攻擊期間的成本。這種質押翻倍是暫時的,只會在Arbitrum 鏈的區塊確認進程緩慢時發生。
挑戰協議
當兩個質押者押注不同的區塊且這兩個區塊之間沒有繼承關係時,他們會在某個區塊上產生分歧,從而引發挑戰。挑戰主要發生在Arbitrum 鏈上,由L1 合約裁決。挑戰包括一個在L2 上進行的交互型多輪切分遊戲和一個在L1 上執行的單步證明。如果有質押者對某個區塊提出爭議,提議該區塊的質押者將作為“被告” 捍衛自己的斷言。 “被告” 質押者聲稱,以上一個區塊為起點,在虛擬機執行N 個指令之後,上一個區塊的狀態將推進至其所提議的區塊的狀態。在切分遊戲中,作為“被告” 的質押者(Alice)為先手,將N 個指令切分成K 段,每段的大小是N/K。請注意,每段Arbgas 消耗量相等,但步驟數量上不一定相等。還要注意的是,每段都有一個起點和一個終點(這點並不重要,但是有助於我們理解下一點)。作為“原告” 的質押者(Bob)同樣將N 個指令切分成K 段(每段的大小是N/K),並將它們與Alice 的切分段一一對應,發現其中一個切分段的終點與Alice 的不同。 Bob 實際上是在找出他不認同的切分段。接著,Bob 會執行Alice 最初的操作,將有爭議的切分段(大小為N/K)再切分成K 個子段,然後將這個切分段連同子段一起發送給Alice。 Alice 執行Bob 最初的操作,找到終點不同的那個子段。切分流程繼續下去,直到Alice 和Bob 找到他們產生分歧的那一個指令為止。這個指令被發送給L1 合約,並由後者執行它,然後決定這場爭議的“勝訴方”。 “敗訴方” 將失去質押物,一部分質押物將被銷毀(防止攻擊者對沖押注),其餘則獎勵給誠實的“勝訴方”。在整個切分流程中,作為裁決方的L1 合約不知道任何關於指令的信息,只負責核實雙方是否遵循遊戲規則。在爭議期間,其他所有驗證者都能在爭議敲定之前自行斷定爭議的結果,這就意味著會發生軟分叉,且驗證者可以繼續在正確的鏈上提交Rollup 區塊。挑戰期有一個強制的期限,即,每個質押者大約一周時間。每個質押者必須在一周的限期內完成自己的任務,否則就會“敗訴”。就像棋賽計時器那樣。
- 上圖顯示了兩位質押者在爭議期間進行的多輪交互式切分遊戲。實際上,有爭議的斷言包含的指令遠比上圖所示的更多,因此遊戲的輪次也更多,但原理是一樣的-
驗證者
驗證者是Arbitrum 鏈上的節點,負責監控該Rollup 協議的活動並推進整條鏈的狀態。並非所有節點都是驗證者。 Offchain Labs 預期驗證者會採取主動、防守或觀望策略;協議不會強制他們採取哪種策略。 “主動型驗證者” 會通過提議新的區塊來持續推進鏈的狀態。每條鏈上只需要一位誠實的主動型驗證者;主動型驗證者的數量增加並不會提高整條鏈的效率。 “防守型驗證者” 監控Arbitrum 協議,只在發現不誠實行為時採取行動:要么自己提議一個正確的區塊,要么押注其他驗證者提議的正確的區塊。 “觀望型驗證者” 雖然也像防守型驗證者那樣監控Arbitrum 協議,但是就算發現了不誠實行為,他們也不會提議或押注正確的區塊,只會向其他驗證者發出告警。 Offchain labs 會在他們的旗艦Arbitrum 鏈上運行主動型驗證者節點。大多數時候,防守型驗證者和觀望型驗證者不需要做任何事,因此攻擊者永遠不知道有多少防守型驗證者。雖然任何人都能成為驗證者,但是根據預期,選擇成為驗證者的主要是那些在鏈上質押了大量資產的人,或他們僱傭的人。
全節點
Arbitrum 鏈上的全節點與以太坊上的全節點作用相同,負責追踪鏈的狀態,讓其他人與這條鏈交互。全節點內置AVM 模擬器。因此,在全節點看來,Arbitrum 鏈就是根據輸入計算輸出而已,無需了解實際的rollup協議。全節點可以充當鏈上聚合器,幫助用戶提高成本效率。 Arbitrum 還通過某個設施從用戶處收集費用來補償全節點充當聚合器的成本。全節點還可以通過壓縮交易來進一步降低L1 調用數據成本。全節點將被壓縮的交易提交至收件箱,arbOS 收到該交易後會對其進行解壓縮。全節點通常會將壓縮和聚合合二為一,即,提交一批經過壓縮的交易至收件箱。
定序器模式
當Arbitrum 鏈啟動時,我們可以選擇是否啟用定序器。定序器是擁有決定收件箱中交易排序特權的全節點。該特權可以讓定序器即時保證交易的結果。如果Arbitrum 鏈啟用定序器,收件箱會分成兩部分:第一個收件箱會正常運行,彷彿定序器不存在一樣,即,節點可以向該收件箱發送帶有區塊號和時間戳標記的消息。第二個收件箱將由定序器控制,只有定序器可以向該收件箱發送消息。在向收件箱發送消息時,定序器可以指定用來標記消息的區塊號和時間戳。這包括到指定增量區塊為止的(過去的區塊的)區塊號和時間戳和增量秒數(過去的時間)。這些增量值通常相當於現實世界裡的10 分鐘左右。當arbOS 查看收件箱時,會收到帶有最低區塊號的消息。這個區塊號要么是普通收件箱的區塊號,要么是定序器收件箱的區塊號。定序器可以回溯的區塊數量取決於需要在以太坊上敲定arbitrum 區塊所需的確認區塊數量。如果arbitrum 在以太坊上達成終局性需要等待X 個區塊,那麼定序器就要回溯X 個區塊,以確定自己當前打包的交易會緊跟著哪些交易得到處理當定序器模式在Arbitrum鏈上啟用時,提交至定序器的交易會比沒有定序器的情況提前x 個區塊敲定,但是提交至普通收件箱的交易會比沒有定序器的情況落後x 個區塊敲定。由於即時確定和5 分鐘確定與5 分鐘確定和10 分鐘確定之間存在很大差異,這是一種正向權衡。但是,惡意定序器能夠在一定程度上利用這些特權。惡意定序器可以通過不把用戶的交易放入定序器收件箱來審查它們,迫使用戶在發現自己被審查後發送相同的交易到普通收件箱。定序器還可以搶跑用戶的交易。初始Arbitrum 鏈將啟用由Offchain Labs 運行的定序器。 Cornell Tech 團隊在開發去中心化的公允定序器算法方面已經取得了一些成果,只需要再完成一些研究工作就可以應用到Arbitrum 的長期解決方案中。
- 收件箱在定序器模式開啟/未開啟時的差異-
ArbGas / 費用
ArbGas 的原理與以太坊gas 相似,用來衡量Arbitrum 鏈上的計算成本。但是,Arbitrum 鏈上不設硬性ArbGas 上限,而且ArbGas 的消耗速度比以太坊gas 快得多。 ArbGas 的一個關鍵作用是預測驗證計算結果所需的時長。每個Rollup 區塊內都包含一個關於ArbGas 消耗總量的聲明,也就是說當前區塊內的聲明和前一個區塊內的聲明之差理應是當前區塊的ArbGas 消耗量的有效指標。因此,在檢查區塊有效性時,驗證者可以將這一差值設成gas 上限,如果這麼多ArbGas 在區塊執行完之前耗盡,就可以確定該區塊是無效的,並成功挑戰它。因為這些交易的數據最終需要上鍊,用戶需要支付費用。如果該用戶將交易發送給聚合器,部分費用會自動支付給聚合器作為補償。剩餘費用將進入網絡的費用池,用來支付保障整條鏈安全運行的服務費。費用包含L2 交易、L1 調用數據、計算和存儲成本。費用以ETH 的形式支付。
結論
Arbitrum 是Offchain Labs 開發的L2 可擴展性解決方案:採用多輪交互式挑戰協議的Optimistic Rollup。旗艦級Arbitrum 鏈已於5 月28 日面向開發者開放。一旦這條鏈上運行的項目到達閾值,就會向用戶開放。從用戶的角度來看,Arbitrum 鏈的交互體驗與以太坊並無差別。
下個月,Tracer 將在Arbitrum 主網上部署Perpetual Swaps,歡迎關注Tracer 的Twitter ,並加入Discord 。
如果你想更深入了解Arbitrum,請參閱這篇文檔。 (完)
(文內有許多超鏈接,可點擊左下”閱讀原文“ 從EthFans 網站上獲取)
原文鏈接:
https://tracer.finance/radar/arbitrum-in-under-10/
作者: Nick Crow
翻譯&校對:閔敏& 阿劍