深度解析:欺诈证明的演进与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)