ゼロ知識証明を学ぼう | Web3 プログラミング, スマートコントラクト入門
May 20, 2022ゼロ知識証明とは?
ゼロ知識証明は、これまでのシステムやサービスにおいてできなかったことをできるようにしてくれるしくみです。
準同型暗号や秘密計算といった数学の理論をもとにしており、秘密にしたい情報を公開せずに計算したり、証明したりするときに使います。
ゼロ知識証明自体は、ブロックチェーンに限らずどんな分野でも使うことができますが、ブロックチェーンの課題を解決するために Web3 界隈で活発に研究が進められてきました。
開発で使うためには数学やプログラミング、あるいはブロックチェーンの知識が必要ですが、ゼロ知識証明の概念を理解したり使うだけなら、誰にでもできます。
YouTube
YouTube のこの動画では、子供でもわかるようにゼロ知識証明を説明しています。
日本語字幕はまだありませんが、YouTube の自動翻訳を使えば理解の助けになると思います。
Computer Scientist Explains One Concept in 5 Levels of Difficulty | WIRED
ゼロ知識証明を使った事例
ゼロ知識証明は、ブロックチェーンだけでなく既存の IT システムでも活用することができます。
台湾では、コロナ対策のためにゼロ知識証明や QR コードを使ってプライバシーを保護しながら個人情報を共有するシステムを開発して、社会に役立ったという事例があります。
Zero-Knowledge University (zku.ONE)
ZKU (Zero-Knowledge University) ではオンラインでゼロ知識証明を体系的に学ぶことができます。
筆者は受講していないので詳細まで把握していませんが、2022 年時点でゼロ知識証明を学びたい人にとっては、ZKU がもっとも優れた環境の 1 つではないかと思います。
Ethereum L2 におけるゼロ知識証明
Ethereum のエコシステムにはスケーリングの課題があります。イーサリアムが世界中で使われるようになるとたくさんの処理をさばかなければなりません。そのために Rollup という手法が採用されました。
Rollup とはレイヤー 2 というブロックチェーンを作りその上で行われる取引を集約してレイヤー 1 である Ethereum にまとめて記録する方法です。
Rollup は大きく分けて Optimistic Rollup と ZK Rollup の 2 つの手法あります。 ZK Rollup の ZK はゼロ知識証明の Zero Knowledge です。
SNARK と STARK
ZK Rollup で使うゼロ知識証明には SNARK と STARK の 2 つのタイプがあります。
Zero-Knowledge Proofs: STARKs vs SNARKs
zk-SNARKs and zk-STARKs Explained
zkSNARKs vs zkSTARKs: a primer
SNARK と STARK にはそれぞれメリットがありますが、STARK のほうが SNARK よりあとに考案されており、SNARK のいくつかの弱点を補っています。
SNARK | STARK | |
---|---|---|
信頼すべき機関 | 必要 | 不要 |
量子コンピュータ耐性 | なし | あり |
それなら、SNARK より STARK のほうがいいのかと言えば、必ずしもそうとは言えません。 SNARK を使った ZkSync なら Solidity の資産を活かすことができます。
SNARK を使ったプロトコル
- ZkSync
- Loopring
- Polygon Hermez
STARK を使ったプロトコル
- Starkware
- Polygon Miden