深入探討爭議博弈,以及其在 OP Stack 首個錯誤證明系統中的錯誤偵測作用。

OP Stack 的錯誤證明系統 (FPS) 中,最引人注目的元件之一是其爭議博弈,這並非巧合。上一篇關於 FPS 的文章說明,OP Stack 的模組化設計如何將錯誤證明程式 (FPP) 與錯誤證明虛擬機器 (FPVM) 解耦,讓兩個元件能進一步組合,並可有效率地平行升級。爭議博弈同樣具備這項特性。
本文將探討爭議博弈在超級鏈生態系統去中心化錯誤偵測中的作用、如何在爭議協議之上建立錯誤證明爭議博弈,以及隨著爭議協議可擴展性提升,這類博弈可能帶來的發展。
若您想進一步瞭解爭議博弈,歡迎閱讀我幾週前在個人部落格分享的這篇更詳細文章。
爭議博弈是爭議協議的核心基礎。它模擬一個簡單的狀態機,對於任何有效性受到質疑的資訊,會以一個 32 位元組承諾值進行初始化。該資訊包含一個用於判定此承諾值真偽的函式,而該函式由基礎元件的實作定義。OP Stack 的首個爭議博弈實作 FaultDefenteGame 並非無需許可,因為其解決函式是根據在模擬虛擬機器上執行的錯誤證明程式結果來判定。
搜尋博弈的兩項關鍵特性:
爭議博弈本身依賴兩項基本特性:
在爭議協議中,可透過 DisputeGameFactory。 建立、管理及升級不同類型的爭議博弈。這為聚合證明系統與擴展協議等創新功能開啟了可能性,也能處理第 2 層協議狀態以外的爭議事項,例如針對鏈上二元驗證的 FaultDefenteGame。
這是一種特定類型的爭議博弈,也是第一個建立於 OP Stack 爭議協議之上的博弈。在這個博弈中,參與者會反覆二分執行軌跡,直到定位至每個步驟。當二分過程在每個追蹤指令上取得狀態承諾後, FaultDefenteGame 會使用通用虛擬機器在鏈上執行單一指令步驟。VM 的狀態轉換函式 (我們稱 it**T ) 可以是任何函式,只要符合 形式 _T (s, i) - > s' _, 其中 s = 已協議的前置狀態, _i _ = 狀態轉換輸入, s' ** = 轉換後的狀態。
在我們首次於二分博弈中完整實作通用 VM 時,我們在 EVM 上實作了單一 MIPS 執行緒上下文,以執行由 by`` Cannon 和 op-program 產生的執行軌跡中的單一指令。
聲明表示在給定指令下,對後端虛擬機器狀態的承諾。這些聲明可能為真或假,其真實性會在解決階段後確定。若沒有反擊,該聲明將被視為正確。 ,
宣告其在二元樹中的位置。此位置表示該聲明對應哪一項指令。Position is a generalized index, which can be defined as 2^ {depth} + index_at_depth.
參與者的行動受到時間限制。此博弈無需許可,任何人都可以加入。每一方初始擁有 3.5 天的行動時間,合計為 7 天。若您建立新路徑,或在已收到聲明的位置提出聲明,將使用逐步祖父層級的棋鐘。
參與者持續二分,直到聲明的狀態僅涵蓋一條 VM 指令。接著,他們會在鏈上執行該指令,以驗證或否定該聲明。行動可以是攻擊 (質疑父聲明),或防禦 (同意父聲明)。當參與者同意其所觀察到的聲明雜湊值 (即雙方在給定指令下處於相同狀態),但對於基於所觀察聲明相對一致性所要推導的最終結果存在分歧時,則會使用底層聲明進行防禦。
在位置樹的葉節點中,每個聲明僅提交一條 VM 指令下的狀態。剩下的唯一步驟是執行 VM 指令,以證明或反駁父聲明。
若指令步驟確認預期的後置狀態,則該聲明不成立。若出現非預期的停止狀態或退出碼,父聲明將被反駁。
這類博弈通常會在所有聲明的棋鐘耗盡後解決,最短期間為 3.5 天。博弈中的每項聲明都是其自身子博弈 (**子博弈) ** 的根。子博弈是深度為 1 的 DAG。所有指向根的子博弈 (其本身亦為子博弈根) 都是其反駁者;只有在其所有子博弈也都已解決後,該子博弈才能解決。只有當子博弈根的一個或多個子博弈已解決且未被反駁時,子博弈根才能被視為受到反擊,而此屬性會持續傳遞至博弈的根聲明。
誠實參與者的存在 (一旦其所有行動均已耗盡),也能讓博弈始終依照其軌跡視圖順利解決,無論底層聲明是真實或不實。任何一方都能反駁不實聲明;不過,由於同一子博弈中的同一位置不允許重複聲明雜湊值,因此始終只有一項正確聲明可以提出。
0:00
1×
對有興趣的讀者而言,FaultDefenteGame 也提供視覺化工具,該工具針對僅包含 16 條指令的模擬執行軌跡。 此模擬採用一個與 MIPS 執行緒具有不同上下文的獨立 VM,稱為 AlphabetVM;該 VM 在輸入指定字母時,僅會回傳字母表中的下一個字母。
若您想以更輕量的後端探索博弈規則,以下是遊玩方式:
複製 Optimism 單一儲存庫、安裝相依套件,並建立 devnet 發行版本 /cannon/op-program 二進位檔。
必要相依套件:
Foundry
Golang 工具鏈
Docker
git clone git@github.com: ethereum-optimism/optimism.git & cd optimism & pnpm i & cd packages/contracts-bedrock & & forge install) & Make up cannon-prestate & Make up devnet-allocs
執行字母博弈:
CD OP-CHALLENCHER & & MAKE ALPHABET
前往 https://disputify.optimism.io/,或透過複製 https://github.com/clabby/dispute-viz。 在本機執行視覺化前端,並輸入部署至上述本機開發網路的 FaultDefenteGame 代理合約地址。
在二分博弈中,上述所有機制共同運作,建立一個獎勵誠實行為並有效反駁不實聲明的系統。
有許多方式可以建立達成相同目標的爭議博弈。我們希望,當 OP Stack 的 FPS 部署至 OP Goerli 時,生態系統中的建構者能享受其中樂趣,並發揮創意建立自己的爭議博弈。每個建立的爭議博弈都能促進 OP Stack 的社會去中心化,並讓生態系統參與者能選擇如何解決對特定資訊所作任何聲明的爭議。





