互動式欺詐證明:Arbitrum 的秘密武器

買賣虛擬貨幣

Arbitrum One 已經在主網開放,我們計劃推出一系列的文章,講解 Arbitrum 的內部構件。本文摘自Inside Arbitrum,該原文深入講解了 Arbitrum 的工作原理。

圍繞optimistic rollups,最主要的設計抉擇是,如何解決爭議。假設 Alice 斷言 Rollup 會的執行會產生某個結果,而 Bob 不同意,那協議該如何定奪,選擇誰提交的結果呢?

處理的方法基本可分兩類:互動式證明,或者重執行交易。Arbitrum 選擇了互動式證明,我們認為這種辦法效率更高,也更靈活。Arbitrum 的其它設計也基本上遵循這個原則。

從 2014 年以來,我們一直在開發互動式欺詐證明(和 Arbitrum)。基本的機制我們寫在了2018 年出版的論文裡,雖然現在我們又做了大量的升級。

互動式證明

互動式證明的思路是讓 Alice 和 Bob 參與一個由 L1 合約引導的回合制協議,使用任何 L1 合約所需的最小開銷來解決他們之間的分歧。

Arbitrum 的方法基於對爭議的剖析。如果 Alice 的斷言涉及了 N 個執行步驟,那就讓她曝光出兩個各涉及 N/2 個步驟的斷言,然後讓 Bob 選擇一個來挑戰。這樣一來,爭議的規模就縮小了一半。這個過程持續進行,每一回合都將爭議的規模縮小一半,直到爭議的範圍變成一個執行步驟。注意,直到此時為止,L1 引導合約都不必考慮實際上執行了什麼。僅當爭議被縮小到單個執行步驟時,L1 引導合約才需要理解這一步要執行什麼指令,以及 Alice 對該步的斷言是否為真,以此解決爭議。

互動式證明背後的關鍵原理是,如果 Alice 和 Bob 有所爭議,Alice 和 Bob 應儘可能做鏈下的工作來解決爭議,而不是讓 L1 合約承擔負擔。

重執行交易

另一個方案是,讓一個 Rollup 區塊在區塊內每一筆交易後附帶一個狀態雜湊值斷言。然後,在爭議情形中,L1 引導合約將模擬一整筆交易的執行,看結果是否與 Alice 的斷言一致。

為什麼說互動式證明更好?

我們堅決認為,互動式證明是個更好的方法,理由如下。

在樂觀情形下,互動式證明效率更高。因為互動式證明可以解決大於一筆交易的爭議,因此,一個 rollup 區塊可以僅包含一個斷言,斷言整條鏈在這一個區塊的所有內容執行完之後的結果狀態。相反,重執行方法需要區塊內的每個交易後面都附帶一個狀態斷言。如果一個 rollup 區塊裡面有成百上千筆交易,這兩種方法在對 L1 區塊的空間佔用上將出現顯著的區別 —— 而這種佔用正是 rollup 成本的主要部分。

在悲觀情形下,互動式證明的效率也更高:如果出現了爭議,L1 引導合約只需檢查 Alice 和 Bob 的操作 “在往正確的方向走”,比如 Alice 確實把 N 步驟的斷言拆成了兩個針對一半步驟的斷言。(引導合約無需去計算 Alice 斷言的正確性,Bob 會做,在鏈下做。)只需要重新執行一個指令。相反,在重執行交易模式下,L1 引導合約需要模擬一整筆交易的執行。

更高的交易級 gas limit:互動式證明可以擺脫以太坊對單筆交易 Gas Limit 的限制;即使一筆交易 gas 消耗量太大、無法放進以太坊區塊內,也仍有可能可以放進 Arbitrum 的區塊內。Rollup 的 Gas Limit 當然也不可能是無限的,但仍可以做到比以太坊主鏈所容許的大得多。就以太坊而言,大 gas 容量的 Arbitrum 交易的唯一缺點是它可能需要執行更多的互動步驟(這個也僅僅是在有所爭議的情況下)。相反,重執行模式下的 rollup 交易,gas limit 必須小於以太坊的區塊 Gas Limit,否則就沒法在一筆以太坊交易內模擬執行完這筆交易了(而且模擬執行比起在以太坊中直接執行,gas 消耗量還要更大)。

合約大小沒有限制:互動式證明無需為每一個 L2 合約建立一個以太坊合約,所以也不要求合約符合以太坊合約的限制。對於 Arbitrum 的爭議合約來說,在 L2 上部署一個合約的操作也是一系列計算過程的組合,與別的操作沒有區別。相反,重執行模式下,L2 合約的大小比以太坊主鏈上所能容許的還要小,因為要模擬一個合約的執行需要能夠仿製(instrument)這個合約,而仿製的程式碼必須能夠放進一個以太坊合約內。

更大的實現彈性。互動式證明允許實現上的更大靈活性,舉個例子,加入 EVM 中還不存在的指令。必要的功能無非是能在以太坊上驗證一個單步執行的證據。而重執行模式就嚴格受限於 EVM。

互動式證明方法是 Arbitrum 的設計核心

Arbitrum 的大部分設計都是由互動式證明方法所開啟的機會驅動的。如果你在學習 Arbitrum 的特性時疑惑於為什麼這種它們要存在,這裡有兩個簡單的思考方向:“這個特性是用來支援互動式證明的嗎?” 以及 “這個功能是是如何利用互動式證明得以實現的”?大部分關於 Arbitrum 的 “為什麼” 都跟互動式證明有關。

想了解更多?看看Inside Arbitrum。

免責聲明:

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

推荐阅读