Slide 1

Slide 1 text

ZKP(zkSNARKs) の 使い方と活用事例 20231111 Web3 Global Hackathon

Slide 2

Slide 2 text

本登壇での目標 1 ZKP の概要を理解する 2 ZKP の活用方法を理解する

Slide 3

Slide 3 text

本登壇での目標 1 ZKP の概要を理解する 2 ZKP の活用方法を理解する ハッカソンでZKP を活用したおもしをいアプリケー ションを見たい!!!!!

Slide 4

Slide 4 text

ZKP の理論や数学的な説明はしません!!

Slide 5

Slide 5 text

ZKP (Zero Knowledge Proof) とは ある命題が真であることを、命題が真であるという情報以外を伝えずに証明できること

Slide 6

Slide 6 text

ZKP (Zero Knowledge Proof) とは C(x, w) = z でw を明かすことなくC(x, w) = true であることを証明できる x : public input w : private input (witness) prover : w を公開することなくC(x,w) = true がなりたつ「proof (pr=P(pk,x,w)) 」を作成する varifier : 「proof 」の検証V(vk,x,pr) を行う proving key(pk) a verification key(vk) P(Prover) 例)x = ユーザーネーム, w = パスワード

Slide 7

Slide 7 text

ZKP の種類 STARK : StarkWare Halo : scroll, Filecoin, Anoma Bulletproofs : Monero Groth16 : tornado cash, Zcash, Loopring, Polygon Hermez* PlonK : Aztec, zkSync, Mina Halo list : https://electriccoin.co/blog/halos-contribution-goes-beyond-efficiency/ Plonk list : https://zeroknowledge.fm/news-2-on-optimization-plonk/ Groth16 list : https://docs.gnark.consensys.net/Concepts/schemes_curves https://blog.pantherprotocol.io/zk-snarks-vs-zk-starks-differences-in-zero-knowledge-technologies/

Slide 8

Slide 8 text

ZKP の種類 SNARKs 証明の生成は遅いが、Proof のサイ ズが小さく検証が早い STARKs 証明の生成は早いが、Proof のサイ ズが大きく検証が遅い Trusted setup が不要 + 量子耐性 証明するデータ量が多くなっても Proof のサイズがそこまで大きくな らない https://github.com/matter-labs/awesome-zero-knowledge-proofs?ref=blog.pantherprotocol.io#comparison-of-the- most-popular-zkp-systems https://ethereum.stackexchange.com/questions/59145/zk-snarks-vs-zk-starks-vs-bulletproofs-updated https://blog.chain.link/zk-snarks-vs-zk-starks/

Slide 9

Slide 9 text

zk-SNARKs とは zkSNARKS = Succinct Non interactive ARgument of Knowledge Succint = 簡潔:実際のデータ量よりもproof のサイズ非常に小さい Non Interactive = 非対話式 : prover からverifier への情報の送信は一度きりで、両者間での往復する やりとりはない ARguement of Knowledge = 知識の根拠:proof は計算上確かなものとみなされるため、proof の元 となる情報を保持していない限り、システムをハックすることは困難 https://coincodecap.com/snarks-vs-starks-difference

Slide 10

Slide 10 text

zkSNARKs の流れ 【開発者側】 circom でcircuit( 回路) の作成 1. circuit のcompile 2. Trusted Setup* (Power Of Tau, phase2) 3. Solidity Verifier の作成 4. 【利用者側】 Prover のpublic / private input からProof の 生成 1. Proof をSolidity で検証 2. https://docs.circom.io/ https://github.com/tornadocash/tornado-core/blob/master/contracts/Tornado.sol#L76-L99

Slide 11

Slide 11 text

Trusted setup とCeremony Trusted Setup ZKP を利用するために必要となる最初のパラ メータを生成するプロセスのこと パラメータを生成する際の秘密情報* が漏洩し てしまうと虚偽のproof が生成できてしまう しかし、private input は算出することはでき ない *toxic waste https://inevitableeth.com/en/home/ethereum/upgrades/scaling/data/proto-danksharding/kzg-ceremony

Slide 12

Slide 12 text

Trusted setup とCeremony Ceremony Trusted Setup の一部で、不特定多数の参加者 が生成する秘密情報をリレー形式に繋いで ZKP に必要なパラメーターを生成する作業の こと ZKG Ceremony もTrusted Setup を作成するた めのもの https://ceremony.ethereum.org/

Slide 13

Slide 13 text

ブロックチェーンにおけるZKP の利点 データ量/ 計算量の圧縮 全て情報を渡すことなく情報の検証ができること 例:zk rollup, HyoerOracle 情報の秘匿化 オープンが前提のブロックチェーンにプライベートの概念を持ち込むことができること 例:tornado cash

Slide 14

Slide 14 text

zk-Rollup とは

Slide 15

Slide 15 text

zk-Rollup とは Optimism (Optimistic rollup) op-bacher : L2 のトランザクションを全てまとめてL1 に保存 zkSync (zk Rollup) commit : L2 のトランザクションからなるCommit を保存 prove : Commit の元となるデータがあることを証明

Slide 16

Slide 16 text

Tornado cash とは 暗号資産のミキシングサービス 解決した課題 : 全く新しいアドレスにしたい場合オンチェーンとトランザクションは全て追跡可能な のでアドレスの関係性を断ち切ることができなかったこと

Slide 17

Slide 17 text

Tornado cash の仕組み https://etherscan.io/address/0xd90e2f925DA726b50C4Ed8D0Fb90Ad053324F31b

Slide 18

Slide 18 text

まとめ 1 ZKP とはある命題が真であることを、命題が真であるという情報以外を伝え ずに証明できること 2 ZKP を使うとデータ量/ 計算量の圧縮と秘匿化ができる

Slide 19

Slide 19 text

アイデアの考え方 1 仮説検証を徹底的に繰り返すリサーチ 2 事業者へのヒアリング

Slide 20

Slide 20 text

ハッカソンのアイデアの考え方 仮説検証を徹底的に繰り返すリサーチ 徹底的にリサーチし業界の流れを掴めば、まだ過渡期である業界に足りてないもの、必要とされてい るものが見えてくる 事業者へのヒアリング 事業者がよさそうと思っているサービス Web3 スタートアップのアイデアを11 個考えてみた & (パート2) 今クリプト領域で起業するならどのようなテーマを選ぶか? 10 のアイデア Web3 Startup Ideas A List of Open Problems in Crypto - II STATE OF CRYPTO 2023 業界のまとめレポート

Slide 21

Slide 21 text

ありがとうございました! Happy zk life 🎅