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
Linkable Spontaneous Anonymous Group Signatures...
Search
shigeyuki azuchi
November 28, 2020
Technology
170
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
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
CLIライブラリ開発を支える技術
htnabe
0
140
Genieを崇めよ
kameitomohiro
0
170
2026-09-18 gotanda.sre Terraformで複数環境作ったり、複数Stateに分割したりそれとTerragrunt / Terraform multi envs and multi states
masasuzu
3
650
AI de Idea
kawaguti
PRO
2
130
AIを活用するために決めた "やらないこと" - 価値に注目する / Not betting on AI
soudai
PRO
3
560
積み重なった技術負債への挑戦 〜初手としての全社ゴト化〜
techtekt
PRO
0
1.4k
エージェントはローカル、検証はMicroVM — Lambda MicroVMsでつくるServerless CI
fujioka6789
3
540
10Xに技術的負債をもたらした「2つの境界の歪み」その構造と解消への営み
10xinc
0
2.1k
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
2
980
2026_devsumi_ozono.pdf
o3
3
540
品質と信頼性を地続きにする
grimoh
2
830
The Knowledge Spine: A Machine-Executable Ontology for Governed Marketing Activation
vananth22
0
120
Featured
See All Featured
Skip the Path - Find Your Career Trail
mkilby
1
230
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
850
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
500
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
470
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Mobile First: as difficult as doing things right
swwweet
225
10k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
WCS-LA-2024
lcolladotor
0
830
Producing Creativity
orderedlist
PRO
348
41k
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をリリース。