# 欺诈证明与ZK Fraud Proof的实现思路欺诈证明是区块链领域广泛应用的技术方案,最早源于以太坊社区,被Arbitrum和Optimism等Layer2采用。2023年比特币生态兴起后,Robin Linus提出了BitVM方案,以欺诈证明为核心,为比特币二层或桥提供了新的安全模型。BitVM经历了多个版本演化,从早期的逻辑门电路方案到后来的ZK Fraud Proof方案。多个项目如Bitlayer、Citrea、BOB等均以BitVM为技术基础进行了不同实现。本文将以Optimism的欺诈证明方案为例,解析其基于MIPS虚拟机和交互式欺诈证明的实现,以及ZK化欺诈证明的思路。## OutputRoot和StateRootOptimism的基础架构包括定序器和以太坊链上智能合约。定序器处理交易后,会将DA数据发送到以太坊。任何人都可以运行Optimism节点,下载数据并在本地执行交易,计算出当前状态集hash。如果定序器上传错误的状态集hash,本地计算结果会不同,此时可以发起欺诈证明质疑。Optimism采用与以太坊类似的StateRoot字段表示状态集变化。定序器定期上传OutputRoot到以太坊,OutputRoot由StateRoot和其他字段计算得出。## MIPS虚拟机与内存Merkle Tree为在链上验证OutputRoot正确性,Optimism团队用Solidity实现了MIPS虚拟机,并设计了交互式欺诈证明系统。该系统将交易处理流程细化为MIPS操作码序列。通过观察哪个操作码执行后虚拟机状态出错,来判断OutputRoot是否有效。MIPS虚拟机的状态信息被组织成Merkle树。在链上只需执行单条MIPS操作码,比较执行后的状态hash是否一致。虚拟机的内存数据也被组织成28层二叉Merkle树,根hash称为memRoot。执行操作码时需上传部分内存数据及默克尔证明。## 交互式欺诈证明 Optimism开发了Fault Dispute Game(FDG)协议,包含挑战者和防御者两个角色。双方需在本地构建GameTree,包含两级Merkle树:- 第一级树叶子节点为不同区块的OutputRoot- 第二级树叶子节点为MIPS虚拟机的状态hash双方在链上多次交互,最终定位到有争议的MIPS操作码。交互式欺诈证明的核心机制:1. FDG定位需上链执行的操作码及VM状态2. 在链上MIPS虚拟机中执行该操作码,获得结果## ZK化欺诈证明传统交互式欺诈证明存在交互复杂、gas成本高、暂停Rollup执行等问题。为此,Optimism提出了ZK Fraud Proof概念:- 挑战者指定需重放的交易- Rollup定序器生成该交易的ZK证明- 以太坊合约验证ZK证明相比交互式方案,ZK Fraud Proof将多轮交互简化为一轮ZK证明生成和验证,节省时间和gas成本。相比ZK Rollup,只在被挑战时生成证明,降低了计算成本。BitVM2也采用了类似思路,通过比特币脚本实现ZK Proof验证,并对上链程序进行了极大精简。
ZK欺诈证明:从Optimism到BitVM的演进与实现
欺诈证明与ZK Fraud Proof的实现思路
欺诈证明是区块链领域广泛应用的技术方案,最早源于以太坊社区,被Arbitrum和Optimism等Layer2采用。2023年比特币生态兴起后,Robin Linus提出了BitVM方案,以欺诈证明为核心,为比特币二层或桥提供了新的安全模型。
BitVM经历了多个版本演化,从早期的逻辑门电路方案到后来的ZK Fraud Proof方案。多个项目如Bitlayer、Citrea、BOB等均以BitVM为技术基础进行了不同实现。
本文将以Optimism的欺诈证明方案为例,解析其基于MIPS虚拟机和交互式欺诈证明的实现,以及ZK化欺诈证明的思路。
OutputRoot和StateRoot
Optimism的基础架构包括定序器和以太坊链上智能合约。定序器处理交易后,会将DA数据发送到以太坊。任何人都可以运行Optimism节点,下载数据并在本地执行交易,计算出当前状态集hash。
如果定序器上传错误的状态集hash,本地计算结果会不同,此时可以发起欺诈证明质疑。
Optimism采用与以太坊类似的StateRoot字段表示状态集变化。定序器定期上传OutputRoot到以太坊,OutputRoot由StateRoot和其他字段计算得出。
MIPS虚拟机与内存Merkle Tree
为在链上验证OutputRoot正确性,Optimism团队用Solidity实现了MIPS虚拟机,并设计了交互式欺诈证明系统。
该系统将交易处理流程细化为MIPS操作码序列。通过观察哪个操作码执行后虚拟机状态出错,来判断OutputRoot是否有效。
MIPS虚拟机的状态信息被组织成Merkle树。在链上只需执行单条MIPS操作码,比较执行后的状态hash是否一致。
虚拟机的内存数据也被组织成28层二叉Merkle树,根hash称为memRoot。执行操作码时需上传部分内存数据及默克尔证明。
交互式欺诈证明
Optimism开发了Fault Dispute Game(FDG)协议,包含挑战者和防御者两个角色。双方需在本地构建GameTree,包含两级Merkle树:
双方在链上多次交互,最终定位到有争议的MIPS操作码。
交互式欺诈证明的核心机制:
ZK化欺诈证明
传统交互式欺诈证明存在交互复杂、gas成本高、暂停Rollup执行等问题。为此,Optimism提出了ZK Fraud Proof概念:
相比交互式方案,ZK Fraud Proof将多轮交互简化为一轮ZK证明生成和验证,节省时间和gas成本。相比ZK Rollup,只在被挑战时生成证明,降低了计算成本。
BitVM2也采用了类似思路,通过比特币脚本实现ZK Proof验证,并对上链程序进行了极大精简。