針對以太坊的 L2 可擴展性方案 – Arbitrum,透過本文 10 分鐘帶你深入理解 Arbitrum 背後機制。
(前情提要: Layer 2 》Uniswap v3 已部署至 Arbitrum 主網!)
(入門補充: 科普|Uniswap, Sushiswap 都要在 Arbitrum上部署,如何簡單理解它?)
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 合約。
延伸閱讀:Layer 2 科普|OptimismPBC 和 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 鏈的交互體驗與以太坊並無差別。
📍相關報導📍
Perpetual Protocol V2「Curie」正式發佈 — DeFi 衍生品的終局拼圖
a16z領投!以太坊L2擴容解決方案 Optimism 完成2,500萬美元A輪融資
歷史最大變革,面對 ETH2.0、EIP-1559、Layer2「以太坊經濟模型」將有何影響?
讓動區 Telegram 新聞頻道再次強大!!立即加入獲得第一手區塊鏈、加密貨幣新聞報導。
LINE 與 Messenger 不定期為大家服務