Moneroのステルスアドレスとは?仕組みをわかりやすく解説
Moneroのステルスアドレスとは?仕組みをわかりやすく解説
Moneroのブロックエクスプローラーを開いて、たった今あなたが送金を受け取ったアドレスを探してみてください。見つかりません。何千件もの取引をスクロールしても、受取人の公開アドレスがチェーン上に記録されている場面には一度も出くわさないはずです。この一点こそが、MoneroをBitcoinから決定的に分けるものです。Bitcoinでは、すべての支払いが送り手と受け手を結ぶ恒久的で検索可能なリンクとして残り続けます。この「消える」仕掛けの正体がステルスアドレスであり、それはすべての取引で静かに動いています。MoneroSwapperで他のコインをXMRに交換するときに発生する取引も、例外ではありません。
ステルスアドレスとは、資金を受け取るためにコピー&ペーストする「4」から始まる長い文字列のことではありません。あの公開文字列は自由に共有してかまわないものです。ウェブサイトに掲載しても、名刺に印刷しても、1000人の顧客に配っても問題ありません。実際にブロックチェーンに刻まれるのは、まったく別物です。送り手側が生成する使い捨ての一回限りの宛先鍵であり、数学的にはあなたと結びついていながら、誰にも読み解けないものなのです。この記事では、その仕組みが具体的にどう動くのか、なぜそれがMoneroのプライバシーモデルの土台なのか、そして残る2本の柱であるリング署名とRingCTとどう連携して真の代替可能性(ファンジビリティ)を実現するのかを、ひとつずつ解きほぐしていきます。
なぜ「受取人のプライバシー」が難問なのか
透明なブロックチェーンで本当に怖いのは「金額」だと多くの人が思い込んでいます。違います。より深刻な漏えいはアドレスグラフ、つまり「誰が誰に払ったか」という関係性の網です。チェーン分析企業はこの網を再構築して利用者の匿名性を剥がし、ウォレットをクラスタリングし、「汚染された」コインに印を付けます。Bitcoinでは、ひとつのアドレスを使い回した瞬間に、あなたの金融履歴全体が公開された表計算シートに変わってしまいます。
Moneroは、3つの異なる「見えてしまう問題」を、3つの異なる道具で解決します。これらを混同しないことが理解の近道です。
- 受取人を隠す: ステルスアドレスにより、あなた宛ての2つの支払いがチェーン上で同じ宛先を共有することは絶対にありません。だから観測者はそれらを結びつけられません。
- 送り手を隠す: リング署名(2020年以降はCLSAGアルゴリズム)が、あなたの本物の入力をダミー(デコイ)と混ぜ合わせ、どのコインが実際に使われたのかを判別不能にします。
- 金額を隠す: レンジプルーフで守られたRingCTが取引額を暗号化しつつ、何もないところからコインが生み出されていないことをネットワークが検証できる状態を保ちます。
ステルスアドレスは最初の問題に取り組み、しかも受取人側の手間はゼロです。プライバシー意識の高いBitcoin利用者が「支払いごとに新しいアドレスを手動で生成しなさい」と言われるのとは対照的に、あなたは何もする必要がありません。プロトコルがそれを自動で、何十億回も、すでに共有した1つの公開アドレス以外に送り手と受け手の事前のやり取りを一切必要とせずにこなしてくれます。
ステルスアドレスが実際に動く仕組み
この仕掛けの土台になっているのは、ed25519曲線上での楕円曲線ディフィー・ヘルマン鍵交換です。これは現代のデジタル署名で使われているのと同じ曲線族です。Moneroの方式は「Dual-Key Stealth Address Protocol(二重鍵ステルスアドレスプロトコル)」と呼ばれることがあります。あなたの公開アドレスが、1つではなく2つの鍵を符号化しているからです。
あなたの2組の鍵ペア
ニーモニックシードからMoneroウォレットを作成すると、ウォレットは2組の鍵ペアを導出します。
- 支出鍵 (b, B): 秘密支出鍵
bが送金を承認します。その公開版Bはアドレスの半分を構成します。 - 閲覧鍵 (a, A): 秘密閲覧鍵
aは入金を検知するためのものです。その公開版Aがアドレスのもう半分です。
あなたの公開アドレス、つまりあの95文字の文字列は、本質的には B と A をネットワークバイトとチェックサムと一緒に束ねたものです。ここが重要なのですが、閲覧鍵は監査人や会計士に渡すことができます。すると彼らは、1ピコネロたりとも使うことなく、あなたの入金を見ることができます。日本では暗号資産の損益を確定申告する際に取引記録の整理が必要になりますが、閲覧鍵を税理士に共有すれば、支出権限を渡さずに受取履歴だけを開示できる、というわけです。一方、支出鍵は命がけで守るべき鍵です。
送り手が計算していること
誰かがあなたに支払うとき、その人のウォレットは以下を自動的に、しかも1秒の何分の1かの間に実行します。
- この取引専用のランダムな秘密スカラー
rを生成する。 - 対応する取引公開鍵
R = r·Gを取引の中に公開する(Gは曲線のベースポイント)。 - あなたの公開閲覧鍵を使って共有秘密を計算する。すなわち
H(r·A)(HはKeccakベースのハッシュ関数)。 - 一回限りの宛先鍵
P = H(r·A)·G + Bを導出し、その出力のアドレスとしてPをチェーンに書き込む。
この鍵 P がステルスアドレスです。これはこの取引だけに固有のものです。同じ相手に2回払えば、見た目がまったく無関係な2つの出力が生まれます。r が毎回違うからです。外部の観測者は P をあなたの公開アドレスに結びつけることはできません。それを行うにはあなたの秘密閲覧鍵が必要か、離散対数問題を破る必要があるからです。
送り手は、支払いのたびにまっさらな新しいアドレスをブロックチェーンに書き込みます。しかも受取人はそれを頼む必要すらありませんでした。これこそがステルスアドレスの、静かな天才性です。
自分のお金をどうやって見つけるのか
初心者が驚くのはここです。あなたの本物のアドレスはチェーン上に決して現れないのに、ウォレットはどうやって入金を知るのでしょうか。答えは「スキャン」です。ウォレットは各取引で公開された R を取り出し、あなたの秘密閲覧鍵 a を使って H(a·R)·G + B を計算します。ディフィー・ヘルマンの数学により a·R = a·r·G = r·a·G = r·A が成り立つので、これは送り手が作ったのとまったく同じ P を再現します。その結果が取引内の出力と一致すれば、その出力はあなたのものです。
これが、同期済みのMoneroウォレットがチェーン上のすべての取引を確認しなければならない理由です。「私の残高は?」とサーバーに尋ねれば、どの出力に関心があるかを明かしてしまうので、それができないのです。このスキャンのコストこそが受取人プライバシーの代償であり、閲覧専用ウォレットや公式の monero-wallet-cli のようなツールが「更新中(refreshing)」に時間を費やす理由でもあります。
受け取った出力を実際に使うには、ウォレットは一回限りの秘密鍵 x = H(a·R) + b を計算します。これには秘密支出鍵 b が必要です。この一回限りの鍵は固有のキーイメージも生成します。これは、どの出力が使われているかを明かさずに、ネットワークが二重支払いを検知できるようにする値です。
キーイメージが解く、もうひとつの難問
ここには一見矛盾した要求があります。出力がどれかを誰にも見せたくない。しかし同時に、同じコインが二度使われていないことはネットワーク全員に検証させたい。透明なチェーンならこれは簡単です。使われた出力に「使用済み」の印を付ければよいだけですから。ところがMoneroでは、どの出力が使われたのかすら隠したいのです。
キーイメージはこの矛盾を見事に解決します。一回限りの秘密鍵 x から決定論的に導出される値で、同じ出力からは必ず同じキーイメージが生まれる一方、そのキーイメージから元の出力を逆算することはできません。ネットワークはこれまでに使われたキーイメージの一覧を保持し、新しい取引が提示したキーイメージがすでに登場済みなら、その取引を二重支払いとして拒否します。誰が・どの出力を使ったかは依然として伏せられたまま、「このコインは初めて使われた」という事実だけが証明されるのです。
この仕組みのおかげで、ステルスアドレスが提供する受取人の秘匿性と、暗号資産にとって生命線である二重支払い防止とが、互いを犠牲にすることなく両立します。プライバシーと健全性はトレードオフだと思われがちですが、Moneroの設計はその思い込みを覆しています。
直感的に理解する:無限に湧く使い捨ての私書箱
数式が苦手なら、こう考えてみてください。あなたの公開アドレスは、郵便受けそのものではなく「特別な錠前のレシピ」だと想像します。あなたに荷物を送りたい人は、毎回そのレシピを使って、その荷物専用のまったく新しい私書箱を街のどこかに作り出します。私書箱の場所(ステルスアドレス)は送り手が決めるので、二度と同じ場所は使われません。外から街を見渡しても、無数の私書箱が並んでいるだけで、どれがあなた宛てなのかは誰にも分かりません。
ところがあなただけは、秘密の閲覧鍵という「探知機」を持っています。街中の私書箱を一つひとつ歩いて回り、探知機をかざすと、あなた宛てに作られた箱だけが反応します。そして中身を取り出す(=送金する)には、さらに別の物理的な鍵、つまり支出鍵が必要です。探知機(閲覧鍵)を友人に貸しても、その友人は「どの箱があなた宛てか」を見られるだけで、中身は取り出せません。これがMoneroの鍵分離の本質です。
この比喩の優れた点は、「探知して回る」という負担が利用者側にあることまで表現できているところです。Moneroウォレットの同期が、まさにこの「街を歩いて私書箱を確かめる」作業に相当します。
ステルスアドレスと他のプライバシー手法の比較
Moneroの自動的でプロトコルレベルのアプローチが、透明なチェーン上で人々が頼りがちな代替手段の隣にどう位置づけられるのかを見ておく価値があります。
| 手法 | 受取人プライバシー | 欠点 |
|---|---|---|
| Bitcoinのアドレス使い回し | なし — 完全に公開され、完全に追跡可能 | 履歴全体が露出する |
| Bitcoinの支払いごとの新規アドレス | 部分的。資金統合(コンソリデーション)で破綻 | 手動・ミスしやすく、送金時に漏れる |
| CoinJoin / ミキサー | 確率的・オプトイン式 | ヒューリスティック+タイミング分析、多くは管理型(カストディアル) |
| Moneroのステルスアドレス | 強制・取引ごと・自動 | ウォレットがチェーンをスキャンする必要がある |
決定的な違いは、Moneroのプライバシーが「あなたが選んで有効にする機能」ではないという点です。それはネットワーク上の取引の100%すべてに対するデフォルトなのです。この普遍性こそが代替可能性を生み出します。どのコインも他のコインと区別できず、「汚れた」出所に遡ることもできないため、すべてのXMRが他のすべてのXMRと交換可能になるのです。ミキサーはそれを使う人々だけを隠しますが、プライバシーがデフォルトなら全員を隠します。これこそが匿名集合(アノニミティセット)を意味あるものにする条件です。
この代替可能性は、抽象的な理想論ではなく実利でもあります。Bitcoinでは、過去に犯罪に関与したとされるコインが「汚染」扱いされ、取引所で凍結されたり受け取りを拒否されたりする事例があります。受け取った1枚のコインが、何代も前の取引のせいで突然「使えない資産」になりうるわけです。すべての出力が原理的に区別不能なMoneroでは、こうした「あなたのせいではない過去」に資産価値を左右されるリスクが構造的に存在しません。ステルスアドレスが受取の連結を断ち切っていることが、この性質の出発点になっています。
サブアドレスの位置づけ
2018年、Moneroはステルスアドレスの仕組みの上にサブアドレス機能を追加しました。サブアドレスを使えば、事実上無制限の受取アドレス(顧客ごと、請求書ごと、用途ごと)を生成でき、それらはすべて1つのウォレットに集約されます。しかも、古い「ペイメントID」方式のようなプライバシー漏えいは起きません。各サブアドレスも依然としてチェーン上では連結不能な一回限りの出力へと解決されます。サブアドレスはあなた自身のための整理上の便利機能であり、他のすべての人から物事を隠す暗号技術の上に重ねられた層なのです。
実務的にこれが効いてくるのが、決済サービスや交換サービスの裏側です。たとえば注文ごとに新しいサブアドレスを発行すれば、サービス側は「どの入金がどの注文に対応するか」を自分の帳簿の中だけで紐づけられます。それでいて、チェーン上ではどの入金も互いに無関係に見えたままです。受取人側の運用の都合と、観測者から見たときの連結不能性が、まったく別のレイヤーで両立している ― これがステルスアドレスとサブアドレスの役割分担の妙です。
Moneroの全体像の中でステルスアドレスが占める位置
ステルスアドレスは三本脚の椅子の1本です。どの脚を外してもプライバシーは崩れます。受取人を隠しても送り手が漏れれば、分析者はグラフを逆向きにたどります。両者を隠しても金額が漏れれば、特徴的な値が指紋になります。Moneroの多層防御こそが、2024年から2025年にかけて単独のミキシングサービスが繰り返し閉鎖・侵害されていく中でも、Moneroが立ち続けてきた理由です。
日本の文脈でこれが特に重みを持つのは、金融庁(FSA)の方針のもとで国内の暗号資産交換業者がいわゆる匿名性の高い通貨の取り扱いを取りやめてきた経緯があるからです。2018年、コインチェックはMoneroを含む匿名性の高い通貨の上場を廃止しました。この規制環境のもとで、追跡されない受取が技術的にどう成立しているのかを理解しておくことは、日本の利用者にとって単なる学術的な興味にとどまりません。
技術も止まってはいません。長く続いたCLSAGアップグレードは、取引サイズと検証時間を削減するために古いMLSAGリング署名を置き換えました。Bulletproofsとそれに続くBulletproofs+は、金額を守るレンジプルーフのサイズを大幅に縮小しました。さらに先を見ると、Full-Chain Membership Proofs(FCMP++)の取り組みは、リング署名そのものをチェーン全体にまたがる証明セットに置き換えることを目指しています。これにより、送り手の匿名集合は16個のデコイから、事実上これまで作られたすべての出力へと押し上げられます。それと並んで、次世代のアドレス方式であるSeraphisとJamtisは、ステルス機能と閲覧鍵機能の動き方を近代化するよう設計されており、より柔軟な閲覧鍵の階層やウォレットスキャン性能の向上が含まれます。
これらのロードマップ項目はどれもステルスアドレスを取り除くものではありません。同じ中核的な発想を洗練させ、拡張するものです。2014年のCryptoNoteホワイトペーパーで確立された原則 — 支払いの宛先は、受取人以外の誰も認識できない一回限りの鍵であるべきだ — は、いまも土台であり続けています。
暗号だけでは守れないもの:ネットワーク層のプライバシー
ここで、初心者が見落としがちな重要な注意点があります。ステルスアドレスはチェーン上であなたを隠してくれますが、取引をネットワークに送り出す瞬間のメタデータまでは守ってくれません。あなたのウォレットが取引をブロードキャストすると、最初にそれを受け取ったノードは、その取引が発信されたIPアドレスを観測できる可能性があります。チェーン上のプライバシーが完璧でも、IPアドレスと取引のタイミングが結びつけば、せっかくの匿名性が現実世界のあなたと紐づけられかねません。
Moneroはこの問題にも対策を用意しています。Dandelion++と呼ばれる伝播プロトコルは、取引をネットワーク全体に一斉拡散する前に、まずノードからノードへと一本道で「茎(ステム)」状に中継します。これにより、最初の発信元の特定を困難にします。それでも、本当に発信元を隠したいなら、TorやI2P経由でウォレットを動かし、自分が信頼するリモートノード、あるいは自分自身のフルノードに接続するのが最善の実践です。Tailsのようなアメニジア(健忘性)OS上でウォレットを使えば、ローカルに痕跡を残さない運用も可能です。
つまり、ステルスアドレス・リング署名・RingCTという3本の暗号的な脚に加えて、ネットワーク層という「第4の脚」を意識することが、本当の意味での匿名性につながります。チェーン分析だけでなく、ネットワーク監視にも目を向けてください。
閲覧鍵と日本の確定申告:プライバシーと記録の両立
「Moneroはプライバシー通貨だから、税金とは無縁だ」と考えるのは危険な誤解です。国税庁(NTA)は、暗号資産の売却や交換によって生じた利益を原則として雑所得として扱い、申告を求めています。プライバシーは追跡を困難にする技術的性質であって、納税義務を免除するものではありません。
ここで閲覧鍵が実務的に光ります。秘密閲覧鍵を税理士や会計士に渡せば、彼らはあなたの入金履歴を「読み取り専用」で確認できます。支出鍵を渡さない限り、1ピコネロも動かせないため、資金を盗まれる心配なく記録の整理を任せられるのです。プライバシーを保ちつつ、必要な相手にだけ必要な範囲の可視性を与える ― ステルスアドレスの設計思想は、こうした現実の税務対応にもそのまま活きてきます。
とはいえ、ウォレットがチェーンをスキャンする性質上、Moneroの取引履歴はあなた自身の手元には完全に残ります。プライバシーの強さは「他人から見えない」ことであって、「自分でも分からなくなる」ことではない、という点を押さえておきましょう。
ステルスアドレスにまつわるよくある誤解
技術が直感に反するぶん、誤解も生まれやすい領域です。代表的なものを整理しておきます。
- 「ステルスアドレスが金額を暗号化している」: 違います。金額を隠すのはRingCTとレンジプルーフの役割です。ステルスアドレスが隠すのは宛先、つまり「誰が受け取ったか」だけです。3つの柱はそれぞれ別の問題を担当しています。
- 「使い捨てだから残高がバラバラになる」: チェーン上の出力は連結不能ですが、あなたのウォレットはすべてを認識して1つの残高として合算します。利用者から見れば、ごく普通のひとつの財布です。
- 「アドレスが見えないなら送金もできないはず」: 送り手はあなたの公開アドレスから一回限りの宛先鍵を導出できます。公開アドレスは共有してよいもので、そこから送金は問題なく成立します。隠されるのは結果としてチェーンに刻まれる宛先のほうです。
- 「プライバシーは犯罪者のためのもの」: 現金で買い物をしても店員に銀行残高を見せないのと同じで、取引の秘匿は本来あたりまえの権利です。ステルスアドレスは、給与額・取引相手・資産規模を不特定多数に晒さずに済ませるための、ごく普通のプライバシー保護にすぎません。
実践ウォークスルー:交換(スワップ)を受け取る
いくらかのLitecoinをMoneroSwapper経由でMoneroに交換し、通常のXMRアドレスを注文に貼り付ける場面を想像してみてください。舞台裏では次のことが起きています。
- あなたは公開アドレスを共有する。1つの文字列で、好きなだけ何度でも安全に使い回せる。
- 送金側のウォレットが新しいランダムな
rを生成し、あなたの一回限りの出力鍵Pを計算し、取引をメモリプール(mempool)へブロードキャストする。 - 取引が承認され、
Pがチェーン上に記録される。傍観者にとっては、それは多くの中の匿名な出力の1つにすぎず、あなたへのリンクは存在しない。 - 新しいブロックをスキャンしているあなたのウォレットが、秘密閲覧鍵で
Pを再計算し、その出力を認識し、残高に反映する。
どの時点でも、あなたの本物のアドレスがブロックチェーンに触れることはありませんでした。来週、同じアドレスに2回目の交換を受け取っても、2つの出力に目に見える関連は一切ありません。これがMoneroを使う日常の現実です。プライバシーは目に見えず、自動的で、シードフレーズを安全に保つこと以外あなたに何も要求しません。
よくある質問(FAQ)
私のMoneroアドレスはステルスアドレスと同じものですか?
いいえ。あなたがコピーして共有するアドレス(「4」から始まる95文字の文字列)は、あなたの公開アドレスです。ステルスアドレスは、送り手がそこから導出してブロックチェーンに書き込む一回限りの鍵です。あなたの公開アドレス自体はチェーン上に決して現れません。現れるのは連結不能な一回限りの出力だけです。
Moneroのアドレスは安全に使い回せますか?
はい。Bitcoinと違い、Moneroのアドレスを使い回しても何も漏れません。入金はそれぞれ別個のステルスアドレスに着地し、観測者はそれをあなたの公開アドレスにも、互いにも結びつけられないからです。多くの利用者は入金を整理するためにサブアドレスを好んで使いますが、それは便利機能であって、プライバシー上の必須要件ではありません。
アドレスが隠されているなら、ウォレットはどうやって入金を把握するのですか?
ウォレットは秘密閲覧鍵を使ってすべての取引をスキャンし、各出力があなた宛てだったかどうかを判定します。これがウォレットが「同期」や「更新」を必要とする理由です。どの出力に関心があるかをあなたが明かさない限り、残高を教えてくれるサーバーは存在しません。閲覧鍵は資金を検知させてくれますが、それを実際に動かすには別の支出鍵が必要です。
閲覧鍵を共有すると、誰かにコインを盗まれませんか?
いいえ。秘密閲覧鍵は入金取引を「見る」能力だけを与えます。監査人、会計士、あるいは確定申告の際に役立つものです。送金には秘密支出鍵が必要で、閲覧鍵の保有者はそれを持っていません。ニーモニックシードは両方の鍵を再生成できるため、完全なシードは必ず秘密に保ってください。
FCMP++やSeraphisはステルスアドレスを廃止しますか?
いいえ。これらのアップグレードが対象とするのは、それぞれ送り手プライバシーと証明システム、そしてアドレス層です。一回限りで連結不能な宛先鍵という中核概念は残ります。SeraphisとJamtisは閲覧鍵とスキャン性能を洗練させることを狙っており、受取人アドレスを露出させることが目的ではありません。
ステルスアドレスがあれば、IPアドレスも隠れますか?
いいえ。ステルスアドレスが守るのはチェーン上の宛先だけです。取引をブロードキャストする際のIPアドレスは別問題で、Dandelion++が発信元の特定を難しくしてくれますが、完全ではありません。発信元まで隠したいなら、TorやI2P経由でウォレットを動かし、信頼できるリモートノードや自分のフルノードに接続するのが確実です。
ウォレットの同期が遅いのはなぜですか?
あなたの本物のアドレスはチェーン上に存在しないため、ウォレットは入金を見つけるために各取引を一つずつスキャンし、秘密閲覧鍵で照合する必要があります。「自分宛てかどうかを総当たりで確かめる」この作業が、同期(更新)に時間がかかる理由です。これは受取人プライバシーの代償であり、サーバーに残高を問い合わせる方式では決して得られない秘匿性の裏返しでもあります。
まとめ
ステルスアドレスは、Moneroのアドレスが「公開」と「非公開」を同時に成立させられる理由です。あなたは1つの文字列を世界に向けて公開しますが、そこへの支払いはすべて、チェーン上で孤立した認識不能な出力になります。送り手を隠すリング署名と金額を隠すRingCTと組み合わさることで、ステルスアドレスはMoneroに、強制的で・自動的で・すべての取引に一律に適用されるプライバシーモデルを与えます。これこそが真の代替可能性を可能にする条件なのです。
コインが届いた瞬間からその保護を得たいなら、ログなし・アカウント不要の交換でXMRを手に入れることは、暗号技術そのものと同じくらい重要です。入口で身元と紐づけられてしまえば、チェーン上でどれだけ匿名でも意味が薄れてしまうからです。匿名でMoneroを購入することもできますし、既存の残高をMoneroSwapper経由で交換することもできます。あとはステルスアドレスの仕組みが静かに残りをこなしてくれます。どのブロックエクスプローラーも、取引所も、分析者も決してあなたに遡れない、一回限りの宛先を生成しながら。
🌍 他の言語で読む