Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
KZG Commitment
Search
shigeyuki azuchi
April 17, 2023
Technology
310
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
KZG Commitment
GBECの解説動画の資料です。
https://goblockchain.network/2023/04/kzg-commitment/
shigeyuki azuchi
April 17, 2023
More Decks by shigeyuki azuchi
See All by shigeyuki azuchi
SLH-DSA (SPHINCS+)
azuchi
0
12
Hyper Tree
azuchi
0
18
FORS
azuchi
0
31
クラスターmempool
azuchi
0
43
W-OTS+
azuchi
0
50
Shorのアルゴリズム
azuchi
0
71
DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures
azuchi
0
55
Fiat-Shamir変換と注意点
azuchi
0
260
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
69
Other Decks in Technology
See All in Technology
Goodbye ShellScript, Hello File-based App
shunsock
0
430
JSONataとAWS Step Functionsで目指すRuntimelessな世界
mu7889yoon
0
310
AIエージェントの権限管理 3: Agentic RAG の Fine grained access control 編
ren8k
0
160
安心して変更できるWebフロントエンドの作り方
pirosikick
5
2.8k
登壇の自信を奪う3匹のオバケ / 3 Ghosts That Rob You of Your Confidence in Public Speaking
pauli
9
1k
【技術的負債conf】事業成長に伴う技術的負債の説明責任とAIによるモニタリング、認知的負債について
i35_267
3
1.8k
Reactの設計論
uhyo
24
14k
顧客に向き合う開発組織へ。リアーキテクチャとフィーチャーチーム化で挑む組織改革
safie
0
2.1k
Railsのように考える: See through the Master
snoozer05
PRO
4
1.2k
C#未経験の僕がAIに読めるコードを書かせるまで
maguroalternative
0
120
AIエージェントの一手は 誰も見ていない - Falco拡張OSS「Prempti」とeBPFで サーバーレス実行基盤を二層防御する
keitah
0
340
その Lambda、8分で 管理者権限まで奪われます
k1nakayama
7
3.3k
Featured
See All Featured
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
260
Being A Developer After 40
akosma
91
590k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
240
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
330
Prompt Engineering for Job Search
mfonobong
0
450
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
550
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
460
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
500
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
We Have a Design System, Now What?
morganepeng
55
8.3k
Speed Design
sergeychernyshev
33
2.1k
Transcript
KZG Commitmentの仕組み
1 KZG Commitment https://www.iacr.org/archive/asiacrypt2010/6477178/6477178.pdf 多項式を利用したコミットメント方式 • コミットメントは固定サイズ →楕円曲線上の1つの点
• 要素の包含証明も固定サイズ →楕円曲線上の1つの点 • 複数の包含証明も集約して固定サイズに →楕円曲線上の1つの点 構成要素: • ペアリングに適した楕円曲線(BLS12-381など) • Trusted Setup EthreumでもPROTO-DANKSHARDINGに向けて セレモニーを実施 https://ceremony.ethereum.org/
2 多項式を利用したコミットメント 要素のリストにコミットする多項式の作成: 各要素の値が多項式の評価結果になるように多項式を構築する。 (例)35, 92, 111という値のリストにコミットする場合
1. (1, 35)、(2, 92)、(3, 111)が(x, p(x))となるように多項式補間で多項式を計算する。 p(x) = -19x2 + 114x - 60 各要素にコミットした多項式ができる 2. 多項式を楕円曲線上の点としてエンコードする。 P = -19 S 2 + 114 S 1 - 60G ※ S 1 とS 2 は誰も値を知らない数値 sを利用し手計算された楕円曲線上の点 S 1 = sG, S 2 = s2G Pは上記p(x)にコミットした楕円曲線上の点になる
3 Trusted Setup KZG CommitmentにおけるTrusted Setupは、コミットメントをエンコードする際に必要な 公開パラメーター(S 1 ,
S 2 , …)を生成する処理 • n:コミットする要素の数 • 多項式の次数= n - 1 = 必要な公開パラメーターの数 • ペアリング適した楕円曲線 e: G 1 ✕G 2 → G T とした場合 ◦ G = G 1 のベースポイント ◦ H = G 2 のベースポイント として、同じs値を使用して、以下を計算する sG, s2G, s3G, …, sn-1G sH, s2H, s3H, …, sn-1H 計算結果を公開パラメーターとする 多項式の各次数項の点を 導出するためのTrusted Setup
4 コミットした値の証明 マークルツリーを使ったコミットメント方式の場合、
log 2 (要素の数)分のデータがプルーフとして必要になる A B C D P1 P2 commitment Bがコミットされていることを証明するには、 ツリーの兄弟ブランチの値( AとP2)を提供し、 それらの値を使ってルートハッシュを計算し、 コミットメントと一致するか検証する。
5 多項式の性質を利用した包含証明 【剰余の定理】 • 多項式p(x)を(x - a)で除算した場合: p(x) = q(x)(x
- a) + r を満たすq(x)とrが一意に存在し(r = p(a))、 q(x) = (p(x) - r) / (x - a) が成立する。 この特性を利用して 1. 証明したい値について( a, p(a))、商多項式q(x)を計算する。 2. 商多項式q(x)を楕円曲線にエンコードした点 Qを値(a, p(a))のプルーフとして提供する。 3. PとQと値について上記の関係が成立するか検証する。 ※ この関係の証明にペアリング暗号を使用する
6 多項式の性質を利用した包含証明 (例)(1, 35)、(2, 92)、(3, 111)のコミットメント p(x) = -19x2
+ 114x - 60 P = -19 S 2 + 114 S 1 - 60G について、(2, 92)が含まれていることを証明する場合、 q(x) = (p(x) - 92) / (x - 2) を計算し、楕円曲線の点 Qとしてエンコードする 剰余の定理より、Q・ (S 1 - 2G) == P - 92G が成立すれば、 Pに(2, 92)がコミットされていることの証明になる どうやって検証する?
7 ペアリング暗号を利用した検証 • ペアリング関数:加法巡回群G 1 , G 2 と乗法巡回群 G
T について、 e: G 1 ✕G 2 → G T という関係が成立する一方向写像。 つまりG 1 , G 2 の2つの群要素を入力としてG T の群要素を出力することができる。 • 双線形性:任意の整数a, bについて以下が成立 e(aG, bH) = e(G, H)ab ※ この特性を利用したデジタル署名方式がBLS署名 参考:https://goblockchain.network/2022/09/bls/
8 ペアリング暗号を利用した検証 e(aG, bH) = e(G, H)ab (例)(1, 35)、(2,
92)、(3, 111)のコミットメントの p(x) = -19x2 + 114x - 60 P = -19 S 2 + 114 S 1 - 60G (2, 92)のプルーフ、q(x) = (p(x) - 92) / (x - 2) Q について、剰余の定理の証明 Q・ (S 1 - 2G) == P - 92G e(Q, sH - 2H) = e(P - 92G, H) e(q(s)G, (s - 2)H) = e((p(s) - 92)G, H) e(G, H)(q(s)・(s - 2)) = e(G, H)(p(s) -92) q(s)・(s - 2) = p(s) -92 ペアリング関数を利用して、 剰余の定理の関係を検証
9 まとめ • KZG Commitmentは ◦ コミットメントが固定サイズ ◦ 包含証明のプルーフも固定サイズ
◦ Commitmentの作成のため、Trusted Setupで作られる公開パラメータを必要とする ◦ ペアリング関数を利用して、多項式の剰余の定理を検証 ◦ 複数の要素の包含証明も単一のプルーフで証明可能 https://techmedia-think.hatenablog.com/entry/2021/12/21/221009