本項ではゼロ知識証明技術の現状と課題を確認した上で、ゼロ知識証明の未来について考える。
6-1 ゼロ知識証明の実用化に向けた課題
1. 技術的課題
鍵の生成スピード
MPCセレモニー[6A]による鍵ファイルの生成では、複数の参加者が鍵生成の処理を繰り返し行うため、相応の時間を要する。これを解決するため、鍵の生成を2段階に分け、第1段階はすべてのサーキットで共通として、サーキットに対応した鍵を作るときは第2段階のみ実行する方式がある[6B]。第2段階の処理だけでも時間はかかるが、生成した鍵はサーキットを変更しない限り繰り返し使えることから、サーキットを頻繁に変更しない場合は、鍵生成に時間がかかることも許容できる場合がある。また、ある程度幅を持たせた計算処理に同じ鍵が使えるようにする手法も提案されている。一方で、ビジネスロジックが頻繁に変更されることでサーキットも頻繁に変更され、それに伴って鍵も再生成する場合には、鍵生成のスピードの重要性が増す。
[6A] MPCとは、鍵の生成に複数の主体が関与し、その参加者すべてが共謀しないと不正を行えないような、安全性が高い鍵を生成する手法である。MPCを用いて鍵を生成する一連のプロセスのことをMPCセレモニーと呼ぶ。
[6B]書籍 第5章のPerpetual Powers of Tau参照
鍵の大きさ
鍵ファイルが大きいと共有に時間を要し、共有後もストレージを圧迫する。また、様々なサーキットにゼロ知識証明を適用する場合、サーキットごとに鍵ファイルを生成することになれば、さらにストレージを圧迫してしまう。これを避けるため、一定の制約を満たした複数のサーキットに対しては共通で1つの鍵を使いまわせる仕組みがあるが、すべてのサーキットに対して使えるわけではなく、鍵ファイルの大きさに関して抜本的な解決策とはならない。そのため、鍵ファイルそのものを小さくするような工夫が必要となる。
証明・検証のスピード
ゼロ知識証明は、証明よりも検証が高速に行われることが重要である。ゼロ知識証明の実際の運用場面では、同一の証明を複数回検証することがあるので、証明に時間がかかっても検証が極めて高速であれば意味がある。環境によって異なるが、1つの目安として、zk-SNARKsの証明生成にかかる時間は2.3秒、検証にかかる時間は10ミリ秒とした調査がある[6C]。
[6C] Privacy for Everyone, Zooko Wilox, https://slideslive.com/38911617/privacy-for-everyone
証明の大きさ
証明の大きさは利用するゼロ知識証明の手法によって異なるが、zk-SNARKでは、証明の大きさはサーキットの計算量にかかわらず一定であり、Groth16などの手法では300bytes未満である(書籍 第5章の証明フェーズ参照)。