見出し画像

No.0 ゼロからはじめるZK始動!

 こんにちは、ゼロからはじめるZKです!このnoteを見に来てくださった皆さんは、おそらくZKP=ゼロ知識証明ということはすでにご存知の方が多いかと思いますが、ZKPとは具体的にどのような技術で構成され、どのような活用方法があるのかはブラックボックスではないでしょうか?

 日本語での解説記事や動画があまりないということもあり、勉強したことのアウトプットとしてこのnoteで発信していきたいと思います。もし間違っている部分やおかしな箇所を見つけた際には、教えていただけると嬉しいです。
 これからZKPが大きなトレンドとなる前に、一緒に知識を深めていきましょう!

 初回となる今回は、このnoteのテーマであるZKP(ゼロ知識証明)について
・おすすめの解説動画とZKPの歴史
・ZKPが注目を集めつつある理由
・今後の記事について
の3つについてみていきます。


1. ZKPとその歴史

 ZKP (Zero Knowledge Proof)とは、日本語で「ゼロ知識証明」と訳される数学的な証明方法の一つです。(ZKだけでもゼロ知識証明を指す場合もあります。この記事では、以降ZKで統一しています。)
 具体的には「自分が保持する命題が真であることを、他の人に対して、命題が真であること以外の情報を開示することなく証明する」手法です。
とても複雑な日本語になってしまいましたが、少し砕いていうと「値Xを隠しながら値Xを知っていることのみを証明する」ということです。
 以下の動画がオススメです。わかりやすかったので、参考にしてください!

上記の動画内でも登場していますが、ゼロ知識証明は、特に暗号学の分野で発展してきました。ここからはその歴史を簡単に振り返ります。

 1985年にGoldwasser, Micali and Rackoffにより発表された『THE KNOWLEDGE COMPLEXITY OF INTERACTIVE PROOF SYSTEMS』から始まった数学の暗号学の分野で、この研究を基盤として発展していき、2011年にはZKの一種であるzk-SNARKsが初めて掲載されたFrom Extractable Collision Resistance to Succinct Non-Interactive Arguments of Knowledge, and Back Again』が公開、2013年のPinocchio: Nearly Practical Verifiable Computation』でzk-SNARKsが一般的な計算に応用されることになっていきます。
 このあたりから数学的手法としてだけではなく、ZK✖️ブロックチェーンの研究も盛んに行われています。
 2012年のExperimenting with Collaborative zk-SNARKs: Zero-Knowledge Proofs for Distributed Secrets』という論文が発表され、2014年にはLibsnarkやPractical Recursion、そして初めてZKを実装した暗号通貨ZCashが2016年に登場します。そしてMina, Aztec, StarkNetやzkSyncなどからWhite Paper(設計書のようなもの)が公開され、ここからZKに特化したプロジェクトが続々と立ち上がっていきます。

時系列に並べた図


そもそもzk-SNARKsとは何か、またここで出てきた論文やプロジェクトのWhitePaperについても、今後の記事で解説していきます!

2. ZKが注目を集めつつある理由

 ここまで特にブロックチェーンの文脈でZKの歴史を辿ってきましたが、現在ZKの主な活用先となっているブロックチェーンはどのような変遷を辿ってきたのでしょうか。
 リーマンショックが起こった2008年、サトシナカモトの論文で発表されたビットコインの登場から、2013年、2017年のビットコインバブル、2021年のNFTバブルなど盛り上がっては冷え込むを繰り返していますが、昨今様々な企業の取り組みや国際送金にも使用され、その市場はますます拡大していく見通しです。2024年にマッキンゼーが公開したレポートによると、特に金融サービス業界においてトークン化された資産が大きな影響を与え、2030年までにトークン化された資産の総額は2兆ドル、強気なシナリオでは4兆ドルに達するという予測がされています。
 このようにトークン化などのブロックチェーンの活用がこれだけ見込まれている中で、ZK(ゼロ知識証明)に着目する理由は何でしょうか?それは、現在ブロックチェーンのボトルネックと考えられている3つの問題の解決手法の1つとして活用されているからです。

  1. Privacy
    プライバシー保護を意味します。
    現在多くのトランザクションは、ブロックチェーンの性質上送り主・受け取り手のアドレスや残高、送金額、時間などあらゆる情報が公開されており、追跡・確認することができます。ChainalysisやNansenなどの企業が提供するサービスでは、さまざまなウォレットの活動を監視し分析を行うことで、誰が何を所有しているかを確率的に推測することができます。このように、透明性が売りであるパブリックブロックチェーンの特性のある種の裏返しとして、プライバシーが存在しないという問題があります。これに対して、ウォレットの情報やトランザクションの内容が特定できないよう暗号化するというものがPrivacyへの活用方法です。

  2. Scaling
    拡張性を意味します。
    ブロックチェーンの限られたリソースでは計算にコストがかかってしまうため、複雑な計算が正しく実行されたことをオフチェーンで証明することでオンチェーン計算コストを削り、処理速度の低下と手数料の増加を改善するというものがScalingへの活用方法です。

  3. Interoperability
    相互運用性を意味します。
    聞きなれない単語ですが、ブロックチェーンの文脈では「異なるブロックチェーン同士を接続し、相互にデータを読み書きできる性質」を指します。複数のブロックチェーンを並行稼働させることで処理を分散し性能を補完するというものがInteroperabilityへの活用方法です。チェーン間の取引の検証には、アルゴリズムによる検証、オフチェーンの検証者による検証、そしてオンチェーンの検証者による検証の3つの方法があります。

この3つの問題やその解決方法については、今後の記事で詳しく深掘っていきます!


(おまけ1)量子コンピューターの登場による暗号への影響

Gartnerのハイプサイクル

 実はブロックチェーンに限らず、現在よく使用されている多くの(公開鍵)暗号技術が、量子コンピューターの登場により解かれてしまう可能性が高いと言われていることをご存知でしょうか。現在のコンピューターの性能では、公開鍵暗号の裏側にある桁数の大きな素因数分解や楕円曲線暗号上での離散対数問題を解くにはとてつもない時間を要し、実質解読不可能な暗号として機能しています。しかし、現在のコンピューターでは1億年かかると言われているような暗号でも、量子コンピューターなら24時間以内に解読できるようになると言われています。

来たる量子コンピューター時代に備え、米国立標準技術研究所は2016年ごろから新しい暗号方式の標準化に向けた活動を開始しています。Gartnerが発表したハイプサイクルを見ると、ポスト量子暗号は混迷期の真っ只中に位置しており、耐量子暗号への切り替えは喫緊の課題とまではいかないものの、大規模量子コンピューターの実現までには必須となっています。
一見関係なさそうに見える耐量子暗号とゼロ知識証明ですが、実はゼロ知識証明の中でもZK-STARKという手法には耐量子性(量子コンピューターが実現しても安全性が損なわれない性質)があり、、、というのはまた今度!!

(おまけ) あのVitalikも注目!?
これは余談ですが、Ethereumの創設者であるVitalik Buterin氏もZKには注目しており、このようなポストをしています。

Vitalikのポスト1

上記の投稿にもある通り、ZKはブロックチェーンだけでなく、さまざまな場面で活用されることが期待されており、機械学習を掛け合わせAIのトレーニングの正当性を保証するZKMLなども登場しています。

Vitalikのポスト2

また”Make Ethereum cypherpunk again”と2023年の年末にも投稿しており、「分散化」「検閲への抵抗」「信頼できる中立性」などサイファーパンクの精神を重んじる彼は、プライバシーソリューションの1つとしてZKに期待を寄せています。

Tornado Cashという送金に特化した暗号システムの製作者に続き、先日TelegramのCEOが逮捕されましたが、プライバシーと犯罪などの悪利用は結びつきがちで、実際マネーロンダリングに使用されていたり、犯罪組織のコミュニケーション手段として活用されている現実もあります。そのような中で、ZKにより暗号がプログラマブルになったことで到来しつつあるプライバシー新時代に、業界のプレイヤーは法規制をはじめとしたさまざまな問題と対峙しながら、より良い未来を模索しています。

3. このnoteの構成

 ここまで読んでいただきありがとうございます! 最後にこのnoteで発信する内容について、以下の3シリーズを想定しています。

  1. ZKの技術的概要 (数学をなるべく省いたバージョン)

  2. ZKの技術的概要 (数学を用いたバージョン)

  3. ZKPを利用したプロジェクトについて

 また、私が参加した国内/海外のイベントやカンファレンスのレポートなども挙げていこうと思っているので、たくさんの方に興味を持っていただけると嬉しいです!!


<最後に>
 ZKPとは何か、そしてZKPが注目を集めつつある理由についてみてきました。ここまでお読みいただきありがとうございました!次回からも是非チェックしてください!
( 不正確な部分のご指摘やご質問があれば、 こちらのアカウントまでご連絡いただけると嬉しいです!)

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