いま知っておきたい「ゼロ知識証明」の基本と関連プロジェクト

いま知っておきたい「ゼロ知識証明」の基本と関連プロジェクト

はじめに:ブロックチェーンの課題と注目されるゼロ知識証明

ブロックチェーン(特にパブリックチェーン)において、トランザクション履歴が追跡できるという性質は、強みである一方で、プライバシーの問題を顕在化させます。

現実世界の個人・団体とブロックチェーン上のアドレスは、一般ユーザーに分かりやすい形では紐付いていないため、アドレスからアドレスへ送られるアセットの所有権に関するプライバシーは守られているように思えます。しかし、アドレスを出入りする資産の金額や頻度、IPアドレスなどから、現実世界にいるアドレスの管理者を特定することは不可能ではありません。

一方で、トランザクションを完全に暗号化してしまうと、その正当性を第三者が検証できなくなってしまい、分散台帳の安全性が損なわれてしまいます。加えて、マネーロンダリングやテロ資金供与対策(AML/CFT)の観点からも、第三者が検証不可能な暗号化は現実的ではありません。

プライバシーを確保しつつ、分散台帳の検証性や法令遵守を実現する方法として注目されているのが「ゼロ知識証明」です。本記事では、その概要と関連する主なプロジェクトを紹介していきます。

ゼロ知識証明(ZKP:Zero Knowledge Proof)とは?

まず、証明とは、ある事柄が正しいこと(命題が真であること)を納得させる手段です。主張を納得させたい「証明者」(prover)と、主張の正しさを確かめる「検証者」(verifier)が存在する際に、証明のためのプロトコルは検証者を納得させるための方法として機能します。

そして、証明プロトコルの一種であるゼロ知識証明とは、証明者が「自身の主張は真実である(知識を有している)」以外の情報を検証者に開示することなく、その情報が「真実である」と証明する方法です。例えば、ゼロ知識証明に従うと、生年月日をはじめとする個人情報を相手(検証者)に開示しなくても、自分(証明者)が成人であることを証明できます。

なお、ゼロ知識証明は1985年に提案された概念です。すでに様々なブロックチェーンプロジェクトで研究開発や実装が行われており、今後もユースケースが増えていくでしょう。例えば、Webサービスのログイン認証や本人確認などへの利用が考えられます。

ゼロ知識証明プロトコルが備える3つの性質

ゼロ知識証明のプロトコルは、以下の3つの性質を満たす必要があります。

  1. 完全性(completeness)
  2. 健全性(soundness)
  3. ゼロ知識性(zero knowledge)

それぞれ説明していきましょう。

①完全性(completeness)とは?

証明者の主張が真であるならば、検証者はその主張の正しさを高確率で検証できます。証明者と検証者の双方がゼロ知識証明のプロトコルに従っている限り、検証者は証明者の主張が正しいことを確認できるのです。

②健全性(soundness)とは?

証明者の主張が偽であれば、証明者がどのように振る舞ったとしても、検証者はその主張が偽りであることを見抜けます。つまり、健全性を備えたプロトコルにおいては、証明者は検証者を騙せないのです。

③ゼロ知識性(zero knowledge)とは?

あらゆる場合において、検証者が証明者から何らかの知識(情報)を盗もうとしても、証明者の主張が真であること以上の知識は得られません。

対話型と非対話型

ゼロ知識証明の検証プロセスでは、証明者と検証者が互いに通信する「対話型」と、通信を必要としない「非対話型」の2種類が存在します。

対話回数が多いと計算量が多く検証に時間がかかってしまうため、ゼロ知識証明の研究においては、二者間の対話回数が少なくて済む方法が模索されてきました。現在では、証明者の主張を大勢の他者が検証できる(証明者と検証者がいちいち通信しなくて済む)非対話型の方法が開発されています。

例えば、後述する「Zcash」に使われているゼロ知識証明プロトコル(ZK-SNARK)は非対話型です。

プロジェクト紹介:ゼロ知識証明×ブロックチェーン

それでは、ゼロ知識証明の活用事例を紹介していきましょう。

匿名系コインのZcash

「Zcash」は匿名系の暗号通貨です。ゼロ知識証明を用いたトランザクションを生成できるため、Zcashの送信アドレスと受信アドレス、送金額を秘匿することができます。Zcashで使われているのが、非対話型のゼロ知識証明プロトコルである「ZK-SNARK」(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge)です。

なお、Zcashの立ち上げメンバーのうち何人かは、イスラエルを拠点とするスタートアップ「StarkWare」を設立し、対話型でTrusted Third Party(信用できる第三者)が要らないゼロ知識証明プロトコル「ZK-STARK」(Zero-Knowledge Scalable Transparent ARguments of Knowledge)を開発しています。

参考:StarkWare

Nightfall(EY)

世界4大会計事務所・コンサルティングファームの「EY」(Ernst & Young)は、ゼロ知識証明を用いてイーサリアム上でトークンの匿名送金を可能にするオープンソースプロトコル「Nightfall」を公開しています。

参考:EY Nightfall protocols for private transactions on the Ethereum blockchain using zk-snarks

2020年1月現在のNightfallは「第3世代」とされており、2018年に公開されたプロトタイプと比べて、コスト面で400倍の改善が実現したとされています。また、Nightfallはパブリックチェーンとプライベートチェーンどちらでもデプロイ可能です。

参考:EY releases third-generation zero-knowledge proof blockchain technology to the public domain

ING

オランダに拠点を置く金融機関の「ING」は、ブロックチェーン上で情報の機密性を担保するために、ゼロ知識証明の研究に取り組んでいます。機密性とは、決められた人だけが情報にアクセスできるようにすることです。

INGの具体的なアウトプットとしては、秘密の数値がある範囲に含まれていることを明らかにするための「Zero-Knowledge Range Proofs」(ZKRP:ゼロ知識範囲証明)や、ZKRPを数値だけではなく位置情報や名前といった他の情報に拡張した「Zero-Knowledge Set Membership」(ZKSM:ゼロ知識メンバーシップ証明)などが挙げられるでしょう。

ZKRPを利用することで、住宅ローン審査において年収を開示することなく、本人の所得水準を証明可能です。また、ZKSMによって、ユーザーは住所を開示せずに、自身がEUに居住していると証明できます。

参考:ING launches Zero-Knowledge Range Proof solution, a major addition to blockchain technologyING working on digital asset custody solution

その他にも、INGはエンタープライズ向けの分散型台帳フレームワーク「Corda」において、自社のゼロ知識証明の研究成果を応用し、セキュリティとプライバシーのトレードオフを解決するためのソリューションを提案しています。

参考:ING improves Corda blockchain privacy with zero-knowledge notary

Quorum

エンタープライズ向けイーサリアムの標準化団体である「Enterprise Ethereum Alliance」(EEA)が開発するフレームワーク「Quorum」でも、ゼロ知識証明をサポートしています。

Quorumでは、パブリックチェーンのイーサリアムに必要最小限の変更を加えたクライアント「Quorum Node」が提供されており、コンソーシアムメンバーがアクセスできる「パブリックトランザクション」と特定メンバーのみがアクセスできる「プライベートトランザクション」の2種類を選択的に利用可能です。

なお、Quorumの特徴とユースケースについては以下の記事をご覧ください。

まとめ:ゼロ知識証明は企業が注目すべき秘匿化技術

ゼロ知識証明は、ブロックチェーンの抱えるプライバシーや機密性保持といった課題を解決すると期待されています。パブリック・プライベート問わず、ゼロ知識証明をブロックチェーンに応用する取り組みが進んでおり、今後も事例は増えていくでしょう。

現状では企業がパブリックチェーンを選択することは少ないですが、EYのNightfallのような秘匿化ツールの改善が進んでいくことで、企業がパブリックチェーンを選択する事例も増えていくかもしれません。そういった意味でもゼロ知識証明は要注目の技術だと言えるでしょう。

ブロックチェーンカテゴリの最新記事