Ethereumを中心に⁠⁠BitcoinやWorldcoinにも応用され⁠日銀や自民党も注目する「ゼロ知識証明」
~プライバシー保護強化⁠スケーリングに期待される暗号技術の概要と数学的知識手引き

6月13日、暗号資産・ブロックチェーンに関する技術・法務関連情報を周知啓発している「一般社団法人 日本ブロックチェーン協会」で、⁠イーサリアムコミュニティとゼロ知識証明の発展」⁠登壇者:日置玲於奈氏)と題したオンラインセミナーが開催されました。

ゼロ知識証明(zero-knowledge proof、ZKP)は、国内外の多くの機関・組織が注目する暗号技術の1つで、Ethereumを中心に暗号資産・ブロックチェーン開発において活発に応用されています。当記事はセミナーでの内容も取り上げながら、ゼロ知識証明、およびゼロ知識証明を応用した開発動向について解説します。

イーサリアムコミュニティとゼロ知識証明の発展 / INTMAX 日置玲於奈氏

セミナーの解説主旨と当記事の狙い⁠ダイジェスト

セミナー登壇者⁠日置玲於奈氏プロフィール

セミナーの登壇者である日置玲於奈(ひおき・れおな)氏は、Ryodan Systems AG(本社:スイス)の代表取締役を務め、⁠ゼロ知識証明」も応用したEthereumのレイヤー2ソリューション「INTMAX」の創設者です。さまざまな国籍のEthereum開発者が集うEthereumコミュニティでも存在感を放つ、エンジニアの1人です。

日置氏が開発したINTMAXは、スイスの暗号資産・ブロックチェーン関連企業が集う「Crypto Valley」にある企業1135社から「CV VC Top 50 Report」で上位50社に選出されています。

セミナーの解説内容⁠主旨

セミナーのテーマである「ゼロ知識証明」は理解するのに高度な数学の知識が求められますが、日置氏はセミナーでは数式などは用いずに、ゼロ知識証明の概要、Ethereumコミュニティがゼロ知識証明の発展に寄与したことを中心に、おもに以下について説明しています。

  • ゼロ知識証明の歴史と概要
  • Ethereumコミュニティが見出したゼロ知識証明の応用方法
  • ゼロ知識証明で用いられる数学的な計算処理の一端
  • 応用可能性があるビジネスシーン
  • ゼロ知識証明を応用するのに向く/向かない場面
  • セキュリティ面における懸念
  • ほかの暗号技術との比較
  • 変化が激しいゼロ知識証明の手法~手法のトレンドや手法ごとの長所短所
  • 今後重要度が増すであろうRecursive ZKP
  • ゼロ知識証明の学習手順やビジネスリサーチにおいて意識したい事項

Ethereum開発者として世界の最前線で活躍する日置氏によるゼロ知識証明についてのセミナーは、ゼロ知識証明を応用したEthereum開発動向の全体像を俯瞰できるよう幅広い情報がまとめてられていて、非常に有益で貴重な内容です。

当記事の狙いとダイジェスト

ただ、セミナーの対象受講者は暗号資産・ブロックチェーン業界に携わる人と想定しており、⁠⁠近年、ゼロ知識証明がEthereumで応用され始めている」ことについてある程度把握していることを前提にした内容でした。また、どうしてもセミナー時間の都合もあり、一部、前提となる背景や知識についての解説は簡略化されている箇所もいくつか見受けられました。

そこで、当記事は、ゼロ知識証明、およびゼロ知識証明を応用した開発動向をより多くの人に知ってもらえるように、ゼロ知識証明にはどんな特長がありどのような用途で応用が期待されているのか、そしてゼロ知識証明の発展にEthereumを中心とした暗号資産・ブロックチェーンがどのように関わってきたのか、初歩的な内容から解説します。

また、ゼロ知識証明、およびゼロ知識証明を応用した開発動向に関してより深掘りして調べられるように、ゼロ知識証明を理解するために必要な数学の知識を学習できる解説記事や、注意深くチェックすべきセキュリティレポートなど、日置氏がセミナーで紹介したものを中心に、参考情報を紹介します。

当記事だけ読んでもゼロ知識証明とゼロ知識証明を応用した開発動向の概況を把握できるように解説していますが、セミナーとあわせて読むことで、セミナーでの解説内容がより理解しやすくなるはずです。当記事は、以下のような構成でお届けします。

国内外のさまざまな機関⁠組織からも注目されるゼロ知識証明

ゼロ知識証明は、Ethereum開発者の限られたコミュニティだけで応用の可能性が議論されているわけではなく、国内外のさまざまな機関・組織から、おもに「プライバシー保護を強化させる」ことを目的として、今後の発展が期待される暗号技術として紹介されています。

グローバルなテクノロジーメディア「WIRED」による概要解説動画

「ゼロ知識証明」って何?5段階のレベルで説明 | 5 Levels | WIRED.jp(WIRED日本版の公式YouTubeチャンネル)

アメリカ、日本、韓国、イギリス、イタリアなど、グローバルにビジネス・テクノロジー情報を発信するメディアWIREDでは、2022年1月に公式YouTubeチャンネルでゼロ知識証明を紹介する動画を公開しました。視聴者の理解度に応じながら、段階的にゼロ知識証明についてやさしく解説し、その応用の可能性の高さを紹介しています(日本語版動画は2022年12月公開⁠⁠。

日本銀行によるレポートでの紹介

日本では、2022年9月に日本銀行がまとめた「プライバシー保護技術とデジタル社会の決済・金融サービス」というレポートで、今後注目される暗号技術の1つとしてゼロ知識証明について紹介されています。

上記レポートによると、イギリスの「Bank of England」といった海外の中央銀行においても、ゼロ知識証明は、プライバシー保護、マネー・ローンダリング、テロ資金供与対策などの実現手段として応用されることを期待する声があがっているようです(レポート脚注26参照:Central Bank Digital Currency: An update on the Bank of England’s work - speech by Tom Mutton | Bank of England⁠。そのほか、EUのGDPR(General Data Protection Regulation:一般データ保護規則)で求められている「データミニマイゼーション」の観点からも、ゼロ知識証明の応用が期待できる旨が解説されています。

自由民主党政務調査会でも取り上げられるゼロ知識証明

そのほかの国内の動向としては、Ethereum普及のために活動するEthereum財団でエグゼクティブ・ディレクターを務める宮口あや氏が、自由民主党政務調査会である「自民党web3プロジェクトチーム」の第3回(6月14日開催)に招かれた際、デジタルガバナンスにおける暗号技術とゼロ知識証明(ZKP)の役割というテーマで、ゼロ知識証明を取り上げています。ゼロ知識証明がデジタルデータのプライバシー保護の観点から有望な技術であり、Ethereumコミュニティにおける活用例を挙げながら、その重要性を紹介しています。

ゼロ知識証明の概要とプライバシー保護強化に応用される目的や理由

さまざまな機関・組織から紹介されているゼロ知識証明ですが、その概要とプライバシー保護強化に応用される目的や理由について、上記の公開資料などを参考にしながら簡単に説明します。

ゼロ知識証明の概要⁠

まず、ゼロ知識証明の概要を述べると、⁠秘匿したい情報を持つある人(=証明者)が、秘匿したい情報は隠したまま、⁠秘匿したい情報に関連する特定の主張⁠[1]を他人(=検証者)へ伝えて、その他人に自らの主張の正しさを証明することができる」手法・方法の総称です。

代表的な例としては、離散対数問題を用いたシュノアプロトコルがあります。また、グラフ理論の3採色問題を題材にしたゼロ知識証明の例も存在します。これらの例では、証明者が検証者に対して主張の証明をするプロセスにおいて、一定の数学的な計算処理を用います。

証明者と検証者間の典型的なやり取り

また概要で⁠総称⁠と述べたように、ゼロ知識証明は手法によって、数学的な計算処理の際に用いられる数式や関数、証明者と検証者間で交わされる通信の順序や回数などが異なり、計算のプロセスは多種多様です。厳密に解説しようとすると手法ごとの説明だけで長文になるので、証明者と検証者間で交わされるやり取りを単純化して説明します。

証明者
証明者は、証明したい主張に関する情報を通信する前段階で、秘匿したい情報を基に一連の数学的な手続きを通じて、一般的に「証明」⁠Proof」などと呼ばれる値を生成します。この値を証明者は、検証者へ送信します。
検証者
検証者は受信したProofを使って一定の検算を行い、証明者が主張する真偽を検証しますが、検証者は検証に利用するProofからは、証明者が秘匿したい情報そのものについて知ることはできません[2]

証明者からすれば、主張する際に他人へ送信するProofをきっかけにして秘匿したい情報が覚知されてしまう恐れがない、ということになるので、この特性を活かしてプライバシー保護強化への応用が期待されています。

プライバシー保護強化として応用する具体例

具体例としては、オンラインサービスで個人情報を認証する場面での利用です。

流出すると不利益が生じてしまう個人情報(病歴のようなセンシティブな情報やパスワードなど)そのものは送信せずに、受信者(=検証者)に送信者(=証明者)がその情報を有していることを証明できるので、必要以上に個人情報を提示することなく、個人情報を本人の同意なく利用されてしまうリスクを低減できることが見込まれています。⁠サービスを提供する事業者が収集・保管する個人情報は必要最小限に抑えるべき」という考えを重視するデータミニマイゼーションの観点からも望ましいとされています。

ゼロ知識証明における、証明者と検証者間で交わされる典型的なやり取りと、プライバシー保護強化への応用が期待される理由の解説は上記のようになりますが、これは共通鍵暗号方式、公開鍵暗号方式のような、⁠周知や流出を避けたい情報は暗号化してから送信し、受信した相手が共通鍵や秘密鍵を用いて復号する」といった暗号通信とは異なるアプローチで、情報を通信する際の安全性を保ちプライバシー保護を図る手段、といえます。

Ethereumコミュニティが見出した「スケーリング」という新たな応用方法

上記で紹介したゼロ知識証明に焦点を当てた機関・組織による公開情報では、ゼロ知識証明をプライバシー保護強化に応用することへの期待を言及したものが多いのですが、Ethereum開発者のコミュニティにおいては、別の目的に応用されることが期待され、すでにさまざまなソリューションが開発されています。

その別の目的とは「Ethereumのスケーリング」です。

ゼロ知識証明をEthereumのスケーリングに応用する提案がなされたのが、Ethereumの創設者ヴィタリック・ブテリン(Vitalik Buterin)氏がEthereumコミュニティ内で提案した、⁠zkSNARK」⁠zero-knowledge Succinct Non-Interactive Argument of Knowledge)というゼロ知識証明の手法を応用したレイヤー2ソリューションに関する2018年9月の以下投稿でした。

この投稿以前にも暗号資産・ブロックチェーン開発においてはゼロ知識証明を応用しようとするアイディアや議論はさまざまなものがあったようですが、ヴィタリック・ブテリン氏の上記投稿が強く影響して、後にzkSNARKを応用したEthereumのスケーリング技術「zkRollup」を開発する機運が高まります。

zkRollupにおける証明者と検証者間のやり取り⁠それぞれの役割

zkRollupでどのようにゼロ知識証明が応用されているのか、前述の証明者と検証者間の典型的なやり取りと同じ調子で、証明者と検証者間のやり取り、そしてそれぞれの役割分担が明確になるように、単純化して説明します。

zkRollupでは、Rollupを利用するオフチェーンに証明者、Ethereumブロックチェーン(オンチェーン)に検証者としての役割を担わせることで、Ethereumのスケーリングにつなげます。zkRollupにおける、証明者と検証者の役割は以下のようになります。

証明者
「Rollup」と呼ばれるレイヤー2ソリューションを利用して、Ethereumブロックチェーン(オンチェーン)に従属して並走するオフチェーン。多数のトランザクションの実行結果を1つのバッチ処理に集約して、そのバッチ処理を要約したサマリーをオンチェーンへ送信します。このサマリーの生成とあわせて、有効性証明(validity proof)と呼ばれる、バッチ処理に含まれる多数のトランザクションが正しく実行されたことを証明する値を、一定の数学的な計算処理を用いて生成します。有効性証明は、オフチェーンで多数のトランザクションが正しく実行されたことを、計算のプロセスは明かさないまま検証者(オンチェーン)に対して示す値であり、データサイズは軽量です[3]
検証者
Ethereumブロックチェーン(オンチェーン⁠)⁠。証明者から送信されるサマリー、および有効性証明を受信して、その有効性を検証するための検算を、オンチェーン側のブロックを検証するノードで行います。この検算は、世界中に分散したEthereumのノードで同時に実行しなければなりませんが、証明者による有効性証明の生成に要するコンピューティングリソースと比較すれば、小さく済ませられる計算として設定されています。検算の結果、受信した有効性証明の正しさが確認できれば、⁠⁠1回の正しい検算結果の確認だけで、⁠⁠オフチェーン上で)多数のトランザクションが正しく実行できた」と見なせます。そのため、結果的にEthereumブロックチェーンへ直接トランザクションを記録する回数は増やさずに、実質的に多数のトランザクションを実行でき、Ethereumの処理能力をスケーリングできます。

以上のような設計のもと、多数のトランザクション実行に要する膨大な計算をオフチェーンに委託することで、Ethereumのトランザクション処理能力を大幅に向上させるのです。

ただし、留意事項として、上記は、あくまで証明者と検証者間のやり取り、それぞれの役割分担を単純化した説明のため、zkRollupに関する詳細な仕様の多くを割愛しています[4]。zkRollupにおける証明者と検証者間の通信の順序・回数やそれぞれの役割分担は、本来は多段的で複雑なため、詳細に理解するにはEthereum.orgの一般向け学習コンテンツゼロ知識証明や、開発者向けコンテンツゼロ知識ロールアップなどを参考にしてください。

Bitcoin⁠WorldcoinなどEthereum以外の開発にも応用されるゼロ知識証明

ヴィタリック・ブテリン氏がzkRollup構築につながる上記提案を投稿した2018年当時のEthereumは、1秒間に処理できるトランザクション数は15件前後といわれていました。それが上記提案により、理論的な処理可能トランザクション数を秒間約500件までスケーリングさせ、⁠ゼロ知識証明は、プライバシー保護強化だけではなく、コンピューティングリソースに制限がある環境のスケーリングにも応用できる」と新たな応用方法が示されたので、コミュニティ内でも強いインパクトを残しました。

その後、Ethereumの周辺技術としては、zkRollup以外にも、AzteczkEVMzkSyncZKSpaceなど、ゼロ知識証明を応用してスケーリングを試みるソリューションが続々と開発されます。

そしてEthereum、Ethereumの周辺技術でゼロ知識証明を応用した開発が活発化したことに影響され、Ethereum以外の暗号資産・ブロックチェーン開発にもゼロ知識証明を応用したソリューションが登場します。

日本の株式会社LayerXでは2019年と早い段階からZerochainというゼロ知識証明を応用したブロックチェーンを開発しています。

OpenAIのサム・アルトマン(Sam Altman)氏が共同設立したWorldcoinにも、⁠World ID」という機能にゼロ知識証明が応用されていることが公表されています。

さらに、Bitcoinにも、ゼロ知識証明を応用したソリューションが開発されています。zkRollupと同じzkSNARKを用いたBTC WARP⁠、zkSTARK(zero-knowledge Scalable Transparent ARgument of Knowledge)という別のゼロ知識証明の手法を用いたZeroSyncが有名で、いずれもBitcoinノードの同期を高速化してスケーリングを図るソリューションです。

ZeroSyncについては、Bitcoinを中心にブロックチェーン関連技術開発に取り組み、Lightning Network参考記事の実装も手掛けるBlockstreamが、公式YouTubeチャンネルでZeroSync開発者Robin Linus氏とLucas George氏)へのインタビュー動画を公開しています。ちなみに、BlockstreamはBlockstream Satelliteという、衛星インターネットを介して通信インフラが整備されていない国や地域でもBitcoinを利用できるように目指す事業において、ZeroSyncとの提携を公表しています。

Blockstream Talk #22 - ZeroSync & Blockstream Satellite(BlockstreamによるZeroSync開発者インタビュー。開発者から、ZeroSyncが実現しようとする目的・メリットの解説はもちろん、ゼロ知識証明がLightning Networkのルーティングの過程や、Taproot Assets(旧称:Taro)・RGBといったBitcoinのレイヤー2・レイヤー3として機能するプロトコルにも応用できるかもしれない、といったアイディアまで語られており、Ethereumとは異なるゼロ知識証明の応用可能性を示しています)

zkSNARKにおける証明の生成プロセスで実行される数学的な計算

これまでゼロ知識証明やEthereumを中心に多くの暗号資産・ブロックチェーン開発にゼロ知識証明が応用されている概況を説明しましたが、それでは計算のプロセスにおいて具体的にどのような数学的な計算処理を実行しているのでしょうか。

冒頭紹介した日置氏のセミナーでは、zkSNARKにおいて証明が生成されるまでの計算処理について、その一端が解説されています。

zkSNARKにおいて証明が生成されるまでの計算処理
図

まず、Circomという、ゼロ知識証明専用のコンパイラーを用いながら、秘匿したい情報を基にしたコードを「R1CS」⁠QAP」というコードへ変換していきます(※スライドでいう「Computation~Algebraic Circuit~R1CS~QAP」まで⁠⁠。

続いて、変換後の「QAP」などを効率的に証明するというステップがあるようです(※スライドでいう「Linear PCP~Linear Interactive Proof~zkSNARK」まで⁠⁠。

zkSNARKにおける証明の生成に至る計算プロセスは非常に難解であるため、詳細を理解したい方は以下の参考情報をチェックすることをおすすめします。

ヴィタリック・ブテリン氏によるzkSNARKを支える技術がどのように機能するかを説明する一連の記事。おもに「R1CS~QAP」の生成に関連した情報が解説されています。

  • Zero Knowledge Proofs(アメリカ・カリフォルニア大学バークレー校が公開している「ゼロ知識証明」オンラインコース)

上記コースの「2.3. Linear PCP」では、日置氏のスライドでいう「Linear PCP~Linear Interactive Proof~zkSNARK」の過程について解説しており、参考となる解説動画や論文などが掲載されています。

ゼロ知識証明を理解するのに必要な数学の知識とは~日置氏のおすすめ参考情報

上記に限らず、ゼロ知識証明を応用した計算プロセス全体を理解するには高度な数学の知識が求められます。Ethereum開発者コミュニティ内のゼロ知識証明関連の投稿やEthereum.orgを読めば、zkSNARKに限らずゼロ知識証明の手法、およびゼロ知識証明を応用したソリューションの仕組みに関する解説は読めますが、説明中に数式が数多く登場するため、総じて難解です。

そこで筆者はセミナーに取材参加していたので、質疑応答の際に「⁠暗号資産・ブロックチェーン開発で応用されていると有名なzkSTARK、zkSNARKといったゼロ知識証明を理解するために必要な数学の知識・分野」が何なのか日置氏に質問しました。以下に日置氏が回答した参考情報を参照します。

まず、日置氏自身がまとめたブログ記事ですが、zkSNARKにとどまらず、近年の暗号資産・ブロックチェーン開発において利用されているゼロ知識証明を理解するのに、必要となる数学の知識をステップ・バイ・ステップで解説した記事です。

「楕円曲線」⁠群論」⁠有限体」⁠楕円曲線エルガマル暗号」⁠ECDSA」⁠フロベニウス写像」⁠有限体の拡大体」⁠楕円曲線上の等分点・ねじれ点」⁠ヴェイユペアリング」⁠関数因子」⁠アーベル=ヤコビの定理」⁠テイトペアリング」といった、代数学、数論、代数幾何学などに位置付けられる各概念を解説しています。

zkSNARKだけでなく、読み解くのに高度な数学の知識が求められる暗号資産・ブロックチェーン業界の先端技術の論文が理解できることを目指した内容ですが、砕けた表現も交えたカジュアルな論調で各概念を解説しています。

そのほかには、ヴィタリック・ブテリン氏が自身のブログで公開した「STARKs」と題した一連の解説記事や、Ethereum財団のブログにある「zkSNARKs in a nutshell」という記事も、ゼロ知識証明を理解するために必要な数学の知識を解説した記事として紹介されたので、以下に参照します。

ヴィタリック・ブテリン氏の個人ブログで「STARKs」に関して解説した一連の記事

セミナーでは日置氏から、⁠暗号資産ZCashのブログ」と回答いただいていますが、正しくはEthereum財団のブログだったようです。

セミナーでは、終盤に、日置氏がおすすめするゼロ知識証明の学習手順ビジネスリサーチにおいて重要になる事項も紹介されています。

そのほかの参考情報

そのほか、暗号資産・ブロックチェーン開発におけるゼロ知識証明を理解するのに役立つ参考情報としては以下があります。

zkSTARK、zkSNARK、Bulletproofsなどを知りたいとき概観を把握できるように関連情報をまとめた投稿。ただし、投稿された日時が2018年12月のため、一部情報が古くなっている点には注意してください。

StarkWareは、zkSTARKを用いたソリューションを数多く開発するイスラエル発の企業。zkRollupを活用したEthereumのレイヤー2ソリューションStarknet⁠、dYdXにも利用されているDeFiを中心にした開発用プラットフォームStarkEx⁠、zkSTARKを用いたプログラムを作成する言語Cairoなどを開発・運営しています。上記ブログでは、基本的にStarkWareがローンチしたソリューションに関する情報が中心ですが、有効性証明と不正証明の比較記事Validity Proofs vs. Fraud Proofs⁠、再帰的証明(⁠「recursive proof⁠⁠。⁠⁠recursive ZKP」⁠⁠recursion」などとも呼ばれます)の利点について補足した解説記事Recursive STARKsなど、ゼロ知識証明の技術解説記事も発信しています。

Programming Bitcoin著者ジミー・ソング(Jimmy Song)氏がGitHub上で一般公開しているドキュメント。Bitcoinに実装されているプログラミングの理解を深めることがメインテーマの書籍ですが、第1章には有限体、第2章には楕円曲線、第3章には楕円曲線暗号と、高等数学についてPythonプログラミングの実装を通して学べる構成になっており、ゼロ知識証明に関連した数学の理解を助けるためにも有益な内容となっています。

サイボウズ・ラボで暗号とセキュリティに関するR&Dに従事する、光成滋生氏githubが公開している暗号技術や最適化周りの解説記事一覧。群、楕円曲線、楕円曲線暗号、楕円エルガマル暗号、ペアリングなど、ゼロ知識証明にも関連する暗号技術について解説した記事があります。光成氏は、当社刊行図解即戦力 暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書の著者であり、本書「9章 高機能な暗号技術」でゼロ知識証明を解説しており、ほかにも参考となる情報を掲載しています。

注意深くチェックすべきセキュリティとそれでも期待されるゼロ知識証明の将来性

日置氏もセミナーでしっかりと補足していますが、ゼロ知識証明を応用した具体的なソフトウェアの実装において、新たな脆弱性が見つかる可能性は否定できず、セキュリティ面で懸念がないわけではありません。

ゼロ知識証明を応用したソフトウェア開発におけるセキュリティについて、深い見識から指摘ができる企業・組織はグローバルで見渡してもかなり少数ですが、Trail of BitsBeosinは、ゼロ知識証明の脆弱性に関するレポートを公開しているので、セキュリティの動向を知りたいときは注意深くチェックしたほうがよいでしょう。

ただ、それでも、ゼロ知識証明の基本的な理論は数学的に証明されており、その安全性は高いとされています。ゼロ知識証明を応用したソリューション開発が活発化したのはここ数年と最近であり、ゼロ知識証明がプライバシー保護強化、スケーリングなど、さまざまな応用可能性を持つ有望な暗号技術であることには違いありません。

ゼロ知識証明を応用したソリューションがインターネット上で実際に稼働することで、ゼロ知識証明の新たな脆弱性が見つかりその都度改善が行われるなら、情報技術としては健全な発展のサイクルを経ている、といえるはずです。今後もゼロ知識証明が暗号資産・ブロックチェーン開発において実証実験が進められれば、実用上の課題や現実的な可用性の範囲も整理されていくでしょう。ゆくゆくは、ゼロ知識証明を応用した技術が、暗号資産・ブロックチェーン開発以外の分野、サービスに転用されることもあるかもしれません。

ゼロ知識証明は、理解するのに広範囲におよぶ高度な数学の知識が求められ、多くの情報がWeb上で散在している状況です。当記事で解説や紹介ができたのは僅かですが、当記事がゼロ知識証明を知りたいと思う方にとっての学習や理解を助けるきっかけとなれば幸いです。

おすすめ記事

記事・ニュース一覧