MoneroSwapper MoneroSwapper

Monero CLSAG署名を徹底解説

MoneroSwapper · · · 2 min read · 10 views

Monero CLSAG署名を徹底解説

2020年10月17日、ブロック高2,210,720において、Moneroはすべての取引の裏側で動く暗号エンジンを静かに入れ替えました。「Oxygen Orion」ハードフォークは、それまでのMLSAGリング署名を引退させ、CLSAGへと置き換えたのです。その結果、取引サイズはおよそ25%小さくなり、検証速度は一夜にして10〜20%速くなりました。あなたがこれまでにXMRを送ったことがあるなら、あるいはMoneroSwapperのようなサービスを使ってBitcoinをMoneroに移したことがあるなら、その取引は本人がまったく気づかないうちにCLSAG署名によって守られていたことになります。

多くの人は、Moneroのプライバシーをブラックボックスのように捉えています。コインを入れれば、追跡不可能なコインが出てくる——その程度の理解です。しかし、「誰が何を送ったのか」を隠すこの魔法には、ちゃんとした名前と構造があります。CLSAGは、「自分はこれらの出力のうちの一つを所有しており、それをちょうど一度だけ使う」という事実を、どの出力が自分のものかを明かさずに証明してくれる部品です。本記事では、CLSAGとは何か、どのように動くのか、なぜ前任者を置き換えたのか、そしてFCMP++のような新しい証明方式がネットワークに近づくなかで、Moneroのロードマップのどこに位置づけられるのかを噛み砕いて解説していきます。

CLSAGという略語が意味するもの

CLSAGは略語であり、一文字ごとにこの方式の実際の性質を表しています。正式にはConcise Linkable Spontaneous Anonymous Group署名(簡潔・連結可能・自発的・匿名グループ署名)の略です。この設計は、Brandon Goodell氏、Sarang Noether氏、そしてRandomRunとして知られる貢献者による2019年の研究論文から生まれ、メインネットに到達する前に査読と監査を受けています。

  • Concise(簡潔): 署名がコンパクトであるという意味です。CLSAGはリングメンバー一人あたりに必要なスカラーの数を、置き換え前の方式よりもはるかに少なく抑えます。サイズ削減の源泉は、まさにここにあります。
  • Linkable(連結可能): 同じ出力が二度使われた場合、ネットワークがそれを検知できるという性質です。これはキーイメージ——公開鍵から決定論的に導かれる指紋——によって実現され、送信者を露出させることなく二重支払いを防ぎます。
  • Spontaneous(自発的): セットアップの儀式も、リングに出力が登場する人々の間の協力も不要だという意味です。ブロックチェーンから囮(おとり)を、その持ち主の認識も同意もなしに引き込むことができます。
  • Anonymous(匿名): 検証者は署名が有効であることを確認できますが、リングメンバーのうち実際にどれが署名を承認したのかを見分けることはできません。
  • Group(グループ): 署名は、特定可能な単一の鍵ではなく、グループ——つまりリング——を代表して行われます。

これらの性質を組み合わせると、Moneroの送信者プライバシーの核心が見えてきます。すなわち、もっともらしい候補の集合のなかの「誰か」による承認を証明しつつ、本当の署名者を隠したまま、二重支払いを不可能にする有効な署名です。

CLSAGは内部でどう動くのか

CLSAGを理解するには、まずリング署名が何を達成しようとしているのかを把握し、そのうえでCLSAGがどうやって証明を小さくするのかを見る必要があります。Moneroの取引はRingCTを使っており、これは両方とも秘匿されなければならない二つの要素を組み合わせています。誰が使っているのか(送信者の曖昧性)と、いくら使っているのか(金額の機密性)です。CLSAGは前半を担当し、Bulletproofs+が後半を担当します。

リング署名が解こうとする問題

Moneroの出力を使うとき、あなたのウォレットはリングを構築します。本物の出力に加えて、チェーンから引いてきた複数の囮の出力を束ねるのです。2022年8月の「Fluorine Fermi」アップグレード以降、リングサイズは16に固定されています。つまり、どの支払いも15個の囮のなかに紛れ込むということです。外部の観測者には16個の候補出力が見えますが、そのうち本当に使われているのがどれなのかを言い当てることはできません。

難しいのは、「この16個の出力のうちの一つについて秘密鍵を持っている」ことを、どれなのかを漏らさずに証明する形で署名する点です。リング署名はまさにそれを実現します。仕掛けは、署名者が本物の秘密鍵を一つ知っている場合にのみ閉じる暗号学的なチャレンジの輪を構築することにあります。しかも外から見ると、輪のどの環も互いに見分けがつきません。

キーイメージと二重支払い防止

送信者が隠れていることの危険は、二重支払いです。どの出力を使ったのかが誰にも見えないなら、それをもう一度使うのを何が止めるのでしょうか。その答えがキーイメージです。各出力にはちょうど一つだけ有効なキーイメージが存在し、それは秘密鍵に公開鍵のhash-to-pointを掛けたものとして計算されます。出力と数学的に結びついている一方で、それがどのリングメンバーから生まれたのかは何も明かしません。

これまで使われたすべてのキーイメージはオンチェーンに記録されます。新しい取引が届くと、ノードはそのキーイメージが過去に登場していないかどうかを確認します。もし登場していれば、その取引は二重支払いとして拒否されます。これこそが、Moneroの「送信者を隠すモデル」を安全たらしめているもの——CLSAGの「L」が指す連結可能性です。

集約がどのように署名を縮めるのか

ここがCLSAGが「簡潔」である理由の心臓部です。RingCT取引では、各リングメンバーは二つの公開鍵と関連づけられています。所有権を証明するワンタイム出力鍵と、入力と出力の金額が釣り合うことを証明する金額コミットメントです。以前の方式であるMLSAGは、この二つの鍵をそれぞれ別々に署名していたため、リングメンバーごとに二つの応答スカラーを生み出していました。

CLSAGはそれを単一のリングへと畳み込みます。集約係数——リングとそのコミットメントをハッシュすることで決定論的に導かれます——を用いて、二つの鍵を一つの結合された検証方程式へと折りたたむのです。結果として、リングメンバーごとの応答スカラーは二つから一つになり、あとは単一の初期チャレンジとキーイメージが加わるだけになります。

リングサイズ11の場合、MLSAGは入力あたり約22個の応答スカラーを必要としていました。CLSAGなら約12個で済みます。このたった一つの変更が、典型的な2入力取引を約4分の1だけ削った正体です。

重要なのは、安全性証明がこの集約によって何も弱まらないことを示している点です。CLSAGは以前と同じ前提のもとで、偽造不可能性と匿名性を保ちます。たとえリング内の鍵の一部を選べる攻撃者を相手にしても、です。プライバシーや安全性を犠牲にすることなく、より小さく、より速い署名が手に入る——暗号学では稀な、純粋な勝利と言えます。

CLSAGを支える数学的な土台

もう少し細部に踏み込んでおきましょう。CLSAGはほかの多くのMonero部品と同様に、Ed25519楕円曲線(エドワーズ曲線の一種)の上で動きます。鍵は曲線上の点であり、秘密鍵はスカラー、公開鍵はそのスカラーをベースポイントに掛けた点です。ハッシュには高速なKeccakが使われ、リング全体・コミットメント・メッセージを一括して取り込むことで、前述の集約係数や初期チャレンジが導かれます。

署名の検証は、本質的にはチャレンジの輪を一周計算し直す作業です。検証者は最初のメンバーから順に、各メンバーの応答スカラーと公開鍵を使って次のチャレンジを計算していきます。輪を一周して最初の値に戻ってくれば、署名は有効です。署名者は本物の秘密鍵を持つ箇所でだけこの輪を「閉じる」ことができ、それ以外の箇所はランダムに見える値で埋められています。外から見ると、どの環が本物の鍵で閉じられたのかはまったく区別がつきません。これが匿名性の正体です。

CLSAGが守るもの、守らないもの

CLSAGの威力を正しく理解するには、その境界線を知っておくことが大切です。CLSAGは万能の盾ではなく、Moneroのプライバシースタックのなかで特定の一つの仕事を担う部品にすぎません。守ってくれるものを過大評価すれば、思わぬところで足元をすくわれます。

  • 守るもの: 送信者の曖昧性です。リングのどの出力が本当に使われたのかを暗号学的に隠します。これに加えて、キーイメージによる二重支払い防止も担います。
  • 別の部品が守るもの: 金額はBulletproofs+とPedersenコミットメントが隠し、受信者はステルスアドレスが守り、発信元IPはDandelion++、さらにはTorやI2Pの併用で隠します。CLSAG単体ではこれらは守れません。
  • そもそも守れないもの: 取引所での本人確認(KYC)です。身元を登録した取引所でXMRを買えば、その「入口」の記録は残ります。だからこそ、ノンカストディアル型のスワップが重視されるのです。

言い換えれば、CLSAGはチェーン上での追跡を断ち切りますが、チェーンの外側——あなたがコインを手に入れた経路や、IPレベルのメタデータ——までは面倒を見ません。本当の意味での匿名性は、これらの層をすべて意識して初めて成立します。

他のプライバシー手法との違い

プライバシーを実現する暗号技術はCLSAGだけではありません。代表的なアプローチを比べると、Moneroが選んだリング署名という設計の性格がよく見えてきます。

第一に、Zcashなどが採用するzk-SNARKsは、ゼロ知識証明によって匿名集合をチェーン全体にまで広げられる強力な手法です。ただし従来は信頼できる初期セットアップ(trusted setup)を必要とし、その儀式が損なわれていないかという懸念が常につきまといました。CLSAGはその「S」——Spontaneous——が示すとおり、こうしたセットアップを一切必要としません。

第二に、BitcoinのCoinJoinのようなミキシング手法は、複数ユーザーの取引をまとめて結びつきを曖昧にしますが、参加者の協調が前提になります。CLSAGなら、囮にされる相手の同意も認識も不要で、ブロックチェーンから一方的に出力を借りてくるだけで成立します。

そしてMoneroが目指すFCMP++は、まさにリング署名の「匿名集合が有限」という弱点を、ゼロ知識証明の発想で乗り越えようとする試みだと言えます。手法ごとに長所と短所があり、Moneroはセットアップ不要・全取引が一律という設計を重視して、ここまでリング署名の系譜を磨き上げてきたのです。

CLSAG対MLSAG:何が変わったのか

MLSAG(Multilayered Linkable Spontaneous Anonymous Group署名、多層連結可能自発匿名グループ署名)は、2017年1月のローンチから2020年のフォークまでRingCTを支えてきました。CLSAGはその直接的な、いわば「差し替え式」の後継であり、同じ信頼モデルを保ったまま余分な脂肪を削ぎ落としています。下の表は、実用上の違いをまとめたものです。

項目MLSAG(2017〜2020)CLSAG(2020〜現在)
リングメンバーあたりのスカラー数2(鍵の層ごとに1つ)1(集約済み)
典型的な2入力取引の署名サイズ基準値約25%小さい
検証速度基準値約10〜20%速い
プライバシー保証送信者の曖昧性+連結可能性同一
敵対的な鍵に対する安全性証明済み証明済み(改めて正式に監査)
有効化RingCTローンチ、2017年1月Oxygen Orionフォーク、2020年10月

署名が小さくなることは、見た目の美しさ以上の意味を持ちます。取引の重み(weight)が下がれば、手数料が下がり、ブロックチェーンの肥大化が抑えられ、ノードの同期時間も短くなります。Moneroのすべての取引は構造的に同じ見た目をしているため、こうした削減はネットワーク全体にわたって積み重なり、代替可能性(fungibility)を高めます——どの取引も、その履歴に基づいて「安い」「高い」と区別されることがないのです。

CLSAGはMonero取引のどこに収まるのか

CLSAGが単独で働くことは決してありません。それはRingCT取引の一構成要素であり、ステルスアドレス、金額コミットメント、範囲証明(レンジプルーフ)と並んで機能します。以下は、ウォレットが送金を決めた瞬間からノードがそれを受理する瞬間までの、支払いの簡略化されたライフサイクルです。

  1. 囮を選ぶ: ウォレットは、実際の支払いパターンを模したガンマ分布を使ってチェーンから15個の囮出力を選び、そこにあなたの本物の出力を加えて16個のリングを形成します。
  2. コミットメントを構築する: 入力と出力の金額はPedersenコミットメントの背後に隠され、擬似出力コミットメントが生成されます。これにより検証者は、金額そのものを見ることなく、入力と出力が等しいことを確認できます。
  3. キーイメージを計算する: ウォレットは、使おうとしている出力のキーイメージを導出します。ネットワークは後でこれを、使用済みキーイメージの集合と照合します。
  4. CLSAGで署名する: ウォレットは、ワンタイム鍵とコミットメント鍵のリングに対して単一の集約リング署名を生成します。暗号学的な輪が閉じるのは、本物の秘密鍵を一つ握っているからこそです。
  5. 範囲証明を添える: Bulletproofs+は、すべての出力金額が有効な範囲内にあることを証明します。これにより、マイナスの出力を使ってコインを無から作り出すことは誰にもできなくなります。
  6. ブロードキャストして検証する: 取引はDandelion++を経由して伝播し、発信元のIPを曖昧にします。ノードはそれを中継する前に、CLSAG署名、コミットメント、範囲証明、そしてキーイメージの一意性を検証します。
ヒント:これらを自分で設定することは一切ありません。リングサイズ、囮の選択、署名方式は、すべてコンセンサスによって強制されます。だからこそ、同じネットワークバージョン上の二つのウォレットは、互いに見分けのつかない取引を生み出すのです。

具体例で見るCLSAG

あなたがMoneroSwapperを通じて0.5 BTCをXMRに交換し、そのMoneroの一部を後でハードウェアウォレットへ送る場面を想像してください。送信ボタンを押した瞬間、あなたのウォレットは16個の出力からなるリングを組み立てます。そこにはあなたの本物の出力が含まれていますが、同時に、参加に同意したこともなく、自分が参加させられたことを知ることも決してない、他のユーザーの15個の無関係な出力も含まれています。

あなたのウォレットが生成するCLSAG署名は、地球上のすべてのノードに対して、あなたがその16個のうちの一つを正当に支配していることを証明します——ただし、どれなのかは言いません。チェーンを監視している取引所も、ブロックチェーン分析会社も、好奇心旺盛な傍観者も、16個の等しくもっともらしい出所を持つ有効な取引を見るだけです。本物を確実に選び出せるヒューリスティックは存在しません。そして、それこそが狙いなのです。

これを、Bitcoinのような透明なチェーンと対比してみましょう。Bitcoinでは、使われている入力そのものが公開されています。Bitcoin上では、その0.5 BTCは永続的で追跡可能な履歴を背負い続けます。Monero上では、CLSAGがあらゆるホップで結びつきを断ち切ります。プライバシーを意識するユーザーがそもそもMoneroに価値を通す理由は、まさにここにあります。

日本のユーザーにとっての意味

日本では、この話は単なる理論にとどまりません。金融庁(FSA)の指針を背景に、国内の登録済み暗号資産交換業者ではMoneroのようなプライバシーコインの取り扱いが事実上行われていません。そのため、日本のユーザーがXMRを手に入れる現実的な経路は、口座開設を伴わないノンカストディアル型のスワップサービスを使うことになります。MoneroSwapperを通じてBitcoinをMoneroに交換するという流れが選ばれるのは、こうした事情ゆえです。なお、税務上の取り扱いについては国税庁が暗号資産を雑所得として扱う方針を示しているため、交換や売却で利益が出た場合の申告義務は、プライバシー技術とは別の話として念頭に置いておく必要があります。CLSAGがあなたの取引相手を隠してくれることと、税務申告の義務が消えることは、まったくの別物です。

囮の質が署名の実効的な強さを決める

CLSAGの暗号学的な証明は完璧ですが、リング署名の現実のプライバシーは、もう一つの要素に大きく左右されます。それが囮(おとり)の選び方です。仮に囮の選択が下手で、攻撃者が「この15個は明らかに古すぎる」「この1個だけ使われる確率が高い」と推測できてしまえば、16個のうち本物が浮かび上がってしまいます。暗号が破られなくても、統計で絞り込まれてしまうわけです。

これを防ぐために、Moneroのウォレットはガンマ分布に基づいて囮を選びます。これは、現実の支払いがどのくらい古い出力を使う傾向があるのかを統計的に模した分布です。最近作られたばかりの出力ほど使われやすく、古い出力ほど使われにくい——その実際の振る舞いを再現することで、本物の出力が囮の山のなかで不自然に目立たないようにしています。すべてのウォレットが同じアルゴリズムに従うため、選び方そのものから手がかりが漏れることもありません。

つまりCLSAGは、署名という最後の一枚を担当しているにすぎません。その手前で、リングを構成する16個の出力がどれだけ「もっともらしく」並んでいるかが、実効的な匿名性を決めます。優れた暗号と賢い囮選択の両輪がそろって初めて、外部の分析者が本物を当てられない状態が完成するのです。

これからの道のり:FCMP++とSeraphis

CLSAGは優れていますが、構造的な天井を抱えています。匿名集合がリングサイズで頭打ちになるのです。16メンバーであれば、あなたの本物の支払いは15個の囮のなかに隠れます——強力ではありますが、有限です。Moneroの研究コミュニティは、もっと大きなものを作るために何年も費やしてきました。

FCMP++(Full-Chain Membership Proofs、フルチェーン・メンバーシップ証明)が、計画されている後継です。16個の出力のなかに隠れる代わりに、FCMP++はチェーン上にこれまで存在したすべての出力を相手にメンバーシップを証明します——匿名集合は16ではなく、数千万のオーダーになります。開発と監査は2025年を通じて着実に前進し、アップグレードは将来のハードフォークに向けて目標が定められています。それが実装されたとき、CLSAGを含む、私たちが知るリング署名は引退することになります。

FCMP++と並んで、Seraphis取引プロトコルとJamtisアドレス方式があります。この二つは、Moneroの出力がどのように形成され、どのようにアドレス指定されるかを刷新します。ここで伝えたいのは、CLSAGが時代遅れだということではありません——それは今この瞬間もネットワークを守っており、これからしばらくは守り続けます——むしろ、Moneroがプライバシー保証の改善を決して止めない、ということです。CLSAG自身がMLSAGの後継でした。そしてこのサイクルは続いていきます。

よくある質問(FAQ)

CLSAGは何の略ですか?

CLSAGはConcise Linkable Spontaneous Anonymous Group署名(簡潔・連結可能・自発的・匿名グループ署名)の略です。それぞれの語が一つの性質を表しています。署名がコンパクトであること、二重支払いが検知可能であること、リングメンバー間の協調が不要であること、本当の署名者が隠されること、そして証明が特定可能な単一の鍵ではなくグループを代表して行われること、です。

MoneroはいつからCLSAGを使い始めましたか?

CLSAGは2020年10月17日、ブロック高2,210,720における「Oxygen Orion」ハードフォークでMoneroメインネット上に有効化されました。2017年1月以降RingCT取引を守ってきたMLSAGを置き換える形です。

CLSAGはMoneroの取引をどれくらい小さくしましたか?

典型的な2入力取引はおよそ25%縮小し、検証は約10〜20%速くなりました。この削減は、リングメンバーごとに二つあった応答スカラーを一つに集約したことから生まれます。これにより、オンチェーンに保存されるデータと、ノードが検証にかける作業の両方が減ります。

CLSAGはMoneroのプライバシーや安全性を弱めますか?

いいえ。CLSAGはMLSAGと同じ送信者の曖昧性と二重支払い防止を提供します。その安全性は正式に証明され、独立して監査されました。これには、攻撃者がリング内の鍵の一部を支配する攻撃への耐性も含まれます。CLSAGは、同じ保証を厳密により効率的にしたバージョンにすぎません。

CLSAGは置き換えられますか?

いずれは、はい。FCMP++(Full-Chain Membership Proofs)アップグレードは、リング署名を完全に置き換え、匿名集合を16のリングメンバーからブロックチェーン全体へと拡張するよう設計されています。2025年を通じて活発に開発・監査が進められ、将来のハードフォークが目標とされていますが、それまではCLSAGがネットワークを守ります。

リングサイズ16は十分に安全ですか?

現状では、はい。16という固定サイズはコンセンサスで強制されており、すべての取引が同じ大きさのリングを持つことで、リングサイズの違いから情報が漏れることを防いでいます。とはいえ匿名集合が有限であることは事実で、長期的にはこの上限を取り払うためにFCMP++が開発されています。日常的な利用において、15個の囮による保護は実務上きわめて強固だと考えてよいでしょう。

CLSAG署名を自分で設定する必要はありますか?

ありません。リングサイズ、囮の選択方法、署名方式はすべてプロトコルレベルで決められており、ウォレットが自動的に処理します。MoneroSwapperのようなサービスでXMRを受け取った後にそれを使うときも、あなたが何かを設定することなく、同じCLSAG署名が裏側で生成されます。

CLSAGとBulletproofs+は何が違うのですか?

役割が異なります。CLSAGは「誰が」使ったのかを隠す送信者プライバシーを担当し、リング署名でその証明を行います。一方Bulletproofs+は「いくら」のレンジ証明を担当し、出力金額が有効な範囲内にあることを、金額そのものを明かさずに証明します。RingCT取引のなかで、この二つは互いに補い合いながら同時に機能しています。

CLSAG署名がある取引のサイズはどれくらいですか?

正確なバイト数は入力と出力の数によって変わりますが、典型的な2入力2出力の取引でおよそ1.5キロバイト前後です。MLSAG時代と比べておよそ4分の1が削減された結果であり、このわずかな違いがネットワーク全体で積み重なることで、手数料の低下とブロックチェーンの肥大化抑制につながっています。

まとめ

CLSAGは、優れた暗号技術が「目に見えない」と「影響力が大きい」を両立できることを証明する類のアップグレードです。Moneroのすべての取引を、より小さく、より安く、より速く検証できるものにしながら、このコインを定義づける送信者プライバシーと二重支払い防止を保ちました——しかも、ユーザーは指一本動かす必要がありませんでした。これを理解することは、「追跡不可能」が実際に何を意味するのかの謎を解くことにつながります。それは魔法ではなく、キーイメージを取り付けた、注意深く構築されたリング署名なのです。そして、その仕組みを知っておくことは、自分のプライバシーがどこまで守られ、どこからは自分で気を配るべきかを見極める助けにもなります。

このプライバシーを実際に活かしたいなら、最も簡単な道は、そもそも身元を渡さずにMoneroを手に入れることです。MoneroSwapperを通じて、アカウント不要・KYC不要で匿名でMoneroを購入でき、あなたが受け取るすべての出力は、それを使う瞬間に、本記事で説明したのと同じCLSAG署名によって守られます。技術の細部を理解した今なら、その保護がただのうたい文句ではなく、検証可能な仕組みに裏打ちされていることが分かるはずです。

この記事をシェア

関連記事

匿名 モネロ取引所

KYCなし • 登録なし • 即時交換

今すぐ交換