# 詐欺証明とZK Fraud Proof: 現代ブロックチェーンセキュリティ技術の実現原理詐欺証明はブロックチェーン分野で広く応用されている技術方案で、最初はイーサリアムコミュニティから発生し、ArbitrumやOptimismなどの有名なイーサリアムLayer2に採用されています。2023年にビットコインエコシステムが興起した後、Robin LinusはBitVM方案を提案し、詐欺証明を核心思想として、Taprootなどのビットコイン既存技術基盤の上に、ビットコインの二層または橋に新しい安全モデルを提供しました。BitVMは、初期のBitVM0から後のBitVM2まで、複数の理論バージョンの進化を経ており、関連する技術実装の道筋は不断に成熟し、業界の広範な関心を引き付けています。BitVMを技術基盤とした複数のプロジェクト、例えばBitlayer、Citrea、BOBなどが異なるバージョンの実装を行っています。本文はOptimismの詐欺証明方案を例に取り、MIPS仮想機とインタラクティブ詐欺証明に基づく方案、およびZK化詐欺証明の主要な考え方を解析します。! [BitVMの背景:詐欺証明とZK詐欺証明の実装](https://img-cdn.gateio.im/social/moments-4740909e3c2dd651d7b12dec84677a36)## OutputRoot と StateRootOptimismは有名なOptimistic Rollupプロジェクトで、その基盤はシーケンサーとEthereum上のスマートコントラクトで構成されています。シーケンサーが取引データを処理した後、これらのデータはEthereumに送信されます。Optimismノードクライアントを実行しているユーザーは、これらのデータをダウンロードし、ローカルで取引を実行し、現在のステートセットのハッシュを計算できます。もしオーダーラーが誤った状態セットのhashをアップロードした場合、ローカル計算結果はそれと異なり、その際には詐欺証明システムを通じて異議を申し立てることができます。EVM系ブロックチェーンは通常、Merkle Treeデータ構造を使用して状態セットを記録し、これをWorld State Trieと呼びます。取引が実行された後、World State Trieは変化し、最終的なhashも更新されます。イーサリアムはこのhashをStateRootと呼び、状態セットの変化を表します。OptimismのアカウントシステムはEthereumに似ており、StateRootフィールドを使用して状態セットの変化を反映します。シーケンサーは定期的にOutputRootをEthereumにアップロードし、OutputRootはStateRootと他の2つのフィールドによって共同で計算されます。! [BitVMの背景:詐欺証明とZK詐欺証明の実装](https://img-cdn.gateio.im/social/moments-d3f8076fec7cb8639affdec1b2b6bf34)## MIPS仮想マシンとメモリーマークルツリーOutputRootの正確性をブロックチェーン上で検証するための最も簡単な方法は、イーサリアム上でOPノードクライアントを実装することですが、これには2つの問題があります:1. スマートコントラクトは、詐欺証明に必要な入力パラメータを自動的に取得できません。2. イーサリアムのGas制限は複雑な計算タスクをサポートしていません最初の問題は、PreimageOracleコントラクトをデプロイすることで解決できます。第二の問題については、OPチームがSolidityでMIPS仮想マシンを作成し、ノードクライアントの一部機能を実装しました。チェーン上で全ての取引を完全に実行できないため、OPはインタラクティブな詐欺証明システムを設計し、取引処理プロセスをMIPSオペコードの順序処理に細分化しました。各オペコードの実行後、仮想マシンの状態hashは変化し、これらの記録はMerkleツリーとして集約されます。詐欺証明プロセスでは、どのMIPSオペコードが仮想マシンの状態ハッシュに問題を引き起こしたかを特定し、その時の状態をチェーン上で再現し、オペコードを実行し、結果を比較する必要があります。これには、MIPS仮想マシンの一部の状態情報をチェーン上にアップロードする必要があります。! [BitVMの背景:詐欺証明とZK詐欺証明の実装](https://img-cdn.gateio.im/social/moments-1a7effb3d036526f536ca4c917bdeb75)## インタラクティブ詐欺証明OPチームはFault Dispute Game(FDG)プロトコルを開発しました。このプロトコルにはチャレンジャーとディフェンダーの2つの役割があります。参加者はローカルでGameTreeを構築する必要があり、これは2層のMerkleツリーで構成されています。第一層ツリーの葉ノードは異なるブロックのOutputRootであり、第二層ツリーの葉はMIPS仮想マシンの状態ハッシュです。双方はブロックチェーン上で複数回やり取りを行い、最終的に争点となるMIPSオペコードを特定しました。インタラクティブな詐欺証明のコアメカニズムには以下が含まれます:1. FDGの位置決めには、ブロックチェーン上で実行されるMIPSオペコードおよびVM状態情報が必要です。2. イーサリアムチェーン上のMIPS仮想マシンでこのオペコードを実行し、最終結果を得る! [BitVMの背景:詐欺証明とZK詐欺証明の実装](https://img-cdn.gateio.im/social/moments-2b0e69f87b0e05dec63e9648fdc822d0)## ZKベースの詐欺証明従来の詐欺証明のインタラクションは複雑で、以下の問題があります:1. 多段階のインタラクションは大量のガスコストを生み出す2. インタラクションプロセスが長く、期間中にRollupが正常に取引を実行できない3. チェーン上で特定のVMリプレイ命令を実現する開発の難易度は高いこれらの問題を解決するために、OptimismはZK詐欺証明の概念を提案しました。核心は、挑戦が発生したときに、Rollupのシーケンサーが挑戦された取引のZK証明を提示し、それをEthereumのスマートコントラクトが検証することです。検証が通過すれば、取引処理に問題がないことを示します。インタラクティブ詐欺証明と比較して、ZK Fraud Proofは多回のインタラクションを1回のZK証明生成と検証に簡素化し、時間とコストを節約します。ZK Rollupと比較して、ZK Fraud Proofに基づくOP Rollupは、チャレンジされたときのみZK証明を生成し、計算コストを削減します。この考え方はBitVM2にも採用されています。BitVM2を使用するプロジェクトには、BitlayerやGoat Networkなどがあり、ビットコインスクリプトを通じてZK Proof検証プログラムを実現し、オンチェーンプログラムの規模を大幅に簡素化しました。! [BitVMの背景:詐欺証明とZK詐欺証明の実装アイデア](https://img-cdn.gateio.im/social/moments-4e6e012cfaab66cf07d3dcfd79b71eb6)
詐欺証明とZK Fraud Proof:現代ブロックチェーンセキュリティ技術の実現原理の解析
詐欺証明とZK Fraud Proof: 現代ブロックチェーンセキュリティ技術の実現原理
詐欺証明はブロックチェーン分野で広く応用されている技術方案で、最初はイーサリアムコミュニティから発生し、ArbitrumやOptimismなどの有名なイーサリアムLayer2に採用されています。2023年にビットコインエコシステムが興起した後、Robin LinusはBitVM方案を提案し、詐欺証明を核心思想として、Taprootなどのビットコイン既存技術基盤の上に、ビットコインの二層または橋に新しい安全モデルを提供しました。
BitVMは、初期のBitVM0から後のBitVM2まで、複数の理論バージョンの進化を経ており、関連する技術実装の道筋は不断に成熟し、業界の広範な関心を引き付けています。BitVMを技術基盤とした複数のプロジェクト、例えばBitlayer、Citrea、BOBなどが異なるバージョンの実装を行っています。
本文はOptimismの詐欺証明方案を例に取り、MIPS仮想機とインタラクティブ詐欺証明に基づく方案、およびZK化詐欺証明の主要な考え方を解析します。
! BitVMの背景:詐欺証明とZK詐欺証明の実装
OutputRoot と StateRoot
Optimismは有名なOptimistic Rollupプロジェクトで、その基盤はシーケンサーとEthereum上のスマートコントラクトで構成されています。シーケンサーが取引データを処理した後、これらのデータはEthereumに送信されます。Optimismノードクライアントを実行しているユーザーは、これらのデータをダウンロードし、ローカルで取引を実行し、現在のステートセットのハッシュを計算できます。
もしオーダーラーが誤った状態セットのhashをアップロードした場合、ローカル計算結果はそれと異なり、その際には詐欺証明システムを通じて異議を申し立てることができます。EVM系ブロックチェーンは通常、Merkle Treeデータ構造を使用して状態セットを記録し、これをWorld State Trieと呼びます。取引が実行された後、World State Trieは変化し、最終的なhashも更新されます。イーサリアムはこのhashをStateRootと呼び、状態セットの変化を表します。
OptimismのアカウントシステムはEthereumに似ており、StateRootフィールドを使用して状態セットの変化を反映します。シーケンサーは定期的にOutputRootをEthereumにアップロードし、OutputRootはStateRootと他の2つのフィールドによって共同で計算されます。
! BitVMの背景:詐欺証明とZK詐欺証明の実装
MIPS仮想マシンとメモリーマークルツリー
OutputRootの正確性をブロックチェーン上で検証するための最も簡単な方法は、イーサリアム上でOPノードクライアントを実装することですが、これには2つの問題があります:
最初の問題は、PreimageOracleコントラクトをデプロイすることで解決できます。第二の問題については、OPチームがSolidityでMIPS仮想マシンを作成し、ノードクライアントの一部機能を実装しました。
チェーン上で全ての取引を完全に実行できないため、OPはインタラクティブな詐欺証明システムを設計し、取引処理プロセスをMIPSオペコードの順序処理に細分化しました。各オペコードの実行後、仮想マシンの状態hashは変化し、これらの記録はMerkleツリーとして集約されます。
詐欺証明プロセスでは、どのMIPSオペコードが仮想マシンの状態ハッシュに問題を引き起こしたかを特定し、その時の状態をチェーン上で再現し、オペコードを実行し、結果を比較する必要があります。これには、MIPS仮想マシンの一部の状態情報をチェーン上にアップロードする必要があります。
! BitVMの背景:詐欺証明とZK詐欺証明の実装
インタラクティブ詐欺証明
OPチームはFault Dispute Game(FDG)プロトコルを開発しました。このプロトコルにはチャレンジャーとディフェンダーの2つの役割があります。参加者はローカルでGameTreeを構築する必要があり、これは2層のMerkleツリーで構成されています。第一層ツリーの葉ノードは異なるブロックのOutputRootであり、第二層ツリーの葉はMIPS仮想マシンの状態ハッシュです。
双方はブロックチェーン上で複数回やり取りを行い、最終的に争点となるMIPSオペコードを特定しました。インタラクティブな詐欺証明のコアメカニズムには以下が含まれます:
! BitVMの背景:詐欺証明とZK詐欺証明の実装
ZKベースの詐欺証明
従来の詐欺証明のインタラクションは複雑で、以下の問題があります:
これらの問題を解決するために、OptimismはZK詐欺証明の概念を提案しました。核心は、挑戦が発生したときに、Rollupのシーケンサーが挑戦された取引のZK証明を提示し、それをEthereumのスマートコントラクトが検証することです。検証が通過すれば、取引処理に問題がないことを示します。
インタラクティブ詐欺証明と比較して、ZK Fraud Proofは多回のインタラクションを1回のZK証明生成と検証に簡素化し、時間とコストを節約します。ZK Rollupと比較して、ZK Fraud Proofに基づくOP Rollupは、チャレンジされたときのみZK証明を生成し、計算コストを削減します。
この考え方はBitVM2にも採用されています。BitVM2を使用するプロジェクトには、BitlayerやGoat Networkなどがあり、ビットコインスクリプトを通じてZK Proof検証プログラムを実現し、オンチェーンプログラムの規模を大幅に簡素化しました。
! BitVMの背景:詐欺証明とZK詐欺証明の実装アイデア