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
4
クラスターmempool
azuchi
0
30
W-OTS+
azuchi
0
32
Shorのアルゴリズム
azuchi
0
55
DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures
azuchi
0
41
Fiat-Shamir変換と注意点
azuchi
0
220
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
54
BIP-374 離散対数の等価性証明
azuchi
0
71
BIP-353 DNS Payment Instructions
azuchi
0
86
Other Decks in Technology
See All in Technology
マルチアカウント環境での コーディングエージェントを使った障害調査が大変なので AIエージェントにReadOnly権限を付与してみた / ReadOnly AI Agents for Multi-Account AWS Incident Response
yamaguchitk333
2
110
小さくはじめるSLI/SLO ~育てながら組織に定着させる実践知~ / Starting Small with SLI/SLOs: Building Adoption Through Continuous Growth
nari_ex
7
2k
AGENTS.mdとSkillsで始めるAIエージェント活用
sonoda_mj
3
220
2026TECHFRESH畢業分享會 - Lightning Talk - 打造精準高效的 MCP 設計模式與測試實務
line_developers_tw
PRO
0
1.1k
Kubernetesにおける学習基盤とLLMOpsの概要
ry
1
310
現地で盛り上がった WWDC26 Keynote
zozotech
PRO
1
250
AIっぽい文章を採点して人間らしく直すアプリを作ってみた
yama3133
2
200
Disciplined Vibes: Scaling AI-Assisted Engineering
sheharyar
0
150
作って終わりにしない タイミーのセマンティックレイヤー育成の現在地
chanyou0311
4
2.4k
FinOps × AIエージェントで実現する コストインシデントの自動調査
oasis1994liveforever
0
150
AIネイティブな開発のサプライチェーンリスク対策 〜激動の開発現場でリスクに立ち向かう〜【ZennFes】
cscengineer
PRO
2
130
2026 TECHFRESH 畢業分享會 - AI-Native 重塑軟體工程與虛擬講師
line_developers_tw
PRO
0
1.2k
Featured
See All Featured
First, design no harm
axbom
PRO
2
1.2k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
160
Claude Code のすすめ
schroneko
67
230k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
390
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
200
Thoughts on Productivity
jonyablonski
76
5.2k
How to train your dragon (web standard)
notwaldorf
97
6.7k
How GitHub (no longer) Works
holman
316
150k
Navigating Weather and Climate Data
rabernat
0
220
Google's AI Overviews - The New Search
badams
0
1k
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
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をリリース。