ZKByte: ゼロ知識証明と BitVm に基づくビットコイン Layer2 拡張ソリューション
著者:ZKBase
本設計の主な目標は、ビットコインブロックチェーンのために特別にカスタマイズされたLayer2ネットワークを構築することです。ビットコインLayer2ネットワークは、ビットコインエコシステム内でますます高まる、より迅速で効率的な取引の需要に応えることを目的としています。特定の取引処理タスクをメインネットから解放することにより、ビットコインメインネットの混雑問題を緩和し、取引確認に必要な時間を大幅に短縮することを目指しています。
ビットコイン仮想マシン(VM)の計算能力には固有の制限があるため、私たちの設計ではBitVMを使用しており、これは二層ネットワーク間でスマートコントラクトを実行する可能性を示しています。挑戦と応答のスキームを利用することで、BitVMはビットコインネットワークのプログラム可能性に対する新しいアプローチを示し、従来の制限を打破しました。
ビットコインLayer2ネットワークのセキュリティと完全性を強化するために、この設計はゼロ知識証明(ZK)技術を統合して状態検証を実現しています。これらの先進的な暗号技術により、ビットコインメインネットはLayer2ネットワークの状態を効果的に検証でき、基盤となる取引のプライバシーと機密性を損なうことなく行えます。ゼロ知識証明は、取引の具体的な詳細を漏らすことなく情報を検証できるため、プライバシーを保護しつつLayer2ネットワークの完全性を確保します。
全体として、この設計はLayer2ネットワーク、BitVMを用いたスマートコントラクトの実行、ゼロ知識証明技術を統合した状態検証を通じて、ビットコインネットワークのスケーラビリティ、速度、効率を向上させることを目指しており、同時に基盤となる取引のプライバシーとセキュリティを維持します。
0、アーキテクチャ
Layer2ブロックチェーンはアカウントモデルを採用しています。全体のブロックチェーンの状態は、Halo2証明システムに基づくzkVMによって検証されます。Layer2の状態はビットコインメインネットと同期され、すべてのLayer2の状態はBitVMによって実現されたゼロ知識証明(ZKP)検証者によって検証されます。私たちは、すべてのLayer2の状態を追跡するために1つのUTXOを使用します。また、信頼できるオラクルを使用して、ロック/アンロックスクリプトの入力/出力のみがLayer2プロトコルに従うことを保証します。
1、Layer2委員会と信頼できるオラクル
選ばれたユーザーのグループで構成されるLayer2委員会は、Layer2ネットワークの全体的な運営状況を監視する責任があります。プロトコルに問題が発生した場合、委員会は介入し、プロトコルを停止してすべてのユーザーの資産を保護することができます。信頼できるオラクルは、入力/出力UTXOとスクリプトの正確性を検証するために非常に重要です。
2、第一層から第二層へ
ビットコインネットワーク上にLayer2プロトコルを表す単一のTaprootアドレスを作成します。UTXOを作成し、それをTaprootアドレスに移動させると、対応するUTXOは実際にビットコインメインネットからLayer2に「チャージ」されます。
プロトコルまたは委員会アカウントは、Layer2に「チャージ」されたすべてのUTXO資産の「移転」権限を専門に処理します。プロトコル、信頼できるオラクル、または委員会アカウントのみが、格納されたUTXOの所有権を変更できます。信頼できるオラクルは、所有権移転取引に正しい出力UTXOスクリプトが含まれていることを保証します。
3、ビットコインメインネットへのブロックの同期
すべてのLayer2ネットワークの状態は、ブロックの形式でビットコインメインネットに同期されます。1つのブロックには、以下の情報が提供される必要があります:
- 特定のブロック内の取引
- これらの取引を適用した後の新しいアカウント状態
- 現在のブロック状態における新しいUTXO(プロトコルが破損しても常に準備されている)
- ビットコインネットワークのブロック情報
- ゼロ知識証明(前のブロックから現在のブロックへの状態遷移が正しいことを証明する) これらすべてのビットコインメインネットの状態は、1つのUTXO取引履歴に記録されます。
3.1 証明に関する詳細
ゼロ知識証明はLayer2の正確性を検証するために使用されます。以下の内容を証明しようとします:
- Layer2のブロック取引が正しく署名されている。
- すべてのアカウントの新しい状態が正しく処理されている。
- ビットコインメインネットの特定のブロック以前のすべてのチャージ取引が正しく処理されている。
- 現在の状態に対して、すべてのUTXOの配分が正しく作成されている。
3.2 ブロック情報の挑戦
ビットコインメインネット内の指定されたブロック情報の正確性を確保するために、挑戦と応答のスキームを使用します。証明者は、ロックされた時間帯内に特定のブロックの後にN個のブロックが存在することを指摘することで、ブロック情報の正確性を証明できます。
3.3 ZKP回路とBitVMの強化
BitVM論文に示されているように、ZKP検証は2つの参加者によって挑戦されるバイナリ回路として表現できます。事前署名された取引を通じて、回路のビットコミットメントを取得するための挑戦を送信できます。0と1が明らかにされると、挑戦は成功します。BitVMを使用してZKPを検証するには、以下の2点に注意する必要があります:
同じバイナリ回路のコミットメントは一度しか使用できません。つまり、同じ回路のコミットメントが複数のブロックに使用されると、1つのビットコミットメントの0と1が明らかにされる可能性があります。
ZKP検証においては、回路の満足性に加えて「公共入力」も確認する必要があります。
これらの2つの欠点に対処するために、Layer2の各ブロックに対してユニークなバイナリ回路を作成し、「公共入力」を固定します。ビットコインスクリプトは公共入力のハッシュを処理し、チェックするために使用されます。正しい公共入力ビットコミットメントは信頼できるオラクルによってチェックされます。回路の満足性に関しては、委員会内の任意のメンバーが挑戦を提起する権利を持っています。
4、Layer2からビットコインメインネットへ
資産は、Layer2からビットコインメインネットに移動するために2つの方法があります:引き出し(withdrawal)と強制引き出し(force-withdrawal)。 引き出し取引はLayer2からトリガーされ、ZKP回路は取引が期待通りに処理されることを保証します。強制引き出し取引はビットコインネットワークから開始されます。
4.1 引き出しと強制引き出し取引
Layer2からトリガーされる引き出し取引は、ZKP回路を使用して検証され、取引が正しく処理されることを保証します。ビットコインネットワークから開始される強制引き出し取引は、次のブロック状態更新に含まれる必要があります。
4.2 UTXO配分
ブロックの状態が更新されると、UTXO配分が同期されます。プロトコルが停止した場合、すべてのUTXOを適用してすべてのユーザー資産の安全を確保できます。これらのUTXOの中で、引き出しまたは強制引き出しのUTXOのみがプロトコルによって署名されます。
5、Layer2の退出
ZKPが検証されない場合、委員会はプロトコルを停止し、退出しなければなりません。プロトコルが停止した場合、委員会はLayer2の最新ブロック状態に指定されたすべてのUTXO配分に署名します。これらの署名を持って、ユーザーはLayer2から引き出しを行い、損失を被ることはありません。
参考文献:
- BitVM: https://bitvm.org/bitvm.pdf
- Bitcoin Whitepaper: https://bitcoin.org/bitcoin.pdf
- Halo2の説明: https://electriccoin.co/blog/explaining-halo-2/