深度解析:欺詐證明的演進與ZK Fraud Proof實現原理

robot
摘要生成中

欺詐證明與ZK Fraud Proof的實現原理

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

BitVM經歷了多個版本演進,從最初的邏輯門電路方案,到後來的ZK Fraud Proof和Groth16驗證電路方案,相關技術路徑不斷成熟。目前市面上多個項目均以BitVM爲技術基礎進行了不同實現。

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

OutputRoot和StateRoot

Optimism的基礎架構由定序器和以太坊鏈上智能合約組成。定序器處理交易後,會將數據發送到以太坊。任何人都可以運行Optimism節點,下載定序器上傳的數據並在本地執行交易,計算出當前狀態集hash。

如果定序器上傳了錯誤的狀態集hash,本地計算結果會有差異,此時可以發起欺詐證明質疑。系統會根據判決結果對定序器採取相應處理。

Optimism採用與以太坊類似的StateRoot字段表示狀態集變化。定序器會定期將OutputRoot上傳到以太坊,OutputRoot由StateRoot和其他字段計算得出。

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

MIPS虛擬機與內存Merkle Tree

爲了在鏈上驗證OutputRoot正確性,Optimism團隊用Solidity實現了一個MIPS虛擬機,可以執行部分OP節點功能。但由於以太坊Gas限制,無法在鏈上完整執行所有交易。

爲解決這個問題,Optimism設計了交互式欺詐證明系統,將交易處理流程細化爲一系列MIPS操作碼的執行。通過觀察是哪個操作碼執行時出錯,就可以判斷OutputRoot是否無效。

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

具體實現中,MIPS虛擬機的狀態信息被組織成Merkle樹。欺詐證明相關合約通過Step函數執行單條MIPS指令,並與定序器提交的結果比對。

MIPS虛擬機的內存數據也被組織成28層的Merkle樹,memRoot是這棵樹的根哈希。執行指令時需要提供部分內存數據及Merkle證明。

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

交互式欺詐證明

Optimism團隊開發了Fault Dispute Game(FDG)協議來定位有爭議的MIPS操作碼。參與者需要在本地構建GameTree,包含兩個層級:

  1. 第一層級的葉子節點是不同區塊的OutputRoot
  2. 第二層級的葉子節點是MIPS虛擬機的狀態hash

雙方在鏈上多次交互,最終定位到有爭議的MIPS操作碼及其執行時的VM狀態。

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

ZK化欺詐證明

傳統欺詐證明存在交互復雜、gas成本高、Rollup暫停等問題。爲此Optimism提出了ZK Fraud Proof概念:

  1. 挑戰者指定需要重放的交易
  2. Rollup定序器生成該交易的ZK證明
  3. 以太坊智能合約驗證ZK證明

相比交互式方案,ZK Fraud Proof將多輪交互簡化爲一輪ZK證明生成和驗證,大幅節省時間和成本。與ZK Rollup相比,僅在被挑戰時生成證明,降低了計算負擔。

這種ZK化思路也被BitVM2採用。採用BitVM2的項目通過比特幣腳本實現ZK Proof驗證,並對上鏈程序進行了極大精簡。

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

查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 2
  • 分享
留言
0/400
FUD Vaccinatorvip
· 07-15 02:45
技术角度很妙 但L2看op就够了
回復0
Layer2观察员vip
· 07-14 03:10
MIPS虚拟机还行,就是开销太大
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)