了解Arbitrum 的秘密武器:交互式欺詐證明

作者: Offchain Labs

翻譯: 阿劍

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,

(完)

(文內有許多超鏈接,可點擊左下 ”閱讀原文“ 從 EthFans 網站上獲取)

原文鏈接:

https://medium.com/offchainlabs/interactive-fraud-proofs-arbitrums-secret-sauce-debc3b019418

0 条回复 A文章作者 M管理員
    暫無討論,說說你的看法吧