潔白の証明(Proof of Innocence)

計画中 — この機能は開発中であり、将来のリリースで利用可能になる予定です。

概要

Proof of Innocence(潔白の証明)により、ユーザーはプライベート送金がブラックリストに載ったアドレスからの資金を含まないことを、送金元を明かすことなく証明できます。

仕組み

  1. ブラックリストに載った送金の除外ツリーが公開されます
  2. ユーザーは自分の送金がこの除外ツリーに含まれていないことを証明するゼロ知識証明を生成します
  3. 検証者はこの証明を検証し、ユーザーの送金が「潔白」であることを確認できます

暗号設計

除外ツリー

制裁対象またはブラックリストに載ったアドレスに関連するすべての送金はPoseidonマークルツリーに集約されます。このツリーは公開で検証可能です。

非メンバーシップ証明(Novaステップ)

Nova IVC(Incrementally Verifiable Computation)を使用して、ユーザーの送金が除外ツリーに含まれていないことの効率的な証明を生成します。これにより:

  • 送金元を明かすことなく「潔白」を証明
  • バッチ処理により複数の送金を効率的に一度に証明
  • 証明サイズが一定であり、スケーラブル

CLI使用方法(計画中)

潔白の証明を生成

zerc20-cli proof-of-innocence generate \
  --exclusion-tree <EXCLUSION_TREE_FILE> \
  --invoice-id <INVOICE_ID> \
  --output <PROOF_OUTPUT_FILE>

潔白の証明を検証

zerc20-cli proof-of-innocence verify \
  --exclusion-tree <EXCLUSION_TREE_FILE> \
  --proof <PROOF_FILE>

使用例

# 1. 除外ツリーをダウンロード
zerc20-cli proof-of-innocence download-tree --output exclusion_tree.json

# 2. 自分のインボイスに対する潔白の証明を生成
zerc20-cli proof-of-innocence generate \
  --exclusion-tree exclusion_tree.json \
  --invoice-id my-invoice-123 \
  --output my_proof.json

# 3. 証明を検証
zerc20-cli proof-of-innocence verify \
  --exclusion-tree exclusion_tree.json \
  --proof my_proof.json

入力ファイル形式

除外ツリーファイルはJSON形式で、ブラックリストに載った送金のマークルツリーデータを含みます。証明ファイルもJSON形式で、生成されたゼロ知識証明データを含みます。