前回は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とどのように絡み合うのか、また次の記事で解説します。