SlideShare une entreprise Scribd logo
1  sur  81
zk-SNARKs
九州工業大学 情報工学部
情報・通信工学科 荒木研究室
津田 匠貴
目次
1. zk-SNARKsの概要
2. 数学的準備
3. Flatting→R1CS
4. R1CS→QAP
5. Trusted Setup
6. 証明
7. 検証
8. まとめ
2
zk-SNARKsの概要
3
zk-SNARKs(Zero Knowledge – Succinct Non-interactive
Argument of Knowledge)
• Zero-Knowledge:ゼロ知識証明を用いたスキームであること
• Succint:実際に実行する計算量よりメッセージのサイズがとても小さいこと
• Non-interactive:証明者と承認者がリアルタイムで非対話な証明を行えること
• Argument of knowledge :計算による知識の証明のこと
SNARKとは、「承認者が証明者に問いを出すことなく承認作業を短時間かつ少ない計算量
で行うことができる」という概念
証明者Aliceは関数𝑓と秘密の入力𝑤,秘密でない入力𝑥に対して𝑦 = 𝑓(𝑥, 𝑤)を計算する
検証者BobはAliceの計算を確認したい
→𝑓を𝑓 − 𝑦に置き換えると、Bobは「Aliceに対して𝑓(𝑥, 𝑤) = 0となる𝑤を知っている」こと
を確認することになるここに数式を入力します。
4
何ができるのか?
1. 分散した情報の存在証明
2. 秘匿化したまま情報を送受信する
3. Txやブロックを集約し、メインチェーンに刻む
Layer 2 Solutionと呼ばれる
→これらが発展するとブロックチェーンの諸問題の解決に役立つ
• スケーラビリティ
• インターオペラビリティ
• プライバシー
5
例:zk-Rollup
6
https://ethereum.org/ja/developers/docs/scaling/layer-2-rollups/ より
• Ethereum上のスマートコントラクトが多数のトランザクションを集約し、その
証明を一つのトランザクションでオンチェーンに記録し、検証をゼロ知識証明
で行う
• これによってオンチェーンでのステートの書き換えが少ない回数で済み、取引
情報はオフチェーンストレージに格納される
zk-SNARKsの歴史
• 2011年:ゼロ知識証明の研究からzk-SNARKsが派生する
• 「 From extractable collision resistance to succinct non-interactive arguments of
knowledge, and back again: 」Bitansky,Canettiら
• 2014年:暗号資産の秘匿送金に応用されはじめる
• Zcashに利用されたのがはじまり
• 2016年:Ethereumにおける応用方法が検討され始める
• vitalikによる解説記事がはじまり
• 2018年:zk-SNARKsのデメリット(後述)を改善したzk-STARKsが提案される
• trusted setupが必要なく証明時間を短縮できるうえ、量子コンピュータ耐性がある
• 2021年:Ethereum2.0の一部に組み込まれて実装予定
7
zk-SNARKs以外の方法はないのか?
8
LayerX社 Anonifyの資料より
プライバシー保護の観点から見れば
代替手段が存在するがスケーラビリティや
インターオペラビリティの向上には向かない
zk-SNARKsのメリット・デメリット
メリット
• 証明のサイズが小さい
デメリット
• trusted setupが必要
• 計算量が大きい
9
数学的準備
10
数学的準備
• 行列計算
• 簡単な四則演算ができればokなので割愛
• ラグランジェの補間公式
• KEA1 (knowledge-of-exponent assumption)
• 便宜上、後半で説明
• 楕円曲線暗号
• BLS署名、ペアリング
• 充足可能性問題(SAT: Satisfiability Problem)
• 回路の充足性問題(Circuit-SAT)
• QAP(Quadratic Arithmetic Problem)
• クロネッカーのデルタ
• Schwartz-Zippleの補題
11
ラグランジェの補間公式
• 関数𝑓(𝑥)上の𝑛 + 1個の点
(𝑥0, 𝑓(𝑥0)), (𝑥1, 𝑓(𝑥1)), ・・・,(𝑥𝑛, 𝑓(𝑥𝑛))
を通る𝑛次関数𝑝(𝑥)は
𝑝 𝑥 =
𝑗=0
𝑛
𝑓(𝑥𝑗)𝐿𝑗(𝑥)
である。ここで𝐿𝑗(𝑥)は𝑛次関数
𝐿𝑗 𝑥 =
(𝑥 − 𝑥0) ⋯ (𝑥 − 𝑥𝑗−1)(𝑥 − 𝑥𝑗+1) ⋯ )(𝑥 − 𝑥𝑛)
(𝑥𝑗 − 𝑥0) ⋯ (𝑥𝑗 − 𝑥𝑗−1)(𝑥𝑗 − 𝑥𝑗+1) ⋯ )(𝑥𝑗 − 𝑥𝑛)
= 𝑖≠𝑗
(𝑥−𝑥𝑖)
(𝑥𝑗−𝑥𝑖)
𝑝(𝑥)をラグランジェの補間公式という
12
ペアリング
• 「楕円曲線の世界から有限体の世界へつなぐ架け橋」
• 楕円曲線𝐺上の2個の点の組みからある有限体𝐺𝑡への写像𝑒として作用する
𝑒: 𝐺 × 𝐺 → 𝐺𝑡
• 楕円曲線𝐺上の点をそれぞれ𝑃,𝑄とし2倍、3倍すると有限体上の値が2乗、3乗される
性質があり、これをペアリングの双線形性と言う
𝑒(2𝑃, 𝑄) = 𝑒(𝑃, 𝑄)²
𝑒(3𝑃, 2𝑄) = 𝑒(𝑃, 𝑄)⁶
• このペアリングの双線形性が検証に用いられる。
13
充足可能性問題(SAT)
• NP完全問題のひとつ
• 「与えられた多項式の出力が1になる入力の組み合わせが存在するか?」という問題
例「(𝑥1 ∨ 𝑥2) ∧ (𝑥1 ∨⇁ 𝑥2) ∧ (⇁ 𝑥1 ∨⇁ 𝑥2)の出力を1とする入力𝑥1,𝑥2 ∈ {0,1}が存在する」
• 𝑥1 = 1, 𝑥2 = 0のとき1となるので命題を満たす入力が存在する
• この仕組みを利用し、命題を満たす入力を持っていることを他人に対し証明する手法
を考えることができる。
• 証明者がSATに対する証拠𝑤: 𝑤𝑖𝑡𝑡𝑛𝑒𝑠𝑠を検証者に渡すことで、検証者はそれが関数𝑓の
出力が1となるかどうかを多項式時間で判定することができるようになる
• 𝑥をステートメント,𝑤を証拠としたとき関係ℛ: = {(𝑥, 𝑤) ∈ 𝔽𝑛
× 𝔽ℎ
}と定義する
ℛは演算回路Cで検証できるので(𝑥, 𝑤) ∈ ℛとなるとき𝑓(𝑥, 𝑤) = 1となる算術関数𝑓が存在
し入力が関数𝑓を満たす場合には演算回路の出力が1,そうでない場合には0となることを
意味する
14
算術回路に変換する
15
𝑓(𝑥1, 𝑥2) = (𝑥1 ∨ 𝑥2) ∧ (𝑥1 ∨⇁ 𝑥2) ∧ (⇁ 𝑥1 ∨⇁ 𝑥2)
∧
∧
∨
∨ ∨
𝑥1 𝑥2 ¬𝑥1 ¬𝑥2
𝑓(𝑥1, 𝑥2)
各乗算ノードの左辺、右辺の入力と出力に
多項式𝐿𝑖, 𝑅𝑖, 𝑂𝑖を割り当てる
・𝑔𝑖上で𝐿𝑖𝑅𝑖 = 𝑂𝑖
Circuit-SAT
• 対象が命題論理式から加算や乗算ゲートから成る回路へと変換されたSAT
• 「演算回路Cが与えられたとき、回路の出力を1とする入力が存在するか」という問題
16
QAP(Quadratic Arithmetic Program)
• SATの入出力が正しいかどうかを「ある多項式の入出力を知っている」ということに
変換する
制約
• ある式を掛け算ひとつで表現するために、変数を増やして表現する
• 各乗算ノードの左辺、右辺の入力と出力に多項式𝐿𝑖, 𝑅𝑖, 𝑂𝑖を割り当てる
基本的な流れ
証明者Alice;
• 多項式𝐿, 𝑅, 𝑂, 𝐻を選ぶ(Tは公開されている)
検証者Bob;
• 任意の𝑠を選び、𝐿(𝑠)𝑅(𝑠) − 𝑂(𝑠) = 𝑇(𝑠)𝐻(𝑠)を確認できればAliceが正しい計算
をしたと受理する
17
クロネッカーのデルタ
𝛿𝑖𝑗 =
0 (𝑖 = 𝑗)
1 (𝑖 ≠ 𝑗)
𝛿𝑖𝑗; 𝑇 × 𝑇 → 0,1
• 集合𝑇の元𝑖, 𝑗に対して上式によって定義される2変数関数
• 乗算ノード𝑔𝑖上で𝑏𝑖 𝑔𝑖 = 𝛿𝑖𝑗とする
• 算術回路の入出力を0/1を使った多項式に変換する役割を果たす
18
算術回路をクロネッカーのデルタを使って
多項式に変形する
• 例:𝑓 𝑐1, 𝑐2, 𝑐3 = 𝑐1 𝑐1 + 𝑐3
• 𝑐4 = 𝑐1𝑐2, 𝑐5 = 𝑐4 𝑐1 + 𝑐3
• 𝑏1 𝑥 = 2 − 𝑥, 𝑏2 𝑥 = 𝑥 − 1
• 𝐿 𝑥 ≔ 𝑖 𝑐𝑖𝐿𝑖 𝑥 = 𝑐1𝑏1 𝑥 + 𝑐4𝑏2 𝑥
• 𝑅 𝑥 ≔ 𝑖 𝑐𝑖𝑅𝑖 𝑥 = 𝑐2𝑏1 𝑥 + (𝑐1+𝑐3)𝑏2 𝑥
• 𝑂 𝑥 ≔ 𝑖 𝑐𝑖𝑂𝑖 𝑥 = 𝑐4𝑏1 𝑥 + 𝑐5𝑏2 𝑥
• 𝑉 𝑥 ≔ 𝐿 𝑥 𝑅 𝑥 − 𝑂(𝑥)
19
𝑐1 𝑐2 𝑐3 𝑐4 𝑐5
𝐿𝑖 𝑏1 0 0 𝑏2 0
𝑅𝑖 𝑏2 𝑏1 𝑏2 0 0
𝑂𝑖 0 0 0 𝑏1 𝑏2
𝑔1
𝑐1 𝑐2
𝑐4
𝑔2
𝑐4 𝑐1 + 𝑐3
𝑐5
多項式の検証
𝑔𝑖上で𝑏𝑖 𝑔𝑖 = 𝛿𝑖𝑗なので
• 𝑉 1 = 𝑐1𝑐2 − 𝑐4
• 𝑉 2 = 𝑐4 𝑐1 + 𝑐3 − 𝑐5
このとき𝑉 1 = 𝑉 2 =0なら𝑐1𝑐2 = 𝑐4, 𝑐4 𝑐1 + 𝑐3 = 𝑐5
→もとの式を正しく計算していることになる
𝑓 𝑐1, 𝑐2, 𝑐3 = 𝑐1
𝑐4 = 𝑐1𝑐2, 𝑐5 = 𝑐4 𝑐1 + 𝑐3
しかし、全ての多項式についてチェックする必要があるうえ
証明者は検証者に生成した多項式自体を渡さなければならない
20
多項式を割り算で検証する
ターゲット多項式
• 𝑇 𝑥 ≔ 𝑖 𝑥 − 𝑔𝑖 (この例では𝑇 𝑥 = 𝑥 − 1 𝑥 − 2 )
𝑽 𝒈𝒊 = 𝟎 ⟺ 𝑽(𝒙)が𝐓(𝐱)で割り切れる
𝐻(𝑥) = 𝑉(𝑥)/𝑇(𝑥)とすると、もし𝑤が正しければ𝐻(𝑥)𝑇(𝑥) − 𝑉(𝑥) = 0
が常に成り立つ
以下の多項式P(𝑥)が恒等的にゼロであることを検証すれば良い
𝑃(𝑥) = 𝐻(𝑥)𝑇(𝑥) − 𝑉(𝑥)
送信する複数の多項式を一つに集約できた
→それでも、検証コストがかかる
21
ある一点のみチェックする
Schwartz-Zippleの補題
多項式が正しくない場合、ランダムに選択した点𝑠で多項式を評価すると、高い確率で
誤った答えが出現することを示したもの
• 𝑑次多項式𝑓は高々𝑑個の解しか持たない
• 任意の点sに対して𝑓(𝑠) = 0となる確率は極めて低い
• 𝑓(𝑠) = 0ならば𝑓 ≡ 0
• この補題に依拠し、検証者はランダムに選んだ評価点𝑠を証明者に送り、それを受け
取った証明者はその点で多項式評価し、検証者に渡す
→秘密にしたい多項式のチェックを1点で代用できる
任意の一点で検証不可能ならば、証明者の証拠𝒘が正しくない
証明者は検証者に1つの多項式𝑷(𝒙) を送るだけで良い
22
QAPの定義について
定義:
多項式𝑅𝑖, 𝐿𝑖, 𝑂𝑖, 𝑇の組をQAPと呼ぶ.𝑉が𝑇で割り切れるとき(𝑐𝑖)はQAP
を満たすという.
QAPを満たすことを検証者が確認できれば証明者が答えを知ってい
ることを判定できる
証明者Alice;
• 多項式𝑃 𝑠 = 𝐻(𝑠)𝑇(𝑠) − 𝑉(𝑠)をBobへ送る
検証者Bob;
• 任意の𝑠を選び、𝑃 𝑠 = 0を確認できればAliceが正しい計算をしたと判断する
23
算術回路→多項式
24
𝑅 = {𝑟𝑘 𝑥 }𝑘∈{𝑚}
𝐿 = {𝑙𝑘 𝑥 }𝑘∈{𝑚}
𝑂 = {𝑜𝑘 𝑥 }𝑘∈{𝑚}
𝑇 𝑥 =
𝑖
𝑥 − 𝑔𝑖
𝑉 𝑥 = 𝑟0 +
𝑘=1
𝑚
𝑐𝑘. 𝑟𝑘 𝑥 ∙ 𝑙0 +
𝑘=1
𝑚
𝑐𝑘. 𝑙𝑘 𝑥 − 𝑜0 +
𝑘=1
𝑚
𝑐𝑘. 𝑜𝑘 𝑥
{𝐶𝑖} 𝑖∈{𝑚}
H 𝑥 𝑇 𝑥 = 𝑉(𝑥)
・𝑅, 𝐿, 𝑂は各ゲートの左入力、右入力、出力を表す多項式
・{𝐶𝑖} 𝑖∈{𝑚}
は回路への入力によって得られる各乗算ゲートの出力
Circuit-SAT→QAP
25
𝑃 𝑠 = 𝐻(𝑠)𝑇(𝑠) − 𝑉(𝑠)
Flatting→R1CS
26
承認までのながれ
27
R1CS
QAP
Trusted setup
証明
検証
Flatting
・複雑なコード(関数)を多項式に変換する一連の作業
・非対話型ゼロ知識証明を応用したプロトコル
・QAPから証明鍵/検証鍵を自動生成するスキーム
zk-SNARKsをEthereumで使う場合
28
Flatteningされたgate
29
sym_1 = x*x
y = sym_1*x
sym_2 = y*x
out = sym_2+5
例) 𝑥3
+ 𝑥 + 5 == 35の解(𝑥 = 3)を知っていることをZKPする
これらの制限のもと、𝑆𝐴 ∗ 𝑆𝐵 − 𝑆𝐶 = 0を満たす𝐴, 𝐵, 𝐶ベクトルを探す
また、𝑥 = 3なので𝑆 = (1,3,35,9,27,30)
コンパイルしたコード(qeval()関数)を𝑥 = 𝑦 か 𝑥 = 𝑦 (𝑜𝑝) 𝑧 の形に直すと以下の演算(gate)が定義できる
def qeval(x):
y = x**3
return x + y + 5
R1CS(rank-1 constraint system.)
R1CSは任意のコード(関数)を算術回路に落とし込み、配列に変形させるシステム
𝑎, 𝑏, 𝑐 , 𝑎𝑖 𝑥 , 𝑠 ∗ 𝑎 ∗ 𝑠 ∗ 𝑏 = 𝑠 ∗ 𝑐
𝑆 = 𝑠1, 𝑠2, 𝑠3
𝐴1 =
𝑎1,1
𝑎1.2
𝑎1.3
としたときに𝑆𝐴 ∗ 𝑆𝐵 − 𝑆𝐶 = 0になる(𝑎, 𝑏, 𝑐)を見つけることがゴール
このとき、𝑆𝐴や𝑆𝐵, 𝑆𝐶はスカラ値であり、𝑆は数字、変数、入力、出力のベクトルになる
30
gates→R1CS
𝑆 = (𝑜𝑛𝑒, 𝑥, 𝑜𝑢𝑡, 𝑠𝑦𝑚1, 𝑦, 𝑠𝑦𝑚2) のとき𝑆𝐴 ∗ 𝑆𝐵 − 𝑆𝐶 = 0でsym_1 = x * xを満たす
ベクトル(a,b,c)を計算すると
𝑥1 ∗ 𝑥1 − 𝑠𝑦𝑚11 = 0
𝑠𝑦𝑚1 = 𝑥 ∗ 𝑥
よって
𝑎 = 0,1,0,0,0,0
𝑏 = 0,1,0,0,0,0
𝑐 = 0,0,0,1,0,0
つまり、入力𝑥の値によって、 𝑆,𝐴, 𝐵, 𝐶の要素は一意に決定する
31
それぞれの演算結果
• sym_1 = x*x
𝑎 = 0,1,0,0,0,0
𝑏 = 0,1,0,0,0,0
𝑐 = 0,0,0,1,0,0
• y = sym_1*x
𝑎 = 0,0,0,1,0,0
𝑏 = 0,1,0,0,0,0
𝑐 = 0,0,0,0,1,0
• sym_2 = y*x
𝑎 = 0,1,0,0,1,0
𝑏 = 1,0,0,0,0,0
𝑐 = 0,0,0,0,0,1
• out = sym_2+5
𝑎 = 5,0,0,0,0,1
𝑏 = 1,0,0,0,0,0
𝑐 = 0,0,1,0,0,0
32
結果的にR1CSは長さが6(変数数+1)の3つのベクトル(A,B,C)からなる
4つの集合(gate数)から構成される
(0, 1, 0, 0, 0, 0)
(0, 0, 0, 1, 0, 0)
(0, 1, 0, 0, 1, 0)
(5, 0, 0, 0, 0, 1)
(0, 1, 0, 0, 0, 0)
(0, 1, 0, 0, 0, 0)
(1, 0, 0, 0, 0, 0)
(1, 0, 0, 0, 0, 0)
(0, 0, 0, 1, 0, 0)
(0, 0, 0, 0, 1, 0)
(0, 0, 0, 0, 0, 1)
(0, 0, 1, 0, 0, 0)
33
縦じゃなくて横に並べてます
𝐴 =
𝐵 =
𝐶 =
最終的にoutの演算𝑆𝐴 ∗ 𝑆𝐵 − 𝑆𝐶 = 0の結果もゼロになればok
34
R1CS→QAP
35
R1CS→QAP
R1CSからQAPの変換も、GatesからR1CSへの変換と同じように行うが
ドット積の代わりに多項式を利用する
例)𝐴について
36
同様に𝐵, 𝐶も変形させる
ベクトルを縦向きに取る
多項式化する
Aをラグランジェの補間公式に当てはめ、多項式にすると
𝐴1 𝑥 = −5.0 + 9.16 … 𝑥 − 5.0𝑥2
+ 0.83 … 𝑥3
𝐴2 𝑥 = 8.0 − 11.33 … 𝑥 + 5.0𝑥2
− 0.66 … 𝑥3
⋮
となる.
検算
𝐴1 1 = −5 + 9.16 … − 5 + 0.83 … = 0
𝐴1 4 = −5 + 9.16 … ∗ 4 − 5 ∗ 5 ∗ 16 + 0.83 … ∗ 64 = 5
37
一致している
𝐴2以降についても同様の結果が得られる(もちろん𝐵𝑖, 𝐶𝑖についても)
多項式の係数を昇順に並べてみる
38
A polynomials
[-5.0, 9.166, -5.0, 0.833]
[8.0, -11.333, 5.0, -0.666]
[0.0, 0.0, 0.0, 0.0]
[-6.0, 9.5, -4.0, 0.5]
[4.0, -7.0, 3.5, -0.5]
[-1.0, 1.833, -1.0, 0.166]
B polynomials
[3.0, -5.166, 2.5, -0.333]
[-2.0, 5.166, -2.5, 0.333]
[0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0]
C polynomials
[0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0]
[-1.0, 1.833, -1.0, 0.166]
[4.0, -4.333, 1.5, -0.166]
[-6.0, 9.5, -4.0, 0.5]
[4.0, -7.0, 3.5, -0.5]
R1CS→QAPのまとめ
39
4つの「長さ6の3つのベクトルからなるグループ」のR1CS
↓
3つの「6つの3次多項式からなるグループ」
R1CS 多項式(係数)
そもそもなんで多項式に変換するんだっけ?
• 今回のR1CSは4回ドット積をチェックする必要があるが、さらに複雑な関数になると
R1CSのままでは、数千~数万ものgatesをチェックすることになる
• gatesに対応するそれぞれのR1CSではなく、多項式のドット積をチェックすることで
全てのgatesを同時にチェックできるのがzk-SNARKsのメリット
• しかし、で多項式化するためのラグランジェの補間公式アルゴリズムは𝑂(𝑛3
)なので
多項式化の計算量がzk-SNARKsのデメリット
• zk-SNARKsを用いる関数は数千のgatesになるのでこのような最適化は超重要
→高速フーリエ変換を用いた最適化やzk-STARKsの登場につながる
40
実際に𝑆との積を計算する
• 𝐴 . 𝑠 = [43.0, −73.333, 38.5, −5.166] (= 𝐴(𝑥))
• 𝐵 . 𝑠 = [−3.0, 10.333, −5.0, 0.666] (= 𝐵(𝑥))
• 𝐶 . 𝑠 = [−41.0, 71.666, −24.5, 2.833] (= 𝐶(𝑥))
例えば、 1 ∗ (−5) + 3 ∗ 8 + 35 ∗ 0 + 9 ∗ (−5) + 27 ∗ 4 + 30 ∗ (−1) = 43.0
𝑡 = 𝐴 . 𝑠 ∗ 𝐵 . 𝑠 − 𝐶 . 𝑠 とすると
𝑡 = [−88.0, 592.666, −1063.777, 805.833, −294.777, 51.5, −3.444]
このとき、𝑡自体はゼロにならず、gate数に対応する𝑥 = 1,2,3,4について評価するのでは
なく
最小多項式𝑍で除算し、余りがないことをチェックする
41
計算の解釈を変更する
𝑍 = 𝑥 − 1 ∗ 𝑥 − 2 ∗ 𝑥 − 3 ∗ 𝑥 − 4 = 𝑥4
− 10𝑥3
+ 35𝑥2
− 50𝑥 + 24
係数ベクトルは[24, −50,35, −10,1](係数昇順)
よって、ℎ = 𝑡/𝑍 = [−3.666,17.055, −3.444] ,ℎ 𝑥 = −3.66 + 17.05𝑥 − 3.44𝑥2
つまり𝑥 = 1,2,3,4が解であるということ.
もし、間違った𝑠(つまり入力𝑥! = 3)だと𝑡多項式の𝑥 = 1,2,3,4を入力した結果がゼロ
にならない.
これはつまり、𝑃 = 𝐴𝐵 − Cが𝑍で因数分解できるときに
𝑃: = 𝐻𝑍であるということなので
𝐴 𝑥 ∗ 𝐵 𝑥 − 𝐶 𝑥 = 𝐻 𝑥 ∗ 𝑍(𝑥)
42
QAPのの最終形態
43
ここまでのおさらい
44
R1CS
QAP
Trusted setup
証明
検証
Flatting
・複雑なコード(関数)を多項式に変換する一連の作業
・非対話型ゼロ知識証明を応用したプロトコル
・QAPから証明鍵/検証鍵を自動生成するスキーム
Trusted Setup
45
Trusted Setupのながれ
46
・𝐺 ∗ 𝐴1 𝑡 , 𝐺 ∗ 𝐴1 𝑡 ∗ 𝑘𝑎
・𝐺 ∗ 𝐴1 𝑡 , 𝐺 ∗ 𝐴2 𝑡 ∗ 𝑘𝑎
・ …
・𝐺 ∗ 𝐵1 𝑡 , 𝐺 ∗ 𝐵1 𝑡 ∗ 𝑘𝑏
・𝐺 ∗ 𝐵2 𝑡 , 𝐺 ∗ 𝐵2 𝑡 ∗ 𝑘𝑏
・ …
・𝐺 ∗ 𝐶1 𝑡 , 𝐺 ∗ 𝐶1 𝑡 ∗ 𝑘𝑐
・𝐺 ∗ 𝐶2 𝑡 , 𝐺 ∗ 𝐶2 𝑡 ∗ 𝑘𝑐
・ …
Proving Key
𝑡,𝑘𝑎, 𝑘𝑏, 𝑘𝑐
toxic waste
QAPとtoxic wasteを使ってProving Keyとproofsを作成する作業
QAP
𝐴 𝑥 ∗ 𝐵 𝑥 − 𝐶 𝑥 = 𝐻 𝑥 ∗ 𝑍(𝑥)
KEA (knowledge-of-exponent assumption)
「情報𝒓を知っていることをゼロ知識証明できる仕組み」
• 楕円曲線上の点𝑃, 𝑄, 𝑅, 𝑆において 𝑃 ∗ 𝑘 = 𝑄の時、𝑅, 𝑆がそれぞれ
𝑃, 𝑄から計算できない場合は 𝑅 ∗ 𝑘は計算することができない。
• 逆に、𝑅 = 𝑟𝑃, 𝑆 = 𝑟𝑄となるような𝑟を知っている場合は𝑆=𝑘𝑅を
得ることができる。
例)
証明者アリスが(𝑅, 𝑆) = (𝑟𝑃, 𝑟𝑄)となる𝑟を知っているとすると
𝑆 = 𝑟𝑄 = 𝑟(𝑘𝑃) = 𝑘(𝑟𝑃) = 𝑅𝑘と確かに得ることができる
47
ベクトルで考えてみる
48
P
Q
R
S
𝑃 ∗ 𝑘 = 𝑄
𝑃から𝑅への写像が定義できなければ𝑅をスカラ倍した𝑅 ∗ 𝑘も定義できない
?
?
?
𝑟がわかれば定義できるベクトルが広がる
49
P
Q
R
S
逆に、𝑅 = 𝑟𝑃, 𝑆 = 𝑟𝑄となるような𝑟を知っていれば𝑆 = 𝑘𝑅を得ることができる
𝑅 = 𝑟𝑃
𝑆 = 𝑟𝑄
𝑃 ∗ 𝑘 = 𝑄 𝑆 = 𝑘𝑅
秘匿性の根拠
50
P
Q
R
S
𝑅 ∗ 𝑘 = 𝑆である(𝑅, 𝑆)を作るにはKEAより、𝑃, 𝑄に対して秘匿な値𝑟を
乗算して作るしかない
𝑅 = 𝑟𝑃
𝑆 = 𝑟𝑄
𝑃 ∗ 𝑘 = 𝑄 𝑆 = 𝑘𝑅
高速な検証が可能
51
P
Q
R
S
𝑅 = 𝑟𝑃
𝑆 = 𝑟𝑄
𝑃 ∗ 𝑘 = 𝑄 𝑆 = 𝑘𝑅
ただし、ペアリングの性質により𝑅 ∗ 𝐾 = 𝑆を検証するために
𝑘を知る必要はなく、𝑒(𝑅, 𝑄) = 𝑒(𝑃, 𝑆)を検証すればよい
𝑃 ∗ 𝑘 = 𝑄を線形和へ
• 楕円曲線上で𝑃𝑖 ∗ 𝑘 = 𝑄𝑖が成立する10個の点
𝑃1, 𝑄1 , 𝑃2, 𝑄2 … 𝑃10, 𝑄10 を考える
• 𝑘を知らない状況で、𝑅 ∗ 𝑘=𝑆となる楕円曲線上の点(𝑅, 𝑆)を作る
には、係数𝑖1, 𝑖2, … 𝑖10を用いて𝑃1 ∗ 𝑖1 + 𝑃2 ∗ 𝑖2+… 𝑃10 ∗ 𝑖10という線
形和から𝑅を知る必要がある。(𝑄についても同様)
• つまり、秘匿化したい情報𝒓 を 係数𝒊𝟏, 𝒊𝟐, … 𝒊𝟏𝟎 に置き換える
• zk-SNARKsにおいてこれら係数はQAPの多項式の係数に一致する
52
𝑃 ∗ 𝑘 = 𝑄を線形和へ(続き)
• 例えば(𝑃1, 𝑄1) (𝑃2, 𝑄2)で考えると𝑖1, 𝑖2を𝐹𝑞
∗の元として
𝑆 = 𝑖1𝑄1 + 𝑖2𝑄2 = 𝑖1𝑘𝑃1 + 𝑖2𝑘𝑃2 = 𝑘 𝑖1𝑃1 + 𝑖2𝑃2 = 𝑘𝑅
確かに、検証者は𝑆 = 𝑅 ∗ 𝑘を得ることができる
• つまり、線形和の検証を行いたい10個の𝑃に対して、𝑘を知らずに
対応する𝑄を作ることができない.(スカラ倍にできない)
53
toxic wasteについて
• KEAを実現するには秘匿化したい情報𝒓とスカラ𝒌の存在が重要
• もしもTrusted Setup後も𝑘が存在したら線形和を作ることなく任
意の𝑅に対して𝑅 ∗ 𝑘 = 𝑆となる(𝑅, 𝑆)のペアを作ることができてし
まいKEAが成り立たない
• つまり、信頼できる主体が10個の点(𝑃, 𝑄)を作ったら
𝒌を消去する必要がある
• 𝑘はMPC(Multi-party Computation Ceremonies)などを用いて
誰も値を知らない方法で計算される
54
Trusted Setupのデメリット
そもそも…
• Trusted Setupで(𝑃, 𝑄)が与えられ、KEAにより(𝑅, 𝑆)が生成できるこ
とがゼロ知識証明になっている。
「Pの線形和を生成することが可能か」という命題
しかし…
• Trusted Setupで𝒌を生成する必要がある
• 𝑘 の値を知られてしまうと安全性が損なわれる
• このTrusted Setupを使わない方法も研究されている
• zk-STARKs, Bulletproofsなど
55
KEAとQAPから証明を生成する
• 証明者はpublic inputと計算したwitness(private inputより)から
secretベクトルを計算でき、これを用いて証明を生成する。
• 𝐴(𝑥) ∗ 𝐵(𝑥) − 𝐶(𝑥) = 𝐻(𝑥) ∗ 𝑍(𝑥)なる多項式セット(𝐴, 𝐵, 𝐶, 𝑍)
が𝑄𝐴𝑃により与えられる
56
Proving Keyの作成
• ある点𝑡を多項式評価するsecret point 𝐺をgenerator pointとしてQAPの多項式より
以下の値をtrusted setupに加える
• このうち、𝑡,𝑘𝑎, 𝑘𝑏, 𝑘𝑐はtoxic wasteでtrusted setupが完了したら捨てなければならない
57
・𝐺 ∗ 𝐴1 𝑡 , 𝐺 ∗ 𝐴1 𝑡 ∗ 𝑘𝑎
・𝐺 ∗ 𝐴2 𝑡 , 𝐺 ∗ 𝐴2 𝑡 ∗ 𝑘𝑎
・ …
・𝐺 ∗ 𝐵1 𝑡 , 𝐺 ∗ 𝐵1 𝑡 ∗ 𝑘𝑏
・𝐺 ∗ 𝐵2 𝑡 , 𝐺 ∗ 𝐵2 𝑡 ∗ 𝑘𝑏
・ …
・𝐺 ∗ 𝐶1 𝑡 , 𝐺 ∗ 𝐶1 𝑡 ∗ 𝑘𝑐
・𝐺 ∗ 𝐶2 𝑡 , 𝐺 ∗ 𝐶2 𝑡 ∗ 𝑘𝑐
・ …
Proofsの作成
• 𝑃 ∗ 𝑘𝑎 = 𝑄となる𝑃, 𝑄が与えられたら、ある点𝑡で評価された𝐴𝑖の多項式の
線形和で分かる
• よって、証明者はt,𝑘𝑎, 𝑘𝑏, 𝑘𝑐を知ることなくtrusted setupで追加された点から以下
の点を計算し、proofsとして提供することが可能
• 証明者のみが知っているsolutionベクトルを𝑠 = (𝑠1, 𝑠2, 𝑠3)とすると
𝐴 𝑡 = 𝑠1𝐴1 𝑡 + 𝑠2𝐴2 𝑡 + 𝑠3𝐴3 𝑡
𝐵 𝑡 , 𝐶 𝑡 も同様
58
𝜋𝑎 = 𝐺 ∗ 𝐴 𝑡 , 𝜋′
𝑎 = 𝐺 ∗ 𝐴 𝑡 ∗ 𝑘𝑎
𝜋𝑏 = 𝐺 ∗ 𝐵 𝑡 , 𝜋′
𝑏 = 𝐺 ∗ 𝐵 𝑡 ∗ 𝑘𝑏
𝜋𝑐 = 𝐺 ∗ 𝐶 𝑡 , 𝜋′
𝑐 = 𝐺 ∗ 𝐶 𝑡 ∗ 𝑘𝑐
proofs
ここまでのながれ
59
・𝐺 ∗ 𝐴1 𝑡 , 𝐺 ∗ 𝐴1 𝑡 ∗ 𝑘𝑎
・𝐺 ∗ 𝐴1 𝑡 , 𝐺 ∗ 𝐴2 𝑡 ∗ 𝑘𝑎
・ …
・𝐺 ∗ 𝐵1 𝑡 , 𝐺 ∗ 𝐵1 𝑡 ∗ 𝑘𝑏
・𝐺 ∗ 𝐵2 𝑡 , 𝐺 ∗ 𝐵2 𝑡 ∗ 𝑘𝑏
・ …
・𝐺 ∗ 𝐶1 𝑡 , 𝐺 ∗ 𝐶1 𝑡 ∗ 𝑘𝑐
・𝐺 ∗ 𝐶2 𝑡 , 𝐺 ∗ 𝐶2 𝑡 ∗ 𝑘𝑐
・ …
Proving Key
𝑡,𝑘𝑎, 𝑘𝑏, 𝑘𝑐
toxic waste
QAPとtoxic wasteを使ってProving Keyとproofsを作成する作業
(EVerification KeyもTrusted Setupの段階で作られている)
QAP
𝐴 𝑥 ∗ 𝐵 𝑥 − 𝐶 𝑥 = 𝐻 𝑥 ∗ 𝑍(𝑥)
𝜋𝑎 = 𝐺 ∗ 𝐴 𝑡 , 𝜋′
𝑎 = 𝐺 ∗ 𝐴 𝑡 ∗ 𝑘𝑎
𝜋𝑏 = 𝐺 ∗ 𝐵 𝑡 , 𝜋′
𝑏 = 𝐺 ∗ 𝐵 𝑡 ∗ 𝑘𝑏
𝜋𝑐 = 𝐺 ∗ 𝐶 𝑡 , 𝜋′
𝑐 = 𝐺 ∗ 𝐶 𝑡 ∗ 𝑘𝑐
proofs
証明
60
同じ係数が使われていることの証明
• 3つの線形和全てが同じ係数であることを証明するために
𝑮 ∗ 𝑨𝒊 𝒕 + 𝑩𝒊 𝒕 + 𝑪𝒊 𝒕 ∗ 𝒌𝒅
をTrusted Setupに追加する
• 𝒌𝒅もtoxic wasteなので捨てる必要がある
• これにより、証明者はペアリングを使って𝐴 + 𝐵 + 𝐶がセットアップの値と同じか
検証することで同じ係数の線形和を作ることが可能になる
しかし、A, B, Cそれぞれ互いの線形和の係数が一致しているかは証明できていない
61
QAPが𝑍で割り切れることの証明
• また、𝑒(𝜋_𝑎, 𝜋_𝑏) / 𝑒(𝜋_𝑐, 𝐺) ? = 𝑒(𝜋_ℎ, 𝐺 ∗ 𝑍(𝑡))が成り立つか検証できるように
するために、𝐴 ∗ 𝐵 − 𝐶 = 𝐻 ∗ 𝑍であることも証明する必要がある。
• 𝜋ℎ = 𝐺 ∗ 𝐻(𝑡)
• 𝐻を楕円曲線上の点にすることは難しい。
• 𝐻はただの多項式であり、それぞれのQAPにおける係数をあらかじめ知っておく
ための時間はほとんどないので、Trusted Setupに以下のデータを加えておく
𝑮, 𝑮 ∗ 𝒕, 𝑮 ∗ 𝒕𝟐
, 𝑮 ∗ 𝒕𝟑
, 𝑮 ∗ 𝒕𝟒
• これにより、𝐻のそれぞれの項を楕円曲線上の点として扱うことができるので
それらを加算しているの𝐻も楕円曲線上の点となる
• 証明者が検証者に対して全てのデータを提供できるように、あるQAP において
𝐻(𝑡)がいつでも確実に計算できるようにしておく必要がある。
62
最終的なTrusted Setup
63
・𝐺 ∗ 𝐴1 𝑡 , 𝐺 ∗ 𝐴1 𝑡 ∗ 𝑘𝑎
・𝐺 ∗ 𝐴1 𝑡 , 𝐺 ∗ 𝐴2 𝑡 ∗ 𝑘𝑎
・ …
・𝐺 ∗ 𝐵1 𝑡 , 𝐺 ∗ 𝐵1 𝑡 ∗ 𝑘𝑏
・𝐺 ∗ 𝐵2 𝑡 , 𝐺 ∗ 𝐵2 𝑡 ∗ 𝑘𝑏
・ …
・𝐺 ∗ 𝐶1 𝑡 , 𝐺 ∗ 𝐶1 𝑡 ∗ 𝑘𝑐
・𝐺 ∗ 𝐶2 𝑡 , 𝐺 ∗ 𝐶2 𝑡 ∗ 𝑘𝑐
・ …
Proving Key
𝐺 ∗ 𝐴𝑖 𝑡 + 𝐵𝑖 𝑡 + 𝐶𝑖 𝑡 ∗ 𝑘𝑑
𝐺, 𝐺 ∗ 𝑡, 𝐺 ∗ 𝑡2
, 𝐺 ∗ 𝑡3
, 𝐺 ∗ 𝑡4
追加データ
最終的なproofs
• proofs(pk)は8つの楕円曲線上の点を含む(𝜋𝑘だけ𝐺2の要素)
• これらのうち𝜋𝑏以外は𝐹𝑝カーブ上の点であり、それぞれ32byte
• 𝜋𝑏は 𝐹𝑏2カーブ上にあり64byteなので証明サイズは288byte
64
𝜋𝑎 = 𝐺 ∗ 𝐴 𝑡
𝜋′𝑎 = 𝐺 ∗ 𝐴 𝑡 ∗ 𝑘𝑎
𝜋𝑏 = 𝐺 ∗ 𝐵 𝑡
𝜋′𝑏 = 𝐺 ∗ 𝐵 𝑡 ∗ 𝑘𝑏
𝜋𝑐 = 𝐺 ∗ 𝐶 𝑡
𝜋′𝑐 = 𝐺 ∗ 𝐶 𝑡 ∗ 𝑘𝑐
𝜋𝑑(= 𝐺 ∗ 𝐴 𝑡 + 𝐵 𝑡 + 𝐶(𝑡)) ∗ 𝑘𝑑
𝜋ℎ(= 𝐺 ∗ 𝐻(𝑡))
証明者のassignmentに対する追加保護
• 正しいassignmentが𝑠1 ⋯ 𝑠𝑚だとして(例えば、つまり𝐴 = 𝑠1𝐴1 + ⋯ + 𝑠𝑚𝐴𝑚)
対応する𝐴, 𝐵, 𝐶, 𝐻が存在するとする。
• ここで他の人が𝑠′1 ⋯ 𝑠′𝑚をassignmentとして対応する𝐴′, 𝐵′, 𝐶′, 𝐻′を計算できたと
すると𝑠′1 ⋯ 𝑠′𝑚は証明者のassignmentではないことを推定できてしまう
• そこで証明者は自身のassignmentを秘匿化するためにランダム値をそれぞれの
多項式に加える
𝐴𝑧 = 𝐴 + 𝛿1 ∗ 𝑍
𝐵𝑧 = 𝐵 + 𝛿2 ∗ 𝑍
𝐶𝑧 = 𝐶 + 𝛿3 ∗ 𝑍
• ここで、𝐴 ∗ 𝐵 − 𝐶 = 𝐻 ∗ 𝑍を想定指定いるのでそれぞれのランダム値に𝑍を掛け合
わせるとで𝐻を再定義し、以下の式で表すことができる
𝐴𝑧 ∗ 𝐵𝑧 − 𝐶𝑧 = 𝐻𝑥 ∗ 𝑇
65
検証
66
やること
前のステップで作成した証明をもとに
1. A, B, Cそれぞれに対して線形和が一致しているか検証
2. 線形和が同じ係数を持っているか検証
3. 𝑨 ∗ 𝑩 − 𝑪 = 𝑯 ∗ 𝒁の検証
これらについて、ペアリングを用いて検証し、全てokの場合のみ承認する
67
ココの部分
Verification Keyについて
• Trusted Setupの段階でVerification Keyも作成される
• 証明者が作成したproofsに対してVerification Keyを用いてペアリン
グをチェックする
68
𝑣𝑘𝑎 = 𝐺 ∗ 𝑘𝑎
𝑣𝑘𝑏 = 𝐺 ∗ 𝑘𝑏
𝑣𝑘𝑐 = 𝐺 ∗ 𝑘𝑐
𝑣𝑘𝑧 = 𝐺 ∗ 𝑍(𝑡)
𝑣𝑘𝑒 = 𝐺 ∗ 𝑘𝑒
𝑣𝑘𝑑𝑒 = 𝐺 ∗ 𝑘𝑑 ∗ 𝑘𝑒
特定のパラメータに対する”custom vertification key”
の生成を行う関数の処理
• ほとんどの場合、ゼロ知識証明を行いたいケースでは関数の挙動を抽象的にゼロ
知識証明するのではなく、特定の関数に対して指定したパラメーターを与えた時
のoutputに対してゼロ知識証明したい。
𝑑𝑒𝑐𝑟𝑦𝑝𝑡 𝑏𝑎𝑙𝑎𝑛𝑐𝑒𝑜𝑙𝑑, 𝑘 − 𝑑𝑒𝑐𝑟𝑦𝑝𝑡 𝑡𝑥𝑉𝑎𝑙𝑢𝑒, 𝑘 = 𝑑𝑒𝑐𝑟𝑦𝑝𝑡(𝑏𝑎𝑙𝑎𝑛𝑐𝑒𝑛𝑒𝑤, 𝑘)
• 例えば、𝑏𝑎𝑙𝑎𝑛𝑐𝑒_𝑜𝑙𝑑, 𝑡𝑥𝑉𝑎𝑙𝑢𝑒, 𝑏𝑎𝑙𝑎𝑛𝑐𝑒_𝑛𝑒𝑤の3つの変数は公開されており、これ
らのinputに制限した検証鍵を生成する必要がある。
69
A, B, Cそれぞれに対して線形和が一致しているか検証
左のproofsについて、右のペアリングが成立すればok
70
𝜋𝑎 = 𝐺 ∗ 𝐴 𝑡
𝜋′𝑎 = 𝐺 ∗ 𝐴 𝑡 ∗ 𝑘𝑎
𝜋𝑏 = 𝐺 ∗ 𝐵 𝑡
𝜋′𝑏 = 𝐺 ∗ 𝐵 𝑡 ∗ 𝑘𝑏
𝜋𝑐 = 𝐺 ∗ 𝐶 𝑡
𝜋′𝑐 = 𝐺 ∗ 𝐶 𝑡 ∗ 𝑘𝑐
𝑒 𝜋𝑎, 𝐺 ∗ 𝑘𝑎 = 𝑒(𝜋′
𝑎, 𝐺)
𝑒 𝜋𝑏, 𝐺 ∗ 𝑘𝑏 = 𝑒(𝜋′
𝑏, 𝐺)
𝑒 𝜋𝑐, 𝐺 ∗ 𝑘𝑐 = 𝑒(𝜋′
𝑐, 𝐺)
どういうことだっけ?
71
• 例えば、署名鍵により 𝑃𝑖, 𝑄𝑖 = (𝐴𝑖 𝑡 𝐺, 𝑘𝑎 ∗ 𝑡 𝐺)として𝑄𝑖 = 𝑘𝑎 ∗ 𝑃𝑖が与えられている
• 𝜋′
𝑎=𝑘𝑎 ∗ 𝜋𝑎となるようなproofを与えるためにはKEAより
𝜋𝑎 = 𝑎1 ∗ 𝐴1 𝑡 𝐺 + 𝑎2 ∗ 𝐴2 𝑡 𝐺 + ⋯
• となるような係数𝑎𝑖を知っている必要がある。(𝜋′
𝑎についても同様)
• この𝑎𝑖がQAPにwittnessをinputすることにより得られる多項式ベクトルであり、
𝜋𝑎を𝑃𝑖の線形和で表せていることになる。
• つまり、 𝑎𝑖を知らないと証明𝜋𝑎を証明鍵𝐴𝑖 𝑡 𝐺で表すことができず、
ペアリングが機能しない
線形和が同じ係数を持っているか検証
左のproofについて右のペアリングが成立すればok
72
𝜋𝑑 = 𝐺 ∗ 𝐴 𝑡 + 𝐵 𝑡 + 𝐶 𝑡 ∗ 𝑘𝑑
𝑒 𝜋𝑑, 𝑣𝑘𝑒 = 𝑒(𝜋𝑎 + 𝜋𝑏 + 𝜋𝑐, 𝑣𝑘𝑑𝑒)
(𝐴𝑖+𝐵𝑖 + 𝐶𝑖)𝐺に対応するasignmentの線形和が𝜋𝑎 + 𝜋𝑏 + 𝜋𝑐からの(𝐴 + 𝐵 + 𝐶)𝐺と一致
すれば、確かにそれぞれのA,B,Cに対してassignmentがかけられていることが分かる
𝐴 ∗ 𝐵 − 𝐶 = 𝐻 ∗ 𝑍の検証
左のproofについて右のペアリングが成立すればok
73
𝜋ℎ(= 𝐺 ∗ 𝐻(𝑡))
𝑒 𝜋𝑎, 𝜋𝑏 = 𝑒 𝜋ℎ, 𝑍 𝑡 𝐺 𝑒(𝜋𝑒, 𝐺)
zk-SNARKs早見表
74
まとめ
75
zk-SNARKsのメリット
メリット
• Zero-Knowledge:ゼロ知識証明を用いたスキームであること
• Succint:実際に実行する計算量よりメッセージのサイズがとても小さいこと
• Non-interactive:証明者と承認者がリアルタイムで非対話な証明を行えること
• Argument of knowledge :計算による知識の証明のこと
承認者が証明者に問いを出すことなく承認作業を短時間かつ少ない計算量で行う
デメリット
• Trusted Setupが必要
• 計算コストがかかる
• 証明時間:150~200kのconstraintsでlaptopで20~60sくらい
76
zk-STARKsの紹介
メリット
• Trusted Setupが必要ない
• 量子コンピューター耐性
• 証明の計算複雑性が低い(オーダー的にはsnarksの1/10くらい)
デメリット
• 証明サイズが大きい(~250kB: aurora)
• 検証複雑性はsnarksのsetup後よりは高い。
77
https://scrapbox.io/layerx/zk-SNARKsとzk-STARKsの比較 より
Circuit-SAT→QAP
78
𝑃 𝑠 = 𝐻(𝑠)𝑇(𝑠) − 𝑉(𝑠)
全体のながれ
79
ライブラリ
• libsnark : C++
• ZoKrates : rust
• zcash: rust
• snarkjs:JavaScript&WASM
what is WASM (WebAssembly) ?
• C・Rustなど様々なプログラミング言語からコンパイルされたバイナリをウェブブ
ラウザを含む様々な環境内仮想マシンで実行できるようになる
• 様々なブロックチェーンのアーキテクチャに採用されている
80
参考文献
• https://speakerdeck.com/layerx/anonify?slide=13 LayerX Reseach
• Japanese explanation of zksnarks. Cryptoeconomics Lab
• Quadratic Arithmetic Programs: from Zero to Hero Vitalik Buterin 2018
• Parameter Generation Zcash 2016
• ブロックチェーン系プロジェクトで着目される暗号技術 サイボウズ・ラボ 2018
81

Contenu connexe

Tendances

SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みMasahiro Sakai
 
BLS Based Discreet Log Contracts
BLS Based Discreet Log ContractsBLS Based Discreet Log Contracts
BLS Based Discreet Log ContractsIchiro Kuwahara
 
BLS署名の実装とその応用
BLS署名の実装とその応用BLS署名の実装とその応用
BLS署名の実装とその応用MITSUNARI Shigeo
 
楕円曲線入門 トーラスと楕円曲線のつながり
楕円曲線入門トーラスと楕円曲線のつながり楕円曲線入門トーラスと楕円曲線のつながり
楕円曲線入門 トーラスと楕円曲線のつながりMITSUNARI Shigeo
 
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)MITSUNARI Shigeo
 
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjpRSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjpsonickun
 
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化MITSUNARI Shigeo
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学MITSUNARI Shigeo
 
差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)Kentaro Minami
 
ウェーブレット木の世界
ウェーブレット木の世界ウェーブレット木の世界
ウェーブレット木の世界Preferred Networks
 
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解くshindannin
 
暗号化したまま計算できる暗号技術とOSS開発による広がり
暗号化したまま計算できる暗号技術とOSS開発による広がり暗号化したまま計算できる暗号技術とOSS開発による広がり
暗号化したまま計算できる暗号技術とOSS開発による広がりMITSUNARI Shigeo
 
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造Takuya Akiba
 

Tendances (20)

暗号技術入門
暗号技術入門暗号技術入門
暗号技術入門
 
暗認本読書会5
暗認本読書会5暗認本読書会5
暗認本読書会5
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
 
BLS Based Discreet Log Contracts
BLS Based Discreet Log ContractsBLS Based Discreet Log Contracts
BLS Based Discreet Log Contracts
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
 
BLS署名の実装とその応用
BLS署名の実装とその応用BLS署名の実装とその応用
BLS署名の実装とその応用
 
楕円曲線入門 トーラスと楕円曲線のつながり
楕円曲線入門トーラスと楕円曲線のつながり楕円曲線入門トーラスと楕円曲線のつながり
楕円曲線入門 トーラスと楕円曲線のつながり
 
暗認本読書会7
暗認本読書会7暗認本読書会7
暗認本読書会7
 
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
 
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjpRSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
 
暗認本読書会12
暗認本読書会12暗認本読書会12
暗認本読書会12
 
暗認本読書会4
暗認本読書会4暗認本読書会4
暗認本読書会4
 
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)
 
ウェーブレット木の世界
ウェーブレット木の世界ウェーブレット木の世界
ウェーブレット木の世界
 
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
 
最大流 (max flow)
最大流 (max flow)最大流 (max flow)
最大流 (max flow)
 
暗号化したまま計算できる暗号技術とOSS開発による広がり
暗号化したまま計算できる暗号技術とOSS開発による広がり暗号化したまま計算できる暗号技術とOSS開発による広がり
暗号化したまま計算できる暗号技術とOSS開発による広がり
 
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
 

Similaire à zk-SNARKsの仕組みについて

ZK Study Club: Supernova (Srinath Setty - MS Research)
ZK Study Club: Supernova (Srinath Setty - MS Research)ZK Study Club: Supernova (Srinath Setty - MS Research)
ZK Study Club: Supernova (Srinath Setty - MS Research)Alex Pruden
 
Quarks zk study-club
Quarks zk study-clubQuarks zk study-club
Quarks zk study-clubAlex Pruden
 
A compact zero knowledge proof to restrict message space in homomorphic encry...
A compact zero knowledge proof to restrict message space in homomorphic encry...A compact zero knowledge proof to restrict message space in homomorphic encry...
A compact zero knowledge proof to restrict message space in homomorphic encry...MITSUNARI Shigeo
 
zkStudyClub: HyperPlonk (Binyi Chen, Benedikt Bünz)
zkStudyClub: HyperPlonk (Binyi Chen, Benedikt Bünz)zkStudyClub: HyperPlonk (Binyi Chen, Benedikt Bünz)
zkStudyClub: HyperPlonk (Binyi Chen, Benedikt Bünz)Alex Pruden
 
zkStudyClub - zkSaaS (Sruthi Sekar, UCB)
zkStudyClub - zkSaaS (Sruthi Sekar, UCB)zkStudyClub - zkSaaS (Sruthi Sekar, UCB)
zkStudyClub - zkSaaS (Sruthi Sekar, UCB)Alex Pruden
 
Elliptic Curve Cryptography
Elliptic Curve CryptographyElliptic Curve Cryptography
Elliptic Curve CryptographyJorgeVillamarin5
 
Randomized Algorithm- Advanced Algorithm
Randomized Algorithm- Advanced AlgorithmRandomized Algorithm- Advanced Algorithm
Randomized Algorithm- Advanced AlgorithmMahbubur Rahman
 
Efficient anomaly detection via matrix sketching
Efficient anomaly detection via matrix sketchingEfficient anomaly detection via matrix sketching
Efficient anomaly detection via matrix sketchingHsing-chuan Hsieh
 
Approximating Value of pi(Π) using Monte Carlo Iterative Method
Approximating Value of pi(Π) using Monte Carlo Iterative MethodApproximating Value of pi(Π) using Monte Carlo Iterative Method
Approximating Value of pi(Π) using Monte Carlo Iterative MethodNischal Lal Shrestha
 
zkStudy Club: Subquadratic SNARGs in the Random Oracle Model
zkStudy Club: Subquadratic SNARGs in the Random Oracle ModelzkStudy Club: Subquadratic SNARGs in the Random Oracle Model
zkStudy Club: Subquadratic SNARGs in the Random Oracle ModelAlex Pruden
 
Brief introduction to Algorithm analysis
Brief introduction to Algorithm analysis Brief introduction to Algorithm analysis
Brief introduction to Algorithm analysis Anantha Ramu
 
Intro to Quant Trading Strategies (Lecture 2 of 10)
Intro to Quant Trading Strategies (Lecture 2 of 10)Intro to Quant Trading Strategies (Lecture 2 of 10)
Intro to Quant Trading Strategies (Lecture 2 of 10)Adrian Aley
 
Algorithm analysis.pptx
Algorithm analysis.pptxAlgorithm analysis.pptx
Algorithm analysis.pptxDrBashirMSaad
 
LeetCode Solutions In Java .pdf
LeetCode Solutions In Java .pdfLeetCode Solutions In Java .pdf
LeetCode Solutions In Java .pdfzupsezekno
 
Introduction to PyTorch
Introduction to PyTorchIntroduction to PyTorch
Introduction to PyTorchJun Young Park
 
pptx - Psuedo Random Generator for Halfspaces
pptx - Psuedo Random Generator for Halfspacespptx - Psuedo Random Generator for Halfspaces
pptx - Psuedo Random Generator for Halfspacesbutest
 

Similaire à zk-SNARKsの仕組みについて (20)

ZK Study Club: Supernova (Srinath Setty - MS Research)
ZK Study Club: Supernova (Srinath Setty - MS Research)ZK Study Club: Supernova (Srinath Setty - MS Research)
ZK Study Club: Supernova (Srinath Setty - MS Research)
 
Quarks zk study-club
Quarks zk study-clubQuarks zk study-club
Quarks zk study-club
 
A compact zero knowledge proof to restrict message space in homomorphic encry...
A compact zero knowledge proof to restrict message space in homomorphic encry...A compact zero knowledge proof to restrict message space in homomorphic encry...
A compact zero knowledge proof to restrict message space in homomorphic encry...
 
zkStudyClub: HyperPlonk (Binyi Chen, Benedikt Bünz)
zkStudyClub: HyperPlonk (Binyi Chen, Benedikt Bünz)zkStudyClub: HyperPlonk (Binyi Chen, Benedikt Bünz)
zkStudyClub: HyperPlonk (Binyi Chen, Benedikt Bünz)
 
zkStudyClub - zkSaaS (Sruthi Sekar, UCB)
zkStudyClub - zkSaaS (Sruthi Sekar, UCB)zkStudyClub - zkSaaS (Sruthi Sekar, UCB)
zkStudyClub - zkSaaS (Sruthi Sekar, UCB)
 
Elliptic Curve Cryptography
Elliptic Curve CryptographyElliptic Curve Cryptography
Elliptic Curve Cryptography
 
Randomized Algorithm- Advanced Algorithm
Randomized Algorithm- Advanced AlgorithmRandomized Algorithm- Advanced Algorithm
Randomized Algorithm- Advanced Algorithm
 
Efficient anomaly detection via matrix sketching
Efficient anomaly detection via matrix sketchingEfficient anomaly detection via matrix sketching
Efficient anomaly detection via matrix sketching
 
Approximating Value of pi(Π) using Monte Carlo Iterative Method
Approximating Value of pi(Π) using Monte Carlo Iterative MethodApproximating Value of pi(Π) using Monte Carlo Iterative Method
Approximating Value of pi(Π) using Monte Carlo Iterative Method
 
lesson 2.pptx
lesson 2.pptxlesson 2.pptx
lesson 2.pptx
 
Seminar9
Seminar9Seminar9
Seminar9
 
zkStudy Club: Subquadratic SNARGs in the Random Oracle Model
zkStudy Club: Subquadratic SNARGs in the Random Oracle ModelzkStudy Club: Subquadratic SNARGs in the Random Oracle Model
zkStudy Club: Subquadratic SNARGs in the Random Oracle Model
 
Isaac stream cipher
Isaac stream cipherIsaac stream cipher
Isaac stream cipher
 
Brief introduction to Algorithm analysis
Brief introduction to Algorithm analysis Brief introduction to Algorithm analysis
Brief introduction to Algorithm analysis
 
Intro to Quant Trading Strategies (Lecture 2 of 10)
Intro to Quant Trading Strategies (Lecture 2 of 10)Intro to Quant Trading Strategies (Lecture 2 of 10)
Intro to Quant Trading Strategies (Lecture 2 of 10)
 
Shors'algorithm simplified.pptx
Shors'algorithm simplified.pptxShors'algorithm simplified.pptx
Shors'algorithm simplified.pptx
 
Algorithm analysis.pptx
Algorithm analysis.pptxAlgorithm analysis.pptx
Algorithm analysis.pptx
 
LeetCode Solutions In Java .pdf
LeetCode Solutions In Java .pdfLeetCode Solutions In Java .pdf
LeetCode Solutions In Java .pdf
 
Introduction to PyTorch
Introduction to PyTorchIntroduction to PyTorch
Introduction to PyTorch
 
pptx - Psuedo Random Generator for Halfspaces
pptx - Psuedo Random Generator for Halfspacespptx - Psuedo Random Generator for Halfspaces
pptx - Psuedo Random Generator for Halfspaces
 

Dernier

Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)dollysharma2066
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .Satyam Kumar
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptSAURABHKUMAR892774
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfme23b1001
 
8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitterShivangiSharma879191
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfAsst.prof M.Gokilavani
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHC Sai Kiran
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfROCENODodongVILLACER
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catcherssdickerson1
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
An introduction to Semiconductor and its types.pptx
An introduction to Semiconductor and its types.pptxAn introduction to Semiconductor and its types.pptx
An introduction to Semiconductor and its types.pptxPurva Nikam
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 

Dernier (20)

Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
 
POWER SYSTEMS-1 Complete notes examples
POWER SYSTEMS-1 Complete notes  examplesPOWER SYSTEMS-1 Complete notes  examples
POWER SYSTEMS-1 Complete notes examples
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdf
 
8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECH
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdf
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
An introduction to Semiconductor and its types.pptx
An introduction to Semiconductor and its types.pptxAn introduction to Semiconductor and its types.pptx
An introduction to Semiconductor and its types.pptx
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 

zk-SNARKsの仕組みについて

Notes de l'éditeur

  1. この時の関数はEthereumではスマートコントラクトだったり、
  2. ブロックチェーン領域における秘匿化の分類
  3. 有限体とは四則演算に対して閉じている有限の集合のことを言い、群は加法と乗法が閉じているより抽象的な集合のことを言います。