要点

  • ゼロ知識証明(ZKP)とは、ある当事者が、基礎となるデータを明かさずに「ある主張が真であること」を証明できるようにする暗号技術です。

  • ZKPは、ウォレットアドレスや金額といった機密情報を公開することなく取引を検証できるため、ブロックチェーンにおけるプライバシーとセキュリティを高めます。

  • zk-SNARKとzk-STARKは、現在使われているゼロ知識証明(zero-knowledge proofs)の主な2種類であり、速度、証明サイズ、信頼できるセットアップの必要性などに関してそれぞれ異なるトレードオフがあります。

  • zkロールアップはZKPを使って多くの取引をオフチェーンでまとめ、オンチェーンに1つの暗号学的な証明を提出することで、スループットを向上させ、手数料を削減します。

  • 実世界でのZKPの応用例には、プライベート取引、本人確認(アイデンティティ検証)、分散型金融(DeFi)、クロスチェーン相互運用性が含まれます。

Binance Academy courses banner

はじめに

ブロックチェーンは透明性を中心に構築されています。公開ネットワーク上のあらゆる取引は、見ようと思えば誰でも確認できます。その透明性は信頼を生みますが、同時に根本的な緊張関係も生み出します。つまり、基になるデータを開示せずに何かを検証する必要がある場合があるのです。

ゼロ知識証明は、この問題を解決します。これは「証明者」と呼ばれる当事者が、「検証者」と呼ばれる別の当事者に対して、単一の事実以外の情報を何も開示せずに、その主張が真であることを納得させる手段です。名前はその考え方そのものに由来しています。検証者は基になるデータについてはゼロ知識を得ないのに、それでも主張が有効であると確信できます。

ZKPsは1980年代から暗号分野における理論上の概念でしたが、ブロックチェーンでの実用的な実装が現実的になったのは2010年代になってからです。それ以来、ZKPsはこの分野で最も精力的に開発されている技術の一つとなり、プライバシー・コイン、レイヤー2のスケーリング解決策、アイデンティティ・システムの基盤を支えています。

ゼロ知識証明はどのように機能するのか

核心となるのは、ゼロ知識証明が数理プロトコルであり、証明者が検証者がチェックできる一連の条件を満たす証明を生成するということです。検証者は、元の入力を逆算して復元できなくても、証明が正しいことを確認できます。

古典的なしっくりくる比喩としては、真ん中に鍵のかかったドアがあるトンネルです。ドアの暗証(コード)を知っている証明者なら、片側から一貫して入って反対側から出られます。外から見ている検証者は、そのコード自体を一切学ぶことなく、証明を観察します。

ZKPが有効であるためには、3つの性質を満たす必要があります。完全性(completeness)は、正直な証明者なら必ず検証者を納得させられることです。健全性(soundness)は、不正な証明者は、無視できないほどの確率を除いて偽の主張を検証者に納得させられないことを意味します。ゼロ知識性(zero-knowledge)は、検証者が主張が真であるかどうか以外は何も学ばないことです。

実際には、ほとんどのブロックチェーン向けZKPは非対話型(non-interactive)です。証明者は証明をデータの一塊として生成し、検証者はそれを双方向のやり取りなしでチェックします。これにより、ZKPはオンチェーンのスマートコントラクトやレイヤー2プロトコルで実用化しやすくなります。

zk-SNARKsとzk-STARKs

ブロックチェーンで最も広く使われているゼロ知識証明の2種類は、zk-SNARKsとzk-STARKsです。どちらもオフチェーンの計算をオンチェーンで検証できますが、技術的なアプローチが異なります。

zk-SNARKs

ゼロ知識の簡潔で非対話型の知識証明(zk-SNARK)では、証明がコンパクトで検証も高速なため、Zcashのプライベート取引やイーサリアムのスマートコントラクト検証といった初期のZKP応用で人気になりました。

主な欠点は、zk-SNARKsにはトラステッド・セットアップが必要なことです。これは暗号学的パラメータの集合を生成する「儀式」です。セットアップが侵害されると、攻撃者が不正な証明を生成できる可能性があります。このリスクを最小化するために、多くのプロジェクトではマルチパーティ計算の儀式を採用しています。

zk-STARKs

ゼロ知識のスケーラブルで透明な知識証明(zk-STARK)では、トラステッド・セットアップが不要であり、トラステッド・セットアップのリスクを取り除けます。また、zk-SNARKsよりも量子コンピューティング攻撃に対して耐性が高いと考えられています。代償として、zk-STARKの証明はサイズが大きくなり、オンチェーンでの検証コストが高くなる可能性があります。StarkNetは、zk-STARKを大規模に使っている代表的な実運用ネットワークです。

zk-Rollupsとブロックチェーンのスケーリング

ZKPの最も重要な応用の一つが、ブロックチェーン向けのレイヤー2スケーリング解決策であるzk-rollupsです。zk-rollupは、数百の取引をオフチェーンで処理し、それらをバッチとして束ねて、すべての取引が有効であることを示す単一のZKPをメインチェーンに送信します。

このアプローチでは、ベース層のセキュリティを引き継ぎながら、取引スループットを大幅に向上させられます。主な代替であるオプティミスティック・ロールアップは、異議が申し立てられない限り取引は有効だと仮定するため、出金(撤回)の遅延が発生します。zk-rollupsは、投稿時点で有効性が暗号学的に証明されるため、この遅延はありません。

2024年3月に有効化されたイーサリアムのEIP-4844では、レイヤー1およびレイヤー2のロールアップデータ用の専用データ保存レイヤーとして「ブロブ(blobs)」が導入されました。これにより、ZKPバッチをオンチェーンに投稿するコストが大幅に削減され、zk-rollupsがエンドユーザーにとって大きく安くなりました。zkSync Era、Polygon zkEVM、Scroll、Taikoなど、複数のzkEVMネットワークが現在本番環境で稼働しています。

ゼロ知識証明のユースケース

プライベート取引

ZKPsは、送信者アドレス、受信者アドレス、取引金額をパブリック・ブロックチェーン上で隠すことができます。Zcashはzk-SNARKsを使ったシールド取引で先駆けとなり、利用者が資金活動を公開台帳にさらさずに取引できるようにしました。

デジタル・アイデンティティの本人確認

ZKPsは、18歳以上であることや有効な資格を保有していることなど、利用者が要件を満たしていることを、基になる書類を開示せずに証明できます。これは、分散型アイデンティティ・システム、KYC(本人確認)対応、アクセス制御などに応用できます。

DeFiのプライバシー

分散型金融(DeFi)プロトコルはZKPsを使って、秘密裏の貸し付け・借り入れ・取引を可能にできます。利用者は、十分な担保があることや貸し出し条件を満たすことを、ウォレットの履歴や残高の全てを開示せずに証明できます。

クロスチェーン相互運用性

ZKPsは、フルノードを必要とせずに、あるブロックチェーンの状態を別のブロックチェーンに対して検証できます。これにより、暗号学的セキュリティを信頼できる仲介者に頼るのではなく引き継ぐ形で、クロスチェーン・ブリッジや相互運用レイヤーを構築できるようになります。

ゼロ知識証明の限界

ZKPsは、あらゆるプライバシーとスケーリングの課題に対する完全な解決策ではありません。ZKPの生成にはかなりの計算が必要で、証明者(prover)側のハードウェア要件が高くなる可能性があります。これは証明ソフトウェアが成熟するにつれて改善していますが、小規模ネットワークでは考慮すべき点のままです。

zk-SNARKsには「トラステッド・セットアップ」が必要で、これが回避したいと考える開発者や利用者にとっては信頼仮定を生みます。また、ZKPsは健全性(soundness)の保証が確率的で、つまり誤った証明が検証に通ってしまう可能性はゼロではなく、極めて小さいということですが、実用上は一般に受け入れられていると考えられています。

最後に、ZKPテクノロジーはまだ発展途上です。ZKP回路の監査は複雑で、専門的な知識が必要です。実装の不具合(重大なバグ)がZKPの実装で複数見つかっており、本番システムに展開する前には厳密なレビューが重要であることを裏付けています。

よくある質問(FAQ)

簡単に言うと、ゼロ知識証明とは何ですか?

ゼロ知識証明とは、何かを知っていることを、その内容を明かさずに証明する方法です。証明者は、主張が真であることを検証者に納得させ、検証者は、その主張が成り立つという事実以外は何も学びません。

zk-SNARKsとzk-STARKsの違いは何ですか?

zk-SNARKsは、証明を小さく作れて検証も素早い一方、トラステッド・セットアップが必要です。zk-STARKsはトラステッド・セットアップを必要とせず、量子耐性が高いとされますが、証明が大きくなります。どちらも実運用のブロックチェーン・システムで使われています。

ゼロ知識証明はイーサリアムのスケーリングでどのように使われていますか?

zk-rollupsはゼロ知識証明を使って、多数の取引をオフチェーンで束ね、検証用の単一の証明をイーサリアムに送ります。これにより処理能力(スループット)が向上し、イーサリアムのベース層のセキュリティを維持しながら取引手数料を下げられます。

ゼロ知識証明は完全に安全ですか?

ZKPsは非常に強力な暗号学的保証を提供しますが、決して絶対無謬ではありません。zk-SNARKsにおけるトラステッド・セットアップのステップには信頼仮定が含まれます。さらに、ZKP回路の実装バグがいくつかのプロジェクトで見つかったこともあります。どんな暗号システムでも同様に、セキュリティは正しい実装と継続的なレビューに依存します。

まとめの所感

ゼロ知識証明は、理論上の概念から、現代のブロックチェーン基盤の中核となる構成要素へと進化してきました。プライバシーを可能にし、スケーラビリティを改善し、DeFi、アイデンティティ、相互運用性の領域で新しい応用を実現します。

技術は今も急速に進化し続けています。zkEVMネットワークはすでにイーサリアム上で稼働しており、コストは下がってきています。そして、ZKPベースの新しいアプリケーションも定期的に展開されています。今後数年でブロックチェーンがプライバシーとスケールを扱う方法において、ZKPsがますます中心的な役割を担う可能性は高いでしょう。

さらなる参考情報

  • zk-SNARKsとzk-STARKsの解説

  • Zk-Rollupsとは?レイヤー2のスケーラビリティ手法

  • オプティミスティック・ロールアップとゼロ知識ロールアップ:違いは何?

  • ブロックチェーンのレイヤー1とレイヤー2:スケーリング解決策の比較

  • ゼロ知識証明で暗号の透明性を高める


免責事項:本コンテンツは、一般情報および教育目的のために「現状のまま」提供されるものであり、いかなる種類の表明または保証も伴いません。これは、金融、法律、またはその他の専門的助言として解釈されるべきではなく、特定の製品やサービスの購入を推奨する意図もありません。適切な専門家アドバイザーにご自身で相談してください。第三者の貢献者によって提供された内容がある場合、そこに示される見解は当該第三者の貢献者に帰属し、必ずしもBinance Academyの見解を反映するものではありません。デジタル資産の価格は変動し得ます。投資した金額の価値は上がることも下がることもあり、投資した金額がそのまま回収できるとは限りません。投資判断はすべてご自身の責任で行ってください。またBinance Academyは、ご利用者が被る可能性のある損失について一切の責任を負いません。詳細は、利用規約、リスク警告、およびBinance Academy利用規約をご覧ください。