ゼロ知識証明でブロックチェーンの課題解消へ
日々発展を続けるブロックチェーン分野において、依然として課題だと考えられている点が、スケーラビリティの限界、およびプライバシーの欠如だ。
前者に関しては、DeFi(分散型金融)やNFT(非代替性トークン)ブームの舞台となったイーサリアム・ネットワークにて顕著に見られており、イーサリアム2.0やロールアップ技術の開発など、様々な対策が進められている。一方で後者のプライバシーについては、概してパブリックチェーンが機能するには、全てのトランザクションやアドレスが公開されている必要があると考えられてきたため、一部のプライバシー特化型チェーンを除き、焦点が当てられていないことがほとんどだ。
しかし、zk-SNARKsという技術を活用すれば、これら二つの課題を両方とも解決することができると言われている。
zk-SNARKsとは
zk-SNARKsとは、証明方法の一種であり、「Zero Knowledge Succinct Non-Interactive Argument of Knowledge」の頭字語だ。ブロックチェーン領域では主に、レイヤー2技術や匿名性の高いブロックチェーン構築の際に活用されている。
前半部分の「Zero Knowledge」は、「ゼロ知識証明」と呼ばれる暗号学における証明メカニズムを指している。ゼロ知識証明とは、簡単に言えば、「ある情報が正しいということを証明したい人(=証明者)が、その情報自体の詳細は開示せずに、その情報は正しいということを他者(=検証者)に証明する方法」だ。
例えば、生年月日は開示せずに成人しているということを証明する、ある問題の答えは開示せずにその答えを知っているということを証明する、パスワード自体は開示せずにそのパスワードを知っているということを証明する、といった時に役立つ技術だ。これをブロックチェーン分野に応用すれば、トランザクションの内容(送受信者や金額等)を開示せずとも、そのトランザクションが実行されたということを証明できる。
関連:個人情報管理のカギとなる「ゼロ知識証明」とは|XSL Labs寄稿
次に続く「Succinct」は「簡潔な」という意味を持ち、要するに、証明結果のデータサイズが小さく簡単に検証可能ということを示している。また「Non-Interactive」とは、証明者および検証者が互いに直接やりとりしないということを、「Argument of Knowledge」とは、大まかに言えば「知識の証明」を意味している。
つまりzk-SNARKsとは、「証明者および検証者が直接的にやりとりせずに、簡潔な方法で、証明者が保有している情報が正しいということを検証者に証明する技術」と言える。
ブロックチェーンへの応用
ゼロ知識証明自体は、1980年代には既に確立されていた概念であり、ブロックチェーンに特有な技術ではないものの、現在ブロックチェーン領域では、スケーラビリティおよびプライバシーを改善する手法として、zk-SNARKsの活用が増加している。
例えば、データ量を小さく抑えられるというzk-SNARKsの特性に注目した「ZK Rollup」と呼ばれるロールアップ技術が、レイヤー2開発で利用されている。ZK Rollupでは、オフチェーンで複数のトランザクションをまとめた後、まとめられたトランザクションのデータ全てではなく、zk-SNARKsを用いた証明結果のみをメインのチェーン(レイヤー1)へ提出している。上述のようにzk-SNARKsを用いた証明結果は、簡潔でデータ量が少ないため、レイヤー1のネットワーク混雑解消、およびスケーラビリティ向上に繋がると言われている。
関連:高速かつガス代安価な分散型取引所「ZKSwap」がローンチ イーサリアム上でZK-Rollups技術を活用
また、トランザクションの内容自体を開示する必要がないという性質から、ZcashやMinaプロトコルといった、プライバシー保護に焦点を当てたブロックチェーンの設計にも、zk-SNARKsは組み込まれている。
関連:仮想通貨Zcash、アップグレードに向けて新たなプロダクトを発表
zk-SNARKs基盤のアプリ
zk-SNARKsを活用したブロックチェーン・プロジェクトのひとつ、Minaプロトコル(以下Mina)では、「Snapps」と呼ばれるzk-SNARKs基盤のdApps(分散型アプリケーション)作成が可能だ。Snappsは、表面上は通常のdAppsと同様に作動するが、zk-SNARKsを用いてスマートコントラクトが実行されるため、他のdAppsよりもスケーラビリティおよびプライバシー面で優れている。これは、根本のブロックチェーン設計にzk-SNARKsを採用しているMinaだからこそ可能になる技術だ。
関連:誰もがノードとして参加できる軽量型ブロックチェーン、Mina Protocolとは
多くのdAppsが構築されているイーサリアムにてdAppsを実行する場合、ネットワーク内にある全てのノード(マイナー)が同じ計算をしなければいけない。一方でMinaでSnappsを実行する場合、一度そのSnapps開発者がアプリを実行した後は、ノードは証明結果のみを検証すれば良いため、効率的なアプリ稼働が可能になる。
Minaいわく、以上の特性から、今後は以下のようなユースケースにおいてSnappsの発展が見込まれているという。
- トレードの証明:内容を開示せずに仮想通貨のトレード履歴を証明
- 資産の所有権の証明:特定のアドレスや残高を開示せずに仮想通貨資産の所有権を証明
- 個人のID証明:身分証明書を再度提出せずに以前KYC(本人確認)プロセスを経たことを証明
- 匿名性の高いシングルサインオン&デジタル・アイデンティティ:個人に関するデータの提供が必要だった既存のプラットフォームへのログイン方法(FacebookやGoogleなど)とは異なり、匿名のまま様々なプラットフォームへアクセス可能に
- 匿名性の高いDAO投票:DAO(自律分散型組織)の投票において、どのアドレスが誰に投票したかが隠される
- オラクル:HTTPSウェブサイトの認証されたデータをオンチェーンに持ち込み
- オンチェーンで位置情報管理:デートアプリやSNS、住民票などを利用の際にGPSを介して位置情報を証明
- 匿名性の高いDNSサービス:ウォレットのアドレスを開示しないDNS(ドメイン・ネーム・サービス)
- 障害の証明:病気や障害の詳細を開示せずに障害者手当を受ける資格があることを証明
- 実世界で鍵として利用:IoT(モノのインターネット)を利用してプライベートな空間(例:自宅、オフィス、友達の家、ホテル)へのアクセスを許可するスマートフォン用アプリ
Snapps活用のレンディング(貸付)市場
Minaエコシステム内では既に、いくつかのSnapps開発が進められている。そのうちの一つが、「Teller Finance」と呼ばれるDeFiレンディングプラットフォームだ。
zk-SNARKsを基盤にしているTellerでは、ユーザーは借入の際に、任意の金額を借りるのに十分な信用度があるかどうかを、個人情報を開示せずに証明できる。これは、信用要素ではなく、過剰担保(担保額が借入額よりも大きいこと)に依存して機能してきた既存のDeFiレンディングプラットフォームとは、全く異なる設計だ。
この仕組みによりTellerでは、ユーザーを個人情報漏洩やハッキングなどのリスクから守るというDeFiの利点を維持したまま、過剰担保の必要性を排除しているため、資金効率が良くなり、より多くの人がDeFiサービスを利用できるようになるだろうと考えられている。
関連:DeFi(分散型金融)とは|初心者でもわかるメリット・デメリット、重要点を徹底解説
Minaの開発に携わるMina財団は現在、Snappsも含むエコシステム全体の拡大に注力しているようで、9月には、助成金プログラムなどコミュニティの参加を促す複数のプログラムの実施を発表した。Minaはエコシステム拡大に関して、「これらのプログラムは、Minaコミュニティが健全かつ安全な場所であるための最初のステップであり、成功にはコミュニティの参加が不可欠だ」と述べている。