詳解欺詐證明:從交互式方案到ZK Fraud Proof的技術演進

robot
摘要生成中

欺詐證明與ZK Fraud Proof的實現思路

欺詐證明是區塊鏈領域廣泛應用的技術方案,最早起源於以太坊社區,被Arbitrum和Optimism等Layer2項目採用。2023年比特幣生態興起後,Robin Linus提出了BitVM方案,以欺詐證明爲核心,在比特幣既有技術基礎上爲二層或橋提供了新的安全模型。

BitVM經歷了多個版本演進,從早期的邏輯門電路爲基元的BitVM0,到後來以ZK Fraud Proof和Groth16驗證電路爲核心的BitVM2,相關技術路徑不斷成熟。多個項目如Bitlayer、Citrea、BOB等均以BitVM爲技術基礎進行了不同實現。

本文將以Optimism的欺詐證明方案爲例,解析其基於MIPS虛擬機和交互式欺詐證明的方案,以及ZK化欺詐證明的主要思路。

OutputRoot和StateRoot

Optimism是知名的Optimistic Rollup項目,其基礎架構由定序器和以太坊鏈上智能合約組成。定序器處理交易後,會將數據發送到以太坊上。運行Optimism節點客戶端可以下載這些數據並在本地執行,計算出當前狀態集hash。

如果定序器上傳錯誤的狀態集hash,本地計算結果會不同,此時可通過欺詐證明系統發起質疑。

EVM系區塊鏈通常用Merkle Tree數據結構記錄狀態集,稱爲World State Trie。交易執行後,World State Trie會變化,其最終hash也會更新。以太坊將此hash稱爲StateRoot,用於表示狀態集變化。

Optimism的帳戶體系與以太坊類似,也採用StateRoot字段。定序器會定期將OutputRoot上傳到以太坖,OutputRoot由StateRoot和其他兩個字段計算得出。

BitVM背景知識:欺詐證明與ZK Fraud Proof的實現思路

MIPS虛擬機與內存Merkle Tree

爲在鏈上驗證OutputRoot正確性,最簡單的方法是在以太坊上實現OP節點客戶端,但存在兩個問題:

  1. 智能合約無法自動獲取欺詐證明所需輸入參數
  2. 以太坊Gas Limit有限,不支持復雜計算任務

第一個問題可通過PreimageOracle合約解決。對於第二個問題,OP團隊用Solidity編寫了MIPS虛擬機,實現了部分OP節點功能。

OP開發團隊用Golang編寫了簡化程序,功能與OP節點執行交易、生成區塊及OutputRoot模塊基本一致。但由於計算開銷過大,無法在鏈上完整執行所有交易。

爲此,Optimism設計了交互式欺詐證明系統,將交易處理流程細化爲MIPS操作碼的有序處理。每個操作碼執行後,虛擬機狀態hash會變化,這些記錄匯總爲一棵Merkle樹。

在交互式欺詐證明中,需確定哪個MIPS操作碼導致虛擬機狀態hash出錯,然後在鏈上重現當時狀態並執行該操作碼,觀察結果是否一致。這需要將部分MIPS虛擬機狀態信息上傳到鏈上。

鏈上欺詐證明相關合約通過Step函數完成MIPS操作碼執行:

solidity function step( bytes memory _stateData, bytes memory _proof ) public returns (bytes32) { // ... }

_stateData和_proof參數包含單條MIPS操作碼執行的依賴數據,如寄存器狀態、內存狀態hash等。

OP採用32位MIPS架構,內存可組織成28層二叉Merkle Tree,底層有2^27個葉子記錄各內存地址數據。所有葉子數據匯總後的hash爲memRoot。

BitVM背景知識:欺詐證明與ZK Fraud Proof的實現思路

交互式欺詐證明

爲定位有爭議的MIPS操作碼,OP團隊開發了Fault Dispute Game(FDG)協議。FDG中包含挑戰者和防御者兩個角色,雙方需在本地構建GameTree。

GameTree由兩層樹構成:第一層葉子爲不同區塊的OutputRoot,第二層葉子爲MIPS虛擬機的狀態hash。爭議雙方在鏈上多次交互,最終定位需要鏈上執行的單條MIPS操作碼。

總結來說,交互式欺詐證明包含兩個核心機制:

  1. FDG定位需上鏈執行的MIPS操作碼及VM狀態信息
  2. 在以太坊鏈上的MIPS虛擬機執行該操作碼,獲得最終結果

BitVM背景知識:欺詐證明與ZK Fraud Proof的實現思路

ZK化欺詐證明

傳統欺詐證明交互復雜,存在以下問題:

  1. 多輪交互產生大量gas成本
  2. 交互過程較長,期間Rollup無法正常執行交易
  3. 鏈上實現特定VM開發難度高

爲解決這些問題,Optimism提出了ZK Fraud Proof概念。核心是挑戰時指定需重放的交易,定序器給出ZK證明,由以太坊合約驗證。

相比交互式欺詐證明,ZK Fraud Proof將多輪交互改爲一輪ZK證明生成和驗證,節省時間和成本。相比ZK Rollup,基於ZK Fraud Proof的OP Rollup只在被挑戰時生成證明,降低了計算成本。

ZK化欺詐證明思路也被BitVM2採用。採用BitVM2的項目如Bitlayer、Goat Network等,通過比特幣腳本實現ZK Proof驗證程序,並極大精簡了上鏈程序尺寸。

BitVM背景知識:欺詐證明與ZK Fraud Proof的實現思路

查看原文
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 讚賞
  • 留言
  • 分享
留言
0/400
暫無留言
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)