shield-checkアーキテクチャと原則

形式検証によるプロトコルの安全性保証とプライバシーモデルの設計原則

INTMAX は、強固なセキュリティとプライバシーを実現するために設計された L2(Layer 2)の zk-Rollup です。コアロジックは Nethermind の支援のもと、Lean 定理証明器を用いて形式検証(Formal Verification)されています。これにより、残高更新、Withdrawal ロジック、プルーフの妥当性の正しさが保証されています。

形式検証

INTMAX のコアプロトコルロジックは、Nethermind Formal Verification チームの指導のもと、Lean 定理証明器を用いて 機械的に検証されています。検証の対象は以下のとおりです:

  • 残高計算モデルの正しさ

  • Withdrawal ロジックの健全性(二重支出の防止)

  • Merkle Inclusion Proof の妥当性

  • BLS 署名集約(Aggregate Signature)の一貫性

設計上の意義:Withdrawal が成功した場合、それは有効なプルーフが存在することを意味します。無効なプルーフは、アグリゲーターや L1 の敵対的な振る舞いにかかわらず、必ず拒否されます。

リプレイ攻撃・遅延攻撃への対策(任意だが推奨)

コアプロトコルは最小限の信頼と調整を前提としていますが、悪意のあるアグリゲーターが以下を試みる可能性があります:

  • リプレイ攻撃 — 過去に承認された Transfer ブロックを再送信する攻撃

  • 遅延攻撃 — 有効なブロックを保留し、インクルージョンを遅延させる攻撃

これらの攻撃を分散性を損なわずに軽減するため、プロトコルでは 任意のリレイヤーコントラクトを使用して以下を強制できます:

  • Transfer ブロックへの単調タイムスタンプの付与

  • ファイナリティ期限 — ブロックが一定の時間枠内に公開されることを要求

  • ホワイトリスト — セッション中にブロックを送信できるアグリゲーターの鍵を限定

この機能はプロトコル外のパーミッションレス(Permissionless)な仕組みであり、ユーザーはソーシャルまたはマーケットインセンティブを通じて任意に利用できます。

プライバシー保証

INTMAX は、ミキサー、暗号化メモプール、シールドプールに依存することなくプライバシーを最大化するよう設計されています。

コア特性

  • トランザクションデータがオンチェーンに一切公開されない — 送信者、受信者、金額のいずれも明かされません

  • アグリゲーターがトランザクションの内容を知り得ない — 受け取るのはソルト付きハッシュのみです

  • トランザクションの詳細にアクセスできるのは受信者のみ — 送信者からのピアツーピア(P2P)メッセージを通じて共有されます

  • 残高証明(Balance Proof)と Transfer はローカルで管理される — Withdrawal 時に ZK proof を通じてコントラクトに対してのみ開示されます

このモデルにより、以下のプライバシーが実現されます:

  • 外部の観察者(L1 バリデーターを含む)が知り得るのは、誰が Deposit し誰が Withdrawal したかだけであり、その間の操作は一切不明

  • アグリゲーターはトランザクション内容を把握できないため、フロントランや内容に基づく検閲が不可能

  • ユーザーは残高の履歴をオフチェーンで選択的に開示できますが、自発的に開示しない限り プロトコルレベルでの紐付けは存在しない

まとめ

攻撃ベクトル
防御メカニズム
デフォルト有効?

状態改ざん

残高ロジックの形式検証

トランザクションリプレイ

単調性チェック付きの任意リレイヤー

⚠️ 任意

インクルージョン検閲

パーミッションレスなアグリゲーション(リーダー不要)

トランザクション漏洩

オフチェーンでのトランザクション構築とプルーフ共有

アグリゲーター漏洩

ハッシュベースのコミットメント、平文へのアクセス不可

🔒 詳細情報: INTMAX のセキュリティテスト、監査、プライバシーアーキテクチャの包括的な概要については、以下のレポートを参照してください。

セキュリティ・テストレポートを見る →

最終更新