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
Schnorrベースの新しいマルチシグ方式MuSig
Search
shigeyuki azuchi
April 15, 2019
Technology
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Schnorrベースの新しいマルチシグ方式MuSig
GBEC動画解説コンテンツのスライドです。
https://goblockchain.network/2019/04/musig/
shigeyuki azuchi
April 15, 2019
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
AIエージェントを最高のパートナーに育てる方法|評価と判断軸を育てる5つのステップ
koichiaoki
1
160
.NET WebAssemblyで実現するクライアントサイドAI推論:NuGetからViteまで、2つのエコシステムを繋ぐビルド戦略
yamachu
0
270
現場で役立つ技術負債の効果的な返済方法
masuda220
PRO
9
4.7k
山手線を徒歩で一周してわかった、 位置情報アプリは「足」が最強のデバッガー
hinakko
0
170
Claude in Chrome 入門 / Introduction to Claude in Chrome
cielo1985
0
870
作って終わりじゃないサーバーレス 〜9年運用する大規模EC物流API基盤の設計・運用のリアル〜
zozotech
PRO
0
350
目の前の楽しいが人生を変える - コミュニティの螺旋の歩き方と楽しむコツ / change your life
soudai
PRO
5
650
品質と信頼性を地続きにする
grimoh
2
840
Cloudflare Workers 向けアプリを C# で構築する ~WASM Native AOT への道~
nenonaninu
1
600
The Knowledge Spine: A Machine-Executable Ontology for Governed Marketing Activation
vananth22
0
120
ソフトウェアDNAとクラウドエージェントのススメ
cloudace
0
120
幾何アルゴリズムで なめらかなピン操作を / iOSDC Japan 2026 / smoothpin
kazumanagano
0
360
Featured
See All Featured
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
440
GitHub's CSS Performance
jonrohan
1033
470k
Speed Design
sergeychernyshev
33
2.1k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8k
Evolving SEO for Evolving Search Engines
ryanjones
0
300
Paper Plane (Part 1)
katiecoart
PRO
2
11k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Thoughts on Productivity
jonyablonski
76
5.4k
Transcript
Schnorrベースの 新しいマルチシグ方式 MuSig
1 Schnorr署名 公開鍵や署名の集約特性があるデジタル署名スキーム • 楕円曲線の生成点:G • 秘密鍵:x、公開鍵:P = xG •
暗号学的ハッシュ関数: H • メッセージダイジェスト: m 【署名の生成】 • ランダムなnonce kを選択する。 • R = kGを計算する(Rは楕円曲線上の点)。 • s = k + H(P, R, m) x を計算する。 • (R, s)が署名データ 【署名の検証】 • sG = R + H(P, R, m)P が成立するか検証する。 秘密鍵 x の情報を知らなければ、 この式を満たす s は導出できない。
2 Schnorrベースのマルチシグ • 鍵ペア P1 = x1G • 鍵ペア P2
= x2G マルチシグの公開鍵 P = P1 + P2 にコインをロック ※Pに対応する秘密鍵は誰も知らない Pにロックされたコインをアンロックする ② s1 = k1 + H(P, R, m)x1 を計算 ② s2 = k2 + H(P, R, m)x2 を計算 ③ s = s1 + s2 = k1 + k2 + H(P, R, m)(x1 + x2)を計算 署名データは(R, s) ※ 署名は各ユーザーが計算した各 s値の加算することで計算できる ④ sG = R + H(P, R, m)P を検証 ① nonce R1 = k1Gを計算し送付 ① nonce R2 = k2Gを計算し送付 署名に使用するnonceはR = R1 + R2
3 Rogue-Key攻撃の問題 • 鍵ペア P1 = x1G • 鍵ペア P2
= x2G ① 公開鍵 P1を相手に送信 ② P3 = P2 - P1 を計算し、 P3を自分の公開鍵として送信する。 ③ マルチシグの公開鍵は P1 + P3 = P1 + P2 - P1 = P2 となり、悪意あるユーザーの鍵のみでマルチシグにロックされた資金を 回収するSchnorr署名を作ることができてしまう。 回避するにはP3に対応する秘密鍵を持っていること の証明を求める必要がある。
4 MuSig Rogue-Key攻撃に対して耐性がありつつ、鍵の集約が可能な Schnorrベースのマルチシグスキーム
5 MuSig • 鍵ペア P1 = x1G • nonce R1
= k1G • 鍵ペア P2 = x2G • nonce R2 = k2G ④ s1 = k1 + H(P, R, m) H(L, P1)x1 を計算 ④ s2 = k2 + H(P, R, m) H(L, P2)x2 を計算 ⑤ s = s1 + s2 = k1 + k2 + H(P, R, m)(H(L, P1)x1 + H(L, P2)x2)を計算 署名データは(R, s) ⑥ sG = R + H(P, R, m)P を検証 ※ P = H(L, P1) P1 + H(L, P2) P2の秘密鍵は H(L, P1)x1 + H(L, P2)x2 ① お互いに公開鍵を交換し、L = H(P1, P2)を計算する。 ② P = H(L, P1) P1 + H(L, P2) P2 をマルチシグの公開鍵とする。 ③ 署名に使用するnonceはR = R1 + R2
6 MuSigのポイント • 通常のSchnorrのマルチシグ P = P1 + P2 単純な公開鍵と公開鍵の加算なのでRogue-Key攻撃の懸念がある。
• MuSigのマルチシグ P = H(L, P1)P1 + H(L, P2)P2 単純な加算ではなく、参加者の公開鍵のハッシュを乗算した公開鍵を 加算することで、署名の生成にH(L, P1)x1 + H(L, P2)x2の知識が 必要となり、Rogue-Key攻撃への耐性となる。 ※ P2の部分がP3 = P2 - P1になった場合、 P = H(L, P1) P1 + H(L, P3) P3となり、有効な署名を作るにはP3の 秘密鍵(x2 - x1)の情報が必要になり、誰もその情報を知らない。
7 まとめ • 通常のSchnorrベースのマルチシグの場合、 Key-Rogue攻撃の危険性がある。 • MuSigはKey-Rogue攻撃に耐性のあるSchnorrベースの マルチシグスキーム • Schnorrベースの2ラウンド型マルチシグスキームの
安全性の証明はされていない? https://eprint.iacr.org/2018/417.pdf • secp256k1-zkpにマージ https://blockstream.com/2019/02/18/ja-musig-a-new-multisignature-standard/
8 Slackはじめました! https://goblockchain.network/