見出し画像

ゼロ知識証明のその先 【後編】

はじめに

こんにちは!本郷Web3バレーです。
Stanford Blockchain Reviewシリーズになります。
このシリーズではStanford Blockchain clubの業界レポートであるStanford Blockchain Reviewを日本語に翻訳したものを要約と我々の観点とともに発信していくものとなっています。
翻訳の許可をくださったStanford Blockchain ReviewのJayYuには感謝申し上げます。
前編では本文とその要約を、後編では我々の議論内容と観点を発信します。前編を追いながら後編を見ていただけるとわかりやすいのかなと思います。
今回扱うテーマは「ゼロ知識証明とその先」です。
プライバシーソリューションとして何かと話題に挙がるゼロ知識証明ですが、紐解いてみると実際にはゼロ知識証明にも限界があります。今回はその他のソリューションにもスポットを当て、それらが総合的にどのような解決策を提示するかを議論しました。

実施報告・内容

概要

6月20日の19:00から21:00頃まで、駒場の近くに位置するコワーキングスペースにて、ミーティングを開きました。
まず初めに記事を一通り解説を交えて読み進めました。
今回の参加者はWeb3に精通している人が多く、議論は抽象度を増し、各自の興味と繋がり、さまざまな切り口を共有した意味深いものとなりました。

どのように行ったのか

6月20日の19:00から21:00頃まで、駒場の近くに位置するコワーキングスペースにて、ミーティングを開きました。

参加メンバーは、Twitterの募集フォームを通じて参加申し込みをした方々と、本郷web3バレーのライン、discordを通じて告知に応じたメンバーです。

今回のミーティングではゼロ知識証明とその周辺のプライバシーソリューションをテーマとし、メンバー各々が顔を合わせ、オープンクエスチョン形式で気になった点から議論を展開し、新たな知識を吸収していくことを目的としました。

本文はこちらにあるのでぜひ読んでください!

初めの40分間は、テーマの概要と要約を軽くさらい、それを基に自由に発言をして理解を深めました。

その後の議論は、ソリューションの中で使われている数学原理や物理学的性質などについて深掘る時間となりました。

内容

参加者4人で、実際にどういったプライバシー保護の方法があるのかについて説明しました。

  • ZKPs(Zero Knowledge Proofs, ゼロ知識証明)

ZKPsを用いることで、証明すべき事柄のための必要最低限の情報のみを開示します。
これにより、例えば日本在住であることを示すために、具体的な住所情報を提供する必要はなくなり、代わりに相手が送ってきた証明問題を解いて返す、ということをすればそれで検証が済むということになります。
これは証明に必要な情報量を圧縮することも可能にし、コストを削減することも可能となります。

しかし、P2P(Peer-to-Peer)の形式でないとZKPsの実装の価値は薄れてしまいます。

参加者が複数の場合、つまりPeerが多くなった場合、ZKPsの特性を最大限活かすことは難しくなります。
例えば、ZKPsが他者間でのプロトコルとして利用され、特定のグループ間、例えばギルドからギルドへの通信に用いられるというケースが考えられます。

そのギルド内のAとBのデータを暗号化する場合、異なる鍵を使うと、それら両方の情報を必要とする証明の実行は理論的に不可能です。また、もし同じ鍵を使用した場合、Aの情報がBに漏れるリスクが生じます。

この場面では、組織全体に「信頼」を置く必要が出てきてしまいます。これでは中央集権的な要素が絡むWeb2.0の問題に引き戻されてしまいます。


  • FHE(Fully homomorphic encryption, 完全同型暗号化)

FHE、すなわち、完全同型暗号は、データを暗号化した状態で計算を行うことができる技術です。これにより、ゼロ知識証明を行う際に、ユーザー情報が暗号化されたまま計算できるということは、実質的に各自異なる鍵を用いて暗号化できることになるため、非常に有用です。ただし、FHEはその計算自体が非常に非効率的です。

  • PHE ,HE((Partial) Homomorphic Encryption, 同型暗号)

一方で、PHEまたはHE(同型暗号)は、特定の部分の情報のみ暗号化したままで計算ができるものです。
Web3.0の概念に沿ったプライバシーを維持しつつ、現実的な計算効率をもたらします。

  • MPC(Multi Party Computation, 多者間計算)

読んで字の如く、複数ノードでの計算処理のスキームを意味します。単一のサーバーを信頼する代わりに、複数の信頼されていないサーバーがクライアントデータ上で計算を共同で実行します。
MPCはFHEと組み合わせて「閾値FHE」を作成することができます。閾値FHEでは、単一のFHE暗号化キーをすべてのサーバー間で分割します。
その鍵を再構築するために必要なシェアの閾値を調節することで、プライバシーが最適化されます。(生存性,livenessがあがるといいます。具体的にはDoS攻撃などへの耐性があがります)
ただし、鍵を再構築するときのシェアがその各サーバーに保持されているかを知る由がありません。(同一人物が複数シェアを持ってしまうと、データを勝手に復号化されるリスクがあります)これは生存性を損なうことになります。
まとめると、
MPCの性質として、そのシェアを調節する機能は都合が良いですが、サーバーを増やすとプライバシーの問題が出てくるため、拡張性が低いというジレンマがあります。

  • TEE(Trusted Execution Environments, 信頼性ある実行環境)

上で示した閾値FTの問題点を解決するために、TEEは用いられます。具体的には、各個人のコンピュータでの処理を「ブラックボックス化」することで、所有者本人もその鍵を取り出せなくする(ブラックボックス内での使用は可能)という用途があります。
このシステムは、純粋な暗号技術に頼るのではなく、ハードウェア依存でセキュリティを確保するため、非常に効率的です。暗号技術によるソリューションは、一般的にクリアな計算よりも桁違いに遅いですが、TEEはほとんどの場合、計算時間に40%未満のオーバーヘッドしかかかりません(追加で必要なリソースが40%未満である)。
懸念点はありますが致命的なものではなく、TEEは特に低感度データに対する高性能計算のための最良の実用的な解決策として現在も位置づけられています。

議論

当日、記事の内容に関連し議論について、ここで掲載します。

zk-SNARKs(Zero Knowledge Succinct Non-interactive Argument of Knowledge, ゼロ知識の簡潔な非対話の知識の根拠)
と、
zk-STARKs(Zero-Knowledge Scalable Transparent ARguments of Knowledge, ゼロ知識の拡張性を持つ透明な知識の根拠)
キーワード:NP完全問題のSAT(充足可能問題)、量子コンピュータ耐性

zk-SNARKsは、実際に解くのは難しいが、ある答えがあってそれの場合解けることを証明することは簡単という性質を持つ問題(SAT)を用いています。
具体的な問題の性質について:証明したい人は、ある関数fに対して、f(x,y)=zが成り立つx,y,zを知っているとします。目的は、試験者に、yを秘密にしたままf(x,y)=zが成り立つことを納得してもらうことです。証明したい人、試験者は事前にfがどのような関数であるか共有しているとします。
以上のような問題を解くことで、yを明かさないままyを知っているということを示すことができる、という手法をzk-SNARKsといいます。しかしながらこの手法は量子コンピュータによって打ち砕かれてしまうとされています(量子コンピュータ耐性がない)。
これに対して、量子コンピュータ耐性を持つゼロ知識証明の手法をzk-STARKsといいます。こちらについては開発がなされている途中です。
非常に粗い説明ご容赦ください…

Q.対話型ZKPsには、記事にあったZKPsと同様の限界点があるのか?
A.あると考えられる。結局複数の出自を持つ知識を統合しなければ証明できない事項には、その知識を統合する(yを作成して、試験者に自分がyを知っていると証明する)サーバが必要だから。

また、感想もここに掲載します。
(収集中…)

最後に

当団体ではいつでもメンバーを募集しています。どなたでも加入できますので
こちら
からぜひ申請してください。
一緒に学びを深めていきましょう!


参考にした記事


この記事が気に入ったらサポートをしてみませんか?