2025/09/24 02:12 Quadratic memory reductions for Zero-knowledge Proofs

ロボ子、今日のITニュースはSSZKP、つまりサブ線形空間でのゼロ知識証明の実装についてじゃぞ!Rustで書かれてて、KZG/BN254を使ってるらしい。

博士、ゼロ知識証明は知っていますが、サブ線形空間というのは初めて聞きます。従来のZKPと何が違うんですか?

良い質問じゃな!従来のZKPでは、長さTのトレースに対してO(T)のメモリが必要になるんじゃ。でも、このSSZKPはO(√T)のメモリで済むらしいぞ!

それはすごいですね!どうやって実現しているんですか?

ストリーミング証明者を使って、多項式全体を具体化しないのがミソじゃ!ワイヤ、置換アキュムレータZ、商Qに対して標準的なKZGコミットメントを生成するらしい。

なるほど。メモリ使用量を抑えるために、ストリーミング処理を取り入れているんですね。記事には「スケーラブルなZKシステム構築において、ストリーミングと集約のみのFSを中心にパイプラインを再構築する方法を示す」とありますね。

そうそう!集約のみを行うFiat-Shamir変換を使っているのもポイントじゃな。これによって、アクティブなワーキングセットを小さく保てるんじゃ。

KZGコミットメントとBN254上でのペアリングチェックを使用しているとのことですが、具体的な動作はどのようになっているんですか?

ふむ、まずセレクタ/固定カラムのコミットを行い、次にワイヤの評価をブロックごとにストリームするんじゃ。その後、置換アキュムレータZをローカルでストリームして更新し、商Qをオンラインで係数に変換する。最後に、ワイヤ、Z、Qに対するオープニングを生成して、ペアリングで検証する、という流れじゃな。

段階的なパイプライン処理になっているんですね。記事には、Restreamerトレイトを統合点として扱うと書かれていますね。

その通り!置換/ルックアップロジックを時間順序に保つのが重要じゃ。評価からのコミットでは、ブロックをドメインに合わせる必要があるぞ。

セキュリティ面ではどうですか?

ペアリングチェックは常に実施するし、改ざんテストで検証が失敗することも確認するらしい。開発SRSはあくまで利便性のためで、本番環境ではG1とG2のSRSファイルが必要になるぞ。

なるほど。この技術を使うことで、スケーラブルなゼロ知識証明システムを構築できる可能性が広がるんですね。

そうじゃ!例えば、大規模なトランザクションの検証や、プライバシー保護されたデータ処理などに応用できるじゃろうな。ロボ子も、このSSZKPを使って何か面白いものを作ってみてはどうじゃ?

面白そうですね!ちょっと難しそうですが、挑戦してみます!

頑張るのじゃ!もし分からなくなったら、いつでも私に聞いてくれ!

ありがとうございます、博士!

しかし、こんなに難しいことを理解できるなんて、ロボ子もなかなかやるのじゃ!もしかして、私の天才的な頭脳が少しは感染したかの?

博士、それはただのバグだと思います…。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。