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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
Hyper Tree
azuchi
0
6
FORS
azuchi
0
20
クラスターmempool
azuchi
0
38
W-OTS+
azuchi
0
43
Shorのアルゴリズム
azuchi
0
65
DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures
azuchi
0
51
Fiat-Shamir変換と注意点
azuchi
0
240
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
62
BIP-374 離散対数の等価性証明
azuchi
0
81
Other Decks in Technology
See All in Technology
社内の7割が使うデータ基盤を、 データチーム2人で回すためにやったこと
koh_yoshi
4
1.5k
:syncing_time:
sksat
2
330
作って理解するCoding Agent 〜フレームワークに頼らないピュア Python での実装〜
takapy
3
980
カーネルまで探検して理解するふたつの自動計装
sumiyae
0
140
NANDでも描画したい!
nichica906
2
500
Kiro Crew入門 - 常駐エージェントの仕組みと使いどころ / Intro to Kiro Crew
k_adachi_01
1
740
Kiro WebとCloud Sessions
nagisa53
2
100
tamachi.go 誕生の裏側
rymiyamoto
1
200
【CEDEC2026】Creative Approaches to Localizing the Dialects and Unique Speech of Umamusume: Pretty Derby Characters in English
cygames
PRO
4
26k
【GCC2026】大規模言語モデルを活用した内製検索サービスの社内展開や業務活用
bandainamcostudios
PRO
0
480
ハッカソンで入賞した話 @ Findy LT
asari194617
0
1.5k
Software Supply Chain Attackからクラウド環境を守るためにできること
lhazy
2
290
Featured
See All Featured
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
900
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.8k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
240
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
280
Large-scale JavaScript Application Architecture
addyosmani
515
110k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
3
470
Abbi's Birthday
coloredviolet
3
9.4k
Optimising Largest Contentful Paint
csswizardry
37
3.9k
ラッコキーワード サービス紹介資料
rakko
1
4.5M
Believing is Seeing
oripsolob
1
200
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
500
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をリリース。