要点
zk-SNARKs と zk-STARKs は、ゼロ知識証明という概念を用いて、ある当事者が別の当事者に対して情報の「知識」を明かすことなく証明できるようにする暗号ツールです。
zk-SNARKs は公開パラメータを生成するために初期の信頼されたセットアップが必要ですが、zk-STARKs は透明であり、この要件をなくし、公開検証可能なランダム性だけを使います。
zk-STARKs は zk-SNARKs よりも大きな証明サイズを生成しますが、楕円曲線暗号ではなくハッシュ関数への依存によって潜在的な量子コンピューティングの脅威に対してより耐性が高いと考えられています。
両方の技術は現在、ブロックチェーンのスケーラビリティで広く利用されています。大量のトランザクションを処理し、イーサリアムのメインネットへ単一のコンパクトな証明を提出するレイヤー2ネットワークを支えています。
PLONK のような新しいSNARKの構成は、複数の異なるプログラムにまたがって機能するユニバーサルセットアップを可能にすることで、信頼されたセットアップの懸念を軽減しました。Plonky2、Plonky3、Circle STARKs などのより新しいシステムも、引き続きこの分野を前進させています。
はじめに
zk-SNARKs と zk-STARKs は、ゼロ知識証明(ZK証明)の2つの実装です。これは、暗号技術によって、ある当事者が基となるデータを共有せずに「ある主張が真であること」を証明できる仕組みです。どちらも、現代のブロックチェーンがプライバシーとスケーラビリティを扱う中心的な存在になっています。
これらの技術に最初に関心が集まったのは、暗号資産におけるプライバシー用途でした。しかし時間の経過とともに、最もインパクトのあるユースケースはスケーラビリティへと移っていきました。ZK証明は現在、イーサリアム上の最大級のレイヤー2ネットワークの一部を支えており、セキュリティを犠牲にせずに、より速くより安価なトランザクションを可能にしています。
この記事では、zk-SNARKs と zk-STARKs の仕組み、両者の違い、そして実際の場面でどのように使われているかを説明します。
ゼロ知識証明とは何ですか?
ゼロ知識証明では、証明者が、主張が真であること以外は何も明かさずに、その主張が真であることを検証者に納得させることができます。代表的な例えは「アリババの洞窟」です。真ん中に魔法の扉がある指輪のような形の洞窟を想像してみてください。アリスは、その扉を開けるための秘密の言葉を知っていると主張します。
ボブは外で待ちます。アリスが洞窟に入ると、ボブは「どの出口から出てきてほしいか」を叫びます。もしアリスが一貫して正しい出口から現れるなら、ボブは、アリスが秘密の言葉を知っていることに確信を持ちます。ボブは言葉を聞くことはないのにです。このプロセスは繰り返すことができ、運に当たって当ててしまう可能性を減らせます。
ZK証明は、この概念を暗号学的なプロトコルへと置き換え、計算の検証、本人確認(認証)、およびトランザクションの検証を行うために使われます。その際、基となる情報は一切さらしません。
zk-SNARKs とは何ですか?
zk-SNARK は、ゼロ知識・短い・非対話型の「知識のための論証(zero-knowledge succinct non-interactive argument of knowledge)」の略です。Zcash は、最初期に zk-SNARKs を実装した暗号資産プロジェクトの1つで、秘密の取引を可能にするために利用しました。これは、取引金額やアドレスを明かすことなく、ネットワークが取引を検証できるようにするためです。
「短い(Succinct)」とは、基となる計算が複雑でも、証明が小さく検証が素早いことを意味します。「非対話型(Non-interactive)」とは、証明者と検証者が複数のメッセージをやり取りする必要がないことを意味します。証明者が証明を生成し、検証者が1ステップでそれを検査します。これにより、zk-SNARKs はブロックチェーン用途で実用的になります。
従来の zk-SNARKs には、信頼されたセットアップ段階が必要です。これは、証明者と検証者の両方が使用する共有された一連の公開パラメータを生成することを含みます。このセットアップで使われるランダム性が何らかの形で漏れてしまえば、誰かが不正な証明を作り、それが正当なように見せられる可能性があります。Zcash は、複数当事者による計算(マルチパーティ計算)による儀式でこれに対処しました。この儀式では、複数の参加者がそれぞれランダム性を提供します。少なくとも1人が自分の分を破棄する限り、セットアップは安全とみなされます。
より新しいSNARKの構成、特に PLONK(2019)は、ユニバーサルで更新可能な信頼されたセットアップを用います。つまり、サーキットごとに別の儀式を行うのではなく、同じセットアップが多くの異なるプログラムで使えるということです。これにより、信頼されたセットアップに関する実務上の懸念が大きく減ります。その後も、Plonky2 や Plonky3 のようなシステムが、SNARKのような短い証明性とSTARKのような透明性の性質を組み合わせ続け、さらに Circle STARKs が特定の計算タイプでの効率性向上を提供しています。
zk-STARKs とは何ですか?
zk-STARK は、ゼロ知識・スケーラブル・透明な「知識のための論証(zero-knowledge scalable transparent argument of knowledge)」の略です。「透明(transparent)」の部分が重要な違いです。zk-STARKs は信頼されたセットアップを必要としません。ハッシュ関数から生成される、公開検証可能なランダム性に依存しています。そのため、儀式の参加者を信頼する必要なく、誰でもセットアップパラメータを検証できます。
zk-STARKs は、ほとんどのSNARK構成の基盤となっている楕円曲線暗号ではなく、衝突耐性のあるハッシュ関数を使います。これにより理論上、楕円曲線ベースの方式を破ってしまう可能性のある量子コンピュータからの攻撃に対して、より耐性がある可能性があります。ハッシュ関数は一般的に、より量子耐性が高いと考えられています。
トレードオフは証明サイズです。zk-STARK の証明は zk-SNARK の証明よりも大幅に大きく、その結果、オンチェーンで公開する必要のあるデータ量が増えます。文脈によっては取引コストが上がることにつながり得ますが、研究者は引き続き証明サイズを削減する方法を見つけようとしています。
zk-SNARKs と zk-STARKs:主な違い
2つの技術は似た目的を持ちますが、異なるトレードオフを採用しています。zk-SNARKs はより小さく、検証が速い証明を生成でき、ツール面のエコシステムもより成熟しています。主な欠点は信頼されたセットアップ要件で、調整や信頼の負担が生じます。ただし、新しい構成によってこれは軽減されています。
zk-STARKs は信頼されたセットアップを完全に排除するため、監査やデプロイが容易です。証明は大きくなりますが、潜在的な量子コンピューティングの進展に対してより「将来に強い(future-proof)」と考えられています。主要なイーサリアムのレイヤー2である Starknet は zk-STARKs に基づいて構築されています。ZKsync は Boojum という独自の証明システムを使っており、どちらか一方のカテゴリにきれいに収まるというより、SNARK と STARK の設計思想の両方を取り入れています。Polygon zkEVM は主に SNARK ベースの証明に基づいて構築されています。
2026年のほとんどの実用的なブロックチェーン用途では、両方の技術はどちらも有力です。選択は、特定の実装要件、利用できるツール、そしてチームがそれぞれの仕組みにどれだけ慣れているかに左右されることが多いです。
zk-SNARKs と zk-STARKs のユースケース
現在最も重要なユースケースはレイヤー2のスケーラビリティです。ZKロールアップは多数のトランザクションをオフチェーンでバッチ処理し、そのすべてのトランザクションが有効であることを証明する単一のZK証明をイーサリアムのメインネットに提出します。これにより、ベースレイヤーのセキュリティ保証を弱めることなく、はるかに多くのトランザクションをより低コストで処理できます。
ZKsync や Starknet のようなプロジェクトは、それぞれの証明システムを使ったZKベースのレイヤー2ネットワークを運用しています。zkEVM 技術の開発により、イーサリアム仮想マシン(EVM)と互換性のある汎用用途のスマートコントラクト実行に対して、ZK証明が実用的になりました。2026年時点で、複数の稼働中の zkEVM ネットワークが本番環境で稼働しています。
スケーラビリティ以外にも、ZK証明はプライバシー保護型の取引(Zcash のようなケース)、個人情報を開示せずに属性を証明できる分散型アイデンティティ・システム、そして検証可能な投票システムに使われます。楽観ロールアップと比べると、ZKロールアップはメインネットへの出金に7日間のチャレンジ期間を必要としない利点があります。実際には、証明生成にまだ時間がかかるため出金は即時にはできませんが、チャレンジ用ウィンドウがないことで、ファイナリティ(確定)は大幅に速く到達できます。
よくある質問(FAQ)
zk-SNARKs と zk-STARKs の違いは何ですか?
zk-SNARKs は、より小さく検証の速い証明を生成できますが、信頼されたセットアップ(trusted setup)が必要です。zk-STARKs はその信頼されたセットアップを排除し、より量子耐性が高いと考えられていますが、証明サイズが大きくなります。どちらも現在の主要なブロックチェーンのレイヤー2ネットワークで使われています。簡単な参照として、ゼロ知識証明の用語集エントリをご覧ください。
なぜ zk-SNARKs には信頼されたセットアップが必要なのですか?
zk-SNARKs を動作させるには、共有された一連の公開パラメータが必要です。これらのパラメータは、セットアップ段階で秘密のランダム性を使って生成されます。もしそのランダム性が漏洩すれば、誰かが偽の証明を作れてしまう可能性があります。PLONK のような新しいSNARK設計はユニバーサルセットアップを採用し、必要な信頼を大きく減らしています。
zk-STARKs は zk-SNARKs より安全ですか?
zk-STARKs は信頼されたセットアップを完全に取り除き、ハッシュ関数ベースの暗号を使います。これは、多くのSNARKシステムで使われている楕円曲線暗号に比べて、量子コンピューティングの脅威に対してより耐性があると考えられています。「より安全かどうか」は、具体的な脅威モデルと実装の詳細によって変わります。
どのブロックチェーンが zk-SNARKs か zk-STARKs を使っていますか?
Zcash はプライベート取引用に zk-SNARKs を使います。Starknet はイーサリアムのレイヤー2に電力を供給するために zk-STARKs を使います。ZKsync Era は、両方のアプローチの要素を組み合わせた独自の証明システム(Boojum)を使います。Polygon zkEVM は、ZKロールアップのスケーラビリティに SNARK ベースの証明を使っています。ZK証明システムは、ブロックチェーン基盤の中でも特に活発に開発されている分野の一つです。
zk証明は暗号の外でも使えますか?
はい。ZK証明には、プライバシー保護型の本人確認(パスポートを開示せずに年齢や市民権を証明すること)、安全な投票システム、認証されたデータ照会などの用途があります。ただし、2026年時点で最も成熟し広く展開されている用途は、ブロックチェーンネットワーク上での利用であり続けています。
まとめの所感
zk-SNARKs と zk-STARKs は、ゼロ知識証明技術の重要な2つの実装です。もともとは暗号資産における主にプライベート取引と結び付けられていましたが、ZK証明はレイヤー2のスケーラビリティ、アイデンティティ・システム、そして汎用的な計算の検証へと広がってきました。
両技術は引き続き急速に進化しています。証明サイズは縮小し、ツール類も成熟しており、より新しい証明システムによって「SNARK」と「STARK」の境界がさらに曖昧になってきています。信頼されたセットアップ、証明サイズ、量子耐性といったトレードオフを理解しておくと、この分野の動きをより分かりやすく追いやすくなります。
さらに読む
ゼロ知識証明とは何か、そしてブロックチェーンにどう影響するのか?
ZKロールアップとは何ですか?レイヤー2スケーラビリティの手法
楽観ロールアップ vs ゼロ知識ロールアップ:違いは何ですか?
zkEVM とは何で、どのようにイーサリアムのエコシステムを強化できますか?
免責事項:本コンテンツは一般情報および教育目的のために、いかなる種類の表明や保証も伴わずに「現状のまま」提供されています。これは、金融・法律・その他の専門的助言として解釈されるべきではなく、特定の製品やサービスの購入を推奨する意図もありません。適切な専門家アドバイザーからご自身で助言を得てください。コンテンツが第三者によって提供されている場合、その見解は当該第三者の見解であり、Binance Academy の見解を必ずしも反映するものではない点にご留意ください。デジタルアセットの価格は変動する可能性があります。投資した資産の価値は上がる場合も下がる場合もあり、投資金額がそのまま回収できる保証はありません。投資判断の責任はすべてご自身にあり、Binance Academy は、万一あなたが被った損失について一切の責任を負いません。詳細は、利用規約、リスクに関する警告、および Binance Academy の規約をご覧ください。
