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
Linkable Spontaneous Anonymous Group Signatures...
Search
shigeyuki azuchi
November 28, 2020
Technology
160
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Linkable Spontaneous Anonymous Group Signatures (LSAG) in Monero
GBECの解説動画の資料です。
https://goblockchain.network/2020/11/lsag/
shigeyuki azuchi
November 28, 2020
More Decks by shigeyuki azuchi
See All by shigeyuki azuchi
FORS
azuchi
0
13
クラスターmempool
azuchi
0
32
W-OTS+
azuchi
0
36
Shorのアルゴリズム
azuchi
0
59
DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures
azuchi
0
43
Fiat-Shamir変換と注意点
azuchi
0
230
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
55
BIP-374 離散対数の等価性証明
azuchi
0
74
BIP-353 DNS Payment Instructions
azuchi
0
91
Other Decks in Technology
See All in Technology
「休む」重要さ
smt7174
5
1.6k
AICoEでAIネイティブ組織への進化
yukiogawa
0
210
キャリアLT会#3
beli68
2
230
シンガポールで登壇してきます
yama3133
0
340
“それは自分の仕事じゃない"を越えて行け
yuukiyo
1
520
文字起こし基盤の信頼性
abnoumaru
0
110
ファミコンでPHPを動かす / PHP on the Famicom
tomzoh
2
590
伝票作成AIエージェントを支える、LLMOpsとインフラの選択肢 / AICon2026_takeda
rakus_dev
0
260
GoでCコンパイラを作った話
repunit
0
150
仕様駆動開発、導入半年。「本当に速くなってるの?」にデータで答える / AICon2026_hirakawa
rakus_dev
0
310
アップデートで何が変わった?デモで学んで使いこなすIBM Bob2.0
muehara
0
220
そのドキュメント、自動化しませんか?
yuksew
1
400
Featured
See All Featured
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
260
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
430
The Cult of Friendly URLs
andyhume
79
7k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
220
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
910
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
260
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.2k
Transcript
Linkable Spontaneous Anonymous Group Signatures (LSAG) in Monero
1 LSAGとは? Moneroの初期に、送信者を秘匿するために開発されたリング署名スキーム Linkable Spontaneous Anonymous Group Signatures
正確には、https://eprint.iacr.org/2004/027.pdf のLinkabilityが、同じリングメンバーに対して有効だったものを Adam Backが↓で https://bitcointalk.org/index.php?topic=972541.msg10619684#msg10619684 異なるリングメンバーに対してもLinkabilityが有効になるように 拡張した署名スキームがベース ※ RingCTの導入に伴い、MLSAGが使用され、現在はCLSAGが利用可能 https://web.getmonero.org/library/Zero-to-Monero-2-0-0.pdf
2 送信者を秘匿する方法 Tx Input A TXO 1 TXO 2 ユーザーが保有するUTXO
TXO 3 ・・・ Key Image Ring Signature Input B TXO 4 ・・・ Blockchain TXO Database 送金時に送金に使用するUTXOと同額のコインを持つTXOを ブロックチェーン上からランダムにサンプリングし、 デコイとしてインプットに混合し、実際に使用するコインを 難読化する。 【リング署名】 特定の公開鍵のセットの内、いずれかの公開鍵に対応する秘密鍵で作ら れた署名であることは証明できるが、それがどの公開鍵に 対応する秘密鍵であるかは分からないという特性を持つ署名方式。 ※ どれが使われたか送信者以外分からないため、BitcoinのようなUTXO管理も不可能
3 LSAGの特性 • Signer Ambiguity 外部の観察者は、署名者がリングのメンバーであることを判断できる必要があるが、 それがどのメンバーかまでわかる必要はない。
• Linkability 同じ秘密鍵を使って2つの異なるメッセージに対して署名した場合、 その2つのメッセージはリンクされる。 • Unforgeability 攻撃者は(極僅かな確率を除いて)、署名を偽造できない =適切な秘密鍵を持っていない者は有効な署名を作ることができない。 暗号通貨では、特にLinkabilityが重要(二重使用を防ぐため)
4 LSAGの署名生成 リングサイズ=3(P 1 =x 1 G、P 2 = x
2 G、P 3 = x 3 G)について リング署名を生成する。実際の署名者は P 2 = x 2 G。 1. キーイメージ I = x 2 Hp(P 2 )を生成する。 2. ランダムな数値α、r 1 、r 3 を生成する(r 2 以外)。 3. チャレンジ c 3 =H(m|αG|αHp(P 2 ))を計算する。 4. 残りのチャレンジを計算 a. c 1 =H(m|r 3 G+c 3 P 3 |r 3 Hp(P 3 )+c 3 I) b. c 2 =H(m|r 1 G+c 1 P 1 |r 1 Hp(P 1 )+c 1 I) 5. 最後にr 2 =αーc 2 x 2 を計算 6. 署名値はσ(m)=(c 1 , r 1 , r 2 , r 3 ) 【表記】 • m:署名対象のメッセージ • H():暗号学的ハッシュ関数 • Hp():楕円曲線上の点を出力するハッ シュ関数 • G:楕円曲線のベースポイント α=r 2 +c 2 x 2 なので、c 3 は c 3 =H(m|(r 2 +c 2 x 2 )G|(r 2 +c 2 x 2 )Hp(P 2 )) c 3 =H(m|r 2 G+c 2 P 2 |r 2 Hp(P 2 )+c 2 I) c 1 とc 2 と同じ構成になる。 各チャレンジは前のチャレンジを参照するリングを形成する。
5 LSAGの署名生成 公開鍵セットP 1 ,P 2 ,P 3 についての循環するSchnorr署名を作れるか? •
s 1 G=R 1 +H(m|R 3 )P 1 • s 2 G=R 2 +H(m|R 1 )P 2 • s 3 G=R 3 +H(m|R 2 )P 3 いずれかの秘密鍵を知っていると(x 2 とする) 1. R 2 =r 2 Gとする。 2. ランダムにs 3 を選択する。 3. R 3 =s 3 GーH(m|R 2 )P 3 を計算し、s 1 をランダムに選択する。 4. R 1 =s 1 GーH(m|R 3 )P 1 を計算する。 5. 最後にs 2 をランダムではなく、s 2 =r 2 +H(m|R 1 )x 2 として計算する。 こうして計算した(H(m|R3),s 1 ,s 2 ,s 3 )があれば↑を作成可能 かつ、↑だけではどの秘密鍵を使って作られたのか判断できない チャレンジハッシュの計算は、1つ前のRを参照る循環構造
6 LSAGの署名生成 リングサイズ=3(P 1 =x 1 G、P 2 = x
2 G、P 3 = x 3 G)について リング署名を生成する。実際の署名者は P 2 = x 2 G。 1. キーイメージ I = x 2 Hp(P 2 )を生成する。 2. ランダムな数値α、r 1 、r 3 を生成する(r 2 以外)。 3. チャレンジ c 3 =H(m|αG|αHp(P 2 ))を計算する。 4. 残りのチャレンジを計算 a. c 1 =H(m|r 3 G+c 3 P 3 |r 3 Hp(P 3 )+c 3 I) b. c 2 =H(m|r 1 G+c 1 P 1 |r 1 Hp(P 1 )+c 1 I) 5. 最後にr 2 =αーc 2 x 2 を計算 6. 署名値はσ(m)=(c 1 , r 1 , r 2 , r 3 ) ※ リングサイズが増えると、その分署名のデータサイズも増える。 【表記】 • m:署名対象のメッセージ • H():暗号学的ハッシュ関数 • Hp():楕円曲線上の点を出力するハッ シュ関数 • G:楕円曲線のベースポイント α=r 2 +c 2 x 2 なので、c 3 は c 3 =H(m|(r 2 +c 2 x 2 )G|(r 2 +c 2 x 2 )Hp(P 2 )) c 3 =H(m|r 2 G+c 2 P 2 |r 2 Hp(P 2 )+c 2 I) c 1 とc 2 と同じ構成になる。 各チャレンジは前のチャレンジを参照するリングを形成する。
7 LSAGの署名検証 リングサイズ=3(P 1 =x 1 G、P 2 = x
2 G、P 3 = x 3 G)について リング署名σ(m)=(c 1 , r 1 , r 2 , r 3 )、キーイメージIの検証は、 1. キーイメージ I がGの郡内に存在するかチェックする。 2. c’ 2 =H(m|r 1 G+c 1 P 1 |r 1 Hp(P 1 )+c 1 I)を計算する。 3. c’ 3 =H(m|r 2 G+c’ 2 P 2 |r 2 Hp(P 2 )+c’ 2 I)を計算する。 4. c’ 1 =H(m|r 3 G+c’ 3 P 3 |r 3 Hp(P 3 )+c’ 3 I)を計算する。 5. c 1 =c’ 1 が成立すれば署名は有効。 署名が有効えあれば、さらにキーイメージ Iがこれまでチェーン上で使用されていないかチェックする。 (キーイメージI = x 2 Hp(P 2 )から鍵が特定されることはない。) Linkabilityを利用した二重使用のチェック↑ 【表記】 • m:署名対象のメッセージ • H():暗号学的ハッシュ関数 • Hp():楕円曲線上の点を出力するハッ シュ関数 • G:楕円曲線のベースポイント
8 まとめ MoneroではLSAGの以下特徴を利用して匿名性を実現 • Signer Ambiguity 公開鍵セットに対して循環するリング署名を形成することで 、匿名セットの創出と署名の秘匿化を実現
• Linkability 同じ秘密鍵を使った署名をLinkabilityにより検出可能にすることで、 署名者は秘匿したまま二重使用を防止 • Unforgeability ただしく秘密鍵を知る者しか、循環するリング署名を作ることができない。 ※ LSAGが1つの公開鍵セットに対するリング署名なのに対し、複数の公開鍵セットにおいて 匿名性を担保するリング署名スキームが MLSAGで、RingCTの導入に伴いMLSAGに切り替わり。 さらに2020年10月17日のアップグレードで署名サイズをコンパクトにした CLSAGをリリース。