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
Hyper Tree
azuchi
0
18
FORS
azuchi
0
30
クラスターmempool
azuchi
0
42
W-OTS+
azuchi
0
46
Shorのアルゴリズム
azuchi
0
69
DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures
azuchi
0
54
Fiat-Shamir変換と注意点
azuchi
0
250
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
68
BIP-374 離散対数の等価性証明
azuchi
0
82
Other Decks in Technology
See All in Technology
こんなアーキテクチャ図は嫌だ BEYOND THE TIME: 半年後の自分へ贈る15のメッセージ / 15 of Anti-pattern in AWS Architecture Diagrams
naospon
3
310
GoCon2026 - Open Source, Open World
sanposhiho
3
3.2k
Sigmaで作る業務アプリ
kazushiro_honma
0
110
目の前の楽しいが人生を変える - コミュニティの螺旋の歩き方と楽しむコツ / change your life
soudai
PRO
4
410
DEFCON_CHV_CTF_Write-up.pdf
bata_24
0
140
AIに丸投げしないトイル削減 / Eliminating Toil Without Leaving It All to AI
kohbis
4
1.1k
2026_devsumi_ozono.pdf
o3
2
360
Claude in Chrome 入門 / Introduction to Claude in Chrome
cielo1985
0
180
omasushiというライブラリを作った
polidog
PRO
0
200
Code4Lib JAPANカンファレンス2026 開会挨拶 / Code4Lib JAPAN Conference 2026: Opening Remarks
ykiyota
0
330
Amazon S3 Tablesに全部任せてみた結果——コンパクション/スナップショット管理は本当に手放せるか
shigeruoda
1
470
10分で知る最近のOmarchy
komagata
0
250
Featured
See All Featured
The Curse of the Amulet
leimatthew05
2
14k
Designing Powerful Visuals for Engaging Learning
tmiket
1
540
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Embracing the Ebb and Flow
colly
88
5.2k
The Spectacular Lies of Maps
axbom
PRO
1
990
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
The untapped power of vector embeddings
frankvandijk
2
1.9k
It's Worth the Effort
3n
188
29k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
Typedesign – Prime Four
hannesfritz
42
3.2k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
440
Crafting Experiences
bethany
1
310
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