Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ZoKrates - zk-SNARKをEthereumで使おう -
Search
Takeharu-K
November 22, 2019
Technology
0
620
ZoKrates - zk-SNARKをEthereumで使おう -
Blockchain Nagoya LT会で発表したスライドです。
zk-SNARK
ZoKrates
ゼロ知識証明
Takeharu-K
November 22, 2019
Tweet
Share
More Decks by Takeharu-K
See All by Takeharu-K
【Lightning Acompany #4】秘密計算のお気持ちを理解する
takeharuk
0
200
秘密計算勉強会#1資料/TEE・マルチパーティ計算・完全準同型暗号
takeharuk
0
1.4k
ブロックチェーンで変わる未来 基礎知識編
takeharuk
0
86
Schnorr署名を10分で理解@blockchain.nagoya
takeharuk
0
370
ECDSAを10分で理解/名古屋LT会
takeharuk
0
590
Other Decks in Technology
See All in Technology
AI でアップデートする既存テクノロジーと、クラウドエンジニアの生きる道
soracom
PRO
1
270
2024年版 運用者たちのLLM
nwiizo
3
360
日経電子版から始まった内製開発の現在地と向き合っている課題/inhouse
nishiuma
0
240
中規模・ミドルTier開発組織におけるDevRelの戦略と実行と成果 - DevRel Guild Conference Mini -
leveragestech
2
280
waitany と waitall を作った話
mrkn
0
110
【Λ(らむだ)最近のアプデ情報 / RPALT20240904
lambda
0
170
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
0
3.2k
Practical GenAI with Go - Elastic and Golang Sydney
adriancole
0
140
自社サービスのための独自リリース版Redmine「RedMica」の取り組み
vividtone
0
770
[RSJ24] Object Retrieval in Large-Scale Indoor Environments Using Dense Text with a Multi-Modal Large Language Model
keio_smilab
PRO
0
230
LandingZoneAccelerator と学ぶ 「スケーラブルで安全なマルチアカウントAWS環境」と 私たちにもできるベストプラクティス
maimyyym
1
110
手軽に始める? おうちサーバーのすゝめ
nyagasan
0
180
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
38
9.1k
Building Your Own Lightsaber
phodgson
101
6k
How To Stay Up To Date on Web Technology
chriscoyier
785
250k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
24
2k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
325
21k
Typedesign – Prime Four
hannesfritz
39
2.3k
How to train your dragon (web standard)
notwaldorf
85
5.6k
The Mythical Team-Month
searls
218
43k
How GitHub (no longer) Works
holman
309
140k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Teambox: Starting and Learning
jrom
131
8.7k
Transcript
ZoKrates zk-SNARKをEthereumで使う 191122 Acompany CTO 近藤岳晴
Strictly Confiden8al Copyright©株式会社Acompany All right reserved. Ethereumにおけるトランザクション処理 コントラクトの実⾏と検証を⾏う
Strictly Confiden8al Copyright©株式会社Acompany All right reserved. オフチェーンで計算 実⾏結果の検証だけを⾏う
Strictly Confiden8al Copyright©株式会社Acompany All right reserved. オフチェーン計算のメリット • ノードの負荷が下がる •
スケーラビリティが上がる • TPSが上がる • 情報を秘密にすることができる • 残⾼情報を秘密にできる • コントラクトで秘密にしたい情報を扱うことができる
Strictly Confiden8al Copyright©株式会社Acompany All right reserved. 実現⽅法 ゼロ知識証明を⽤いる
Strictly Confiden8al Copyright©株式会社Acompany All right reserved. ゼロ知識証明 「秘密の情報を知っていることを、秘密の情 報を開⽰することなく証明すること」 例
• 洞窟の奥の扉の秘密の合⾔葉を知っている ことを証明したい • 検証する⼈が証明する⼈にAかBどちらかの ⽅から出てくることを要求する • 証明する⼈は指定された⽅から出てくる • 以上を何度も繰り返す • 秘密を知っている⼈は全て正しく出てくる
Strictly Confiden8al Copyright©株式会社Acompany All right reserved. ゼロ知識証明の問題点 証明に何度もやり取りをする必要がある
Strictly Confiden8al Copyright©株式会社Acompany All right reserved. 解決策 zk-SNARKを使う
Strictly Confiden8al Copyright©株式会社Acompany All right reserved. zk-SNARK • Zero-Knowledge Succinct
Non-interactive Arguments of Knowledge • ⼀回のメッセージのやりとりで完了 • ゼロ知識性を持つ • 秘密情報を漏らすことがない • 検証者は証明が正しければ承認する • 証明が正しくなければ承認しない • デメリット • 信頼できる第三者による準備が必要
Strictly Confiden8al Copyright©株式会社Acompany All right reserved. zk-SNARK概観 ⼊⼒ 出⼒ X
計算回路作成 Setup 信頼された第三者が実⾏ 検証 証明鍵 検証鍵 証明者 検証者 証明 + X
Strictly Confiden8al Copyright©株式会社Acompany All right reserved. Ethereumで簡単に使うには ZoKrates ゾクラテス
Strictly Confiden8al Copyright©株式会社Acompany All right reserved. ZoKrates • Ethereumでzk-SNARKを使うためのCLIツール •
機能 • 計算回路作成 • Setup処理 • 証明作成 • 検証⽤コントラクト作成
Strictly Confiden8al Copyright©株式会社Acompany All right reserved. ZoKrates概観 • 独⾃の⾼級⾔語で計算回路作成 •
Setupの実⾏ • 証明の作成 • 検証⽤コントラクトコード作成
Strictly Confiden8al Copyright©株式会社Acompany All right reserved. 内部の仕組み ZoKrates のコード パース
フラット化 CLI ⼊⼒ Witness R1CSに変換 libsnark コントラクト コード⽣成
Strictly Confiden8al Copyright©株式会社Acompany All right reserved. 計算回路のコード例 def main(private field
a, field b) -> (field): field result = if a * a == b then 1 else 0 fi return result
Strictly Confiden8al Copyright©株式会社Acompany All right reserved. Remixで使える
Strictly Confiden8al Copyright©株式会社Acompany All right reserved. ZoKratesでzk-SNARKをEthereumで使ってみよう
Strictly Confiden8al Copyright©株式会社Acompany All right reserved. 詳しくはこちらで https://hackernoon.com/zokrates-zksnarks-on-ethereum-made- easy-ql5oc3638
Strictly Confiden8al Copyright©株式会社Acompany All right reserved. Happy Hacking !