前回はLWWのLSAGについて記事を書きました。こちらの知識を元にして、MLSAGはどのようなものかをこの記事では述べていきます。
MLSAGはRingCTの導入時にMultilayered Linkable Spontaneous Anonymous Group signaturesとして提唱された署名方法です。
元論文はMonero Research Labが出しているRing Confidential Transactionのペーパーです。
LWWのLSAGについて
まず、LWWのLSAGは、ランダムな値 から
を各メンバーについて計算し、最後に署名者の
を計算して調整することで、署名者が署名鍵を持っていることを証明する方法でした。
MLSAGは、LWWのLSAGを改良した方法で、各参加者がダミーの公開鍵を個ずつ持つパターンです。
MLSAGの用語集と前提条件
MLSAGは登場人物がLWWのLSAG以上に多いので、ここに図でまとめておきます。
参加者が
人、
個のデコイ(ダミー)鍵をそれぞれ持つとします。
このうち
番目の参加者が署名者で、その持っている鍵のいずれかが署名鍵
です。
キーイメージは、
によって、各鍵について写像を計算し、結果
の集合になります。
ランダムな値として
はLWWのLSAG同様に割り振る
LWWのLSAGの図と照らし合わせると、各メンバーが複数の鍵を持つことが特徴です。
MLSAGの署名方法
LWWのLSAG同様に、ランダムな値から始めます。
※LWWのLSAGの解説では署名者はで表されていましたが、以下MLSAGの解説では
で署名者を表しています。RingCTのペーパーに準拠しています。
からスタートし、
,
を計算し、m個の鍵それぞれに
を計算します。
- 次に
から
を計算します
をもちいて
番目について、
,
を計算します
- 2同様に
を計算します。
- 3同様に
を計算します。
4,5を繰り返して まで計算したら、
を
となるように調整します。
はed25519の定数である素数。
そうすると、 が1で計算した内容と合致します。このように
を調整できるのは、署名鍵
を知っているものだけです。
すなわち、LWWのLSAGはについて1つだけでしたが、MLSAGは
について
個分のリングを作成することになります。
最終的な署名内容は の集合となります。
キーイメージの利用方法
LWWのLSAG同様に、キーイメージ はコインの二重使用を防ぐために利用します。既に出現している
を持つ署名
はネットワークから拒否されます。
Moneroはアドレスは使い捨てのため、このキーイメージが利用可能です。
まとめ
この記事ではMLSAGについて検討しましたが、前回のLWWのLSAGはが1つの場合のMLSAGと見なすこともできるでしょう。
さて、MLSAGについては、金額を秘匿するConfidential Transactionを利用するタイミングで導入されました。Confidential Transactionとどのように絡み合うのか、また次の記事で解説します。