暗号レイヤ

Poseidonハッシュ

Poseidon Hash

ZK 回路上での計算量が極めて軽い代数的ハッシュ関数。StarkWare らが 2019 年に提案、StarkNet/Cairo の主要ハッシュとして採用される。

定義

Poseidon は HADES 設計戦略 (置換-置換ネットワーク + 部分 S-box 層) に基づく。完全ラウンド (R_F) と部分ラウンド (R_P) の組み合わせで衝突耐性を維持しつつ、ZK 回路上の制約数を SHA-256 比で 1〜2 桁削減する。

標準パラメータは素体 p = 2^251 + 17·2^192 + 1 上で定義される (StarkWare 公式仕様)。Filecoin・Aztec・Penumbra など主要 ZK プロジェクトが採用済み。Ethereum でも Poseidon precompile (EIP-5988) が提案されている。

設計上、Keccak / SHA-2 のようなビット演算ベースのハッシュは ZK 回路上で扱うと制約数が爆発する。Poseidon は乗算と加算のみで構成されるため、回路コストが入力長に対して線形に近い。

Lemma Oracle での実装

Lemma は docHash の内部表現を Poseidon でハッシュ化する。回路内で docHash を吸い込み、属性・来歴・コミットメントを 1 つの ZK 友好的なハッシュチェーンに収束させる設計。

後段の ゼロ知識証明 生成において、Poseidon の選択が証明時間を桁単位で削減する。エンドユーザー視点では「証明が即時に生成される」体験の前提条件となる。

外部互換のための SHA-256 系識別子 (CID など) と、回路内部の Poseidon 表現は二層で持つ。互換性と効率性のどちらも妥協しない構成。

始める

ZK 回路の制約を、設計から最適化する。