Moneroをエアギャップ・コールドウォレットで保管する方法
Moneroをエアギャップ・コールドウォレットで保管する方法
2018年、金融庁(FSA)の事実上の指導を受けてCoincheckをはじめとする国内取引所が相次いでMonero・Dash・Zcashといった匿名性の高い通貨を上場廃止にしたとき、日本のホルダーは一夜にして同じ教訓を突きつけられました。取引所に資産を預けたままにしておくことは、借り物の時間の上に立っているのと同じだということです。海外でも2024年にBinanceがMoneroを上場廃止にし、KrakenがMiCA規制への対応として欧州ユーザー向けにXMRを取り下げました。取引所が凍結も上場廃止も差押命令への提出もできない唯一の残高は、自分自身が鍵を握っている残高だけです。そして、その保管方法の頂点に立つのがエアギャップ・コールドウォレット——一度もインターネットに接続したことがなく、これからも接続しないマシンです。本記事では、バイナリの検証から最初のオフライン署名まで、それを正しく構築する手順を一通り解説します。
エアギャップは、透明性のあるチェーン以上にMoneroにとって意味を持ちます。Bitcoinならウォッチ専用アドレスを公開し、ブロックチェーンに残高を表示させて信頼することができますが、Moneroでは入金を確認するためのView鍵と、出金を承認するためのSpend鍵が暗号学的に明確に分離されています。この分離こそが、きれいなコールドストレージの分割を可能にする仕組みであり、わずかな手間で銀行金庫並みのセキュリティが手に入る理由でもあります。金庫をゼロから満たすなら、アカウント登録なしでXMRを入手できるMoneroSwapperを使い、オフラインで生成したコールドアドレスへ直接送る方法があります。
なぜMoneroにエアギャップ保管が重要なのか
ホットウォレット——スマートフォンやインターネットに接続されたデスクトップ上のもの——は、そのデバイスが持つ攻撃対象領域すべてにさらされています。マルウェア、クリップボードを書き換えるハイジャッカー、悪意あるブラウザ拡張機能、遠隔からの脆弱性攻撃などです。エアギャップ・ウォレットはネットワークを方程式から完全に取り除くため、オフラインでのみ生成・使用された秘密鍵は、オンラインで侵害されたマシン上で動くコードによって抜き取られることがありません。
- 鍵の分離が標準装備: MoneroのウォレットモデルはSpend鍵とView鍵を分割するため、署名鍵を金庫に置いたまま、オンラインのウォッチ専用ウォレットで入金を監視できます。
- 漏れるアドレス再利用がない: すべての支払いは一度限りのステルスアドレスに着金するため、入金を受け取るためにアカウントアドレスを公開しても、残高や履歴がオンラインの観察者に何も明かされません。
- 代替可能性は保管ミスを生き延びる: RingCTが金額を隠し、CLSAGリング署名が本当の支出元を覆い隠すため、コールドストレージから引き出したコインは他のXMRと見分けがつきません——引き継ぐべき「汚染されたUTXO」のラベルが存在しないのです。
- シードフレーズの最終性: 25単語のニーモニックシードがウォレット全体を復元するため、エアギャップ・マシンそのものは使い捨て可能です——失っても別のオフラインデバイスで復元できます。
トレードオフは手間です。コールドストレージからの支出は、タップ一つではなく、意図的で複数段階からなる儀式になります。その手間こそが目的です——銀行が準備金の大半を窓口の引き出しではなく金庫に保管するのと同じ理由です。めったに動かさない長期貯蓄なら、この不便さは見えません。日常的な支払い用には、少額のホットウォレットを補充しておき、エアギャップの金庫は財務本部として扱いましょう。
始める前に必要なもの
特殊なハードウェアは必要ありません。引退させた古いノートパソコンとUSBメモリ数本、あるいは専用のハードウェア署名機があれば一式組めます。重要なのは、署名環境が本当に隔離されていること、そして動かすすべてのソフトウェアが検証済みであることです。
オフライン・マシン
主流は二つのアプローチです。一つ目は恒久的にオフラインのコンピューター——Wi-FiカードとBluetoothモジュールを物理的に取り外すかファームウェアで無効化した古いノートパソコンに、ルーターに一切接続しないクリーンなLinuxをインストールしたものです。二つ目はより手軽なTailsで、USBメモリから起動する健忘症型のライブOSです。Tailsはシャットダウン時にすべてを忘れるため、毎回クリーンな状態でセッションが始まり、ウォレットファイルは別の暗号化された永続ボリュームか二本目のUSBドライブに保管できます。
検証済みのウォレットソフトウェア
何を動かすにせよ、必ず検証してください。公式のMonero GUI/CLIバンドルをダウンロードし、getmonero.orgで公開されているメンテナーの鍵に対してGPG署名を照合し、署名済みハッシュファイルとSHA-256ハッシュが一致することを確認します。この一手間が、現実世界で最も一般的な攻撃——シードをこっそり記録する改ざんされたインストーラー——を打ち破ります。軽量なコミュニティ製クライアントであるFeather Walletもコールド構成に優れており、同じ方法で検証できる再現可能ビルド(reproducible builds)を提供しています。
転送メディア
ネットワーク経路を開かずに、データはどうにかしてエアギャップを越えなければなりません。選択肢はUSBドライブ(手軽だが、USBコントローラーは技術的には攻撃ベクトルになりうる)、microSDカード、あるいは——最も慎重な選択——カメラでスキャンするアニメーションQRコードで、これは実行可能なペイロードを一切運びません。多くの人にとっては、この用途専用にしたUSBメモリ一本が安全性と利便性のバランスとして妥当です。
コールドストレージの選択肢を比較する
唯一絶対の「最良」構成は存在しません。正解は、どれだけの額を保管し、どれくらいの頻度で触るかによって変わります。下の表は、Moneroに特化して主流の三つのアプローチを比較したものです。
| 選択肢 | 長所 | 短所 |
|---|---|---|
| 専用オフラインノートPC(Monero CLI/GUI) | 完全な制御が可能。コールド署名のワークフロー全体に対応。古いハードを持っていれば無料。信頼すべきサードパーティ製ファームウェアがない | かさばる。OS衛生は自分で管理する必要がある。初期設定に時間がかかる |
| Tails USB(健忘症型ライブOS) | 起動のたびにクリーンな状態。携帯可能。既定でディスクに何も残らない。検証が容易 | 永続化の設定に学習コストがある。永続ボリュームに保存しない限りバイナリを毎回再検証する必要がある |
| ハードウェアウォレット(Ledger / Trezor Model T) | Spend鍵がセキュアエレメントから出ない。コンパクト。オンラインのウォッチ専用ウォレットと連携できる | ファームウェアがクローズド(Ledger)。XMRの同期が遅い。ベンダーのサプライチェーンを信頼することになる |
ハードウェアウォレットとエアギャップ・ノートPCのアプローチは、相容れない思想ではありません——どちらもSpend鍵をインターネットから遠ざけます。ハードウェアデバイスは、本質的には小さな画面の付いた専用設計のエアギャップ署名機です。監査可能性を重視し、余ったハードがすでに手元にあるなら、オフライン・ノートPCのルートが最も深い制御を与えてくれます。ポケットに入って誰でも扱える堅牢さが欲しいなら、ウォッチ専用のデスクトップウォレットと組み合わせたハードウェアウォレットに勝るものはなかなかありません。
エアギャップMonero金庫の構築手順
アーキテクチャは二つのウォレットからなるシステムです。コールドウォレットはオフライン・マシン上に存在し、両方の鍵を保持します——あなたのSpend鍵が存在する唯一の場所です。ウォッチ専用ウォレットはインターネット接続されたマシン上に存在し、View鍵と公開アドレスのみを保持するため、入金を確認して未署名のトランザクションを組み立てることはできますが、支出を承認することは決してできません。以下がライフサイクルの全体像です。
- オフライン環境を準備して検証する。 Tailsまたはエアギャップ・ノートPCを起動します。検証済みのMoneroバイナリをUSB経由でコピーし、オフライン・マシン上でGPG署名とSHA-256ハッシュをもう一度確認してから展開します。この時点以降、このマシンをいかなるネットワークにも接続しないでください。
- コールドウォレットをオフラインで生成する。
monero-wallet-cliを実行し、新しいウォレットを作成します。25単語のニーモニックシードを紙に書き留めてください——絶対に撮影せず、オンラインのデバイスに入力しないこと。このシード一つでウォレット全体が復元されるため、紙はそれが表す金(きん)と同じように扱い、火と水に強いスチール製バックアップを検討しましょう。 - ビュー専用の認証情報をエクスポートする。 コールドウォレットで
export_view_keyを実行します(または秘密View鍵とプライマリアドレスを控えます)。View鍵とアドレスを転送メディアに保存します。これは金庫から出る唯一の秘密情報であり、設計上、資金を動かすことはできません。 - ウォッチ専用ウォレットをオンラインで作成する。 普段使いのコンピューターで、View鍵とアドレスを用いて
monero-wallet-cli --generate-from-view-key(またはGUIの「鍵からウォレットを作成」オプション)を使います。リモートノード、あるいはより望ましくは自前のノードに対して同期させます。このウォレットはSpend鍵を一切保持せずに、残高と入金を表示するようになります。 - 資金を受け取る。 プライマリアドレスか新しいサブアドレスを共有してXMRを受け取ります。各支払いはオンチェーン上で一度限りのユニークなステルスアドレスに着金し、ウォッチ専用ウォレットがView鍵でそれを復号し、残高が増えていくのを表示します。
- 未署名トランザクションをオンラインで構築する。 支出したいとき、ウォッチ専用ウォレットはまず自分のアウトプットを(
export_outputsで)オフラインウォレットへエクスポートし、コールド側が自分の管理対象を把握できるようにします。次に未署名トランザクションを構築し(transferがunsigned_monero_txファイルを書き出します)、得られたキーイメージをインポートします。 - オフラインで署名する。 未署名トランザクションをエアギャップ・マシンへ運びます。コールドウォレットを読み込み、
sign_transferを実行し、オフライン画面で宛先と金額を注意深く確認してから、signed_monero_txファイルを生成します。Spend鍵はここで、そしてここでのみ署名します。 - オンラインでブロードキャストする。 署名済みファイルをオンラインのウォッチ専用ウォレットへ戻し、
submit_transferを実行します。ウォレットはそれをメモリプールへ中継し——転送中はDandelion++によって保護されます——ネットワークが他のトランザクションと同様に承認します。
「残高をちょっと確認するだけ」と言って、一度でもオンラインになったことのあるマシンでコールドウォレットの25単語シードを復元してはいけません。その一回のショートカットこそ、自己保管における損失の大半が実際に起きる原因です。
最初の一回はエアギャップのリズムを覚えている最中なので遅く感じます。二、三回トランザクションをこなせば、エクスポート→署名→送信のループは体に染み付き、表計算ソフトを開くのと同じ落ち着きで八桁の残高を動かせるようになります。
実際のセットアップ例
東京で働くあるフリーランサーを考えてみましょう。彼女は国内取引所からの匿名通貨の上場廃止が続いたことをきっかけに、貯蓄をカストディアル(預託型)のプラットフォームに信頼して預けるのをやめると決めました。中古で1万円ほどのThinkPadを購入し、Wi-Fiカードを取り外し、ウォレットファイル用に暗号化された永続ボリュームを備えたUSBメモリにTailsをインストールしました。Moneroバイナリをgetmonero.orgの署名鍵に対して検証したのち、コールドウォレットをオフラインで生成し、シードを別の場所に保管したスチール製バックアッププレートに刻印しました。
普段使いのノートPCでは、View鍵からウォッチ専用ウォレットを作成し、それを自前の剪定済み(pruned)ノードに向けました。数週間ごとに、円で購入したBTCをXMRへスワップし——例えばMoneroSwapperのアカウント不要のフローを通じて——新しいサブアドレスへ直接送ることで金庫を補充します。たまの請求書を支払うときは、オンラインで未署名トランザクションを構築し、USBメモリをThinkPadまで歩いて運び、sign_transferで署名し、ブロードキャストします。支出一回あたりの限界コストはおよそ三分、Spend鍵の露出はゼロです。
このパターンは数万円から一生分の貯蓄まで、形を変えずにスケールします。フリーランサーの生活防衛資金を守るのと同じワークフローが、ジャーナリストの取材源保護のための予算や、家族の長期的な価値保存を守ります——脅威モデルは異なっても、コールドストレージの規律は変わりません。
ウォッチ専用ウォレットは自前ノードとTorで守る
エアギャップ構成では署名側の安全に注目が集まりがちですが、オンラインのウォッチ専用ウォレットにも見落としがちなプライバシーの穴があります。残高確認やトランザクション構築のために他人のリモートノードへ接続すると、そのノードの運営者はあなたのIPアドレスと、あなたが照会しているView鍵に紐づくアウトプットを観察できる立場に立ちます。Moneroはオンチェーンで取引を秘匿しますが、ネットワーク層でのメタデータ漏洩までは自動では守ってくれません。
対策は二つの層からなります。第一に、可能なら自前のフルノード(容量を節約したい場合は剪定済みノード)を運用し、ウォッチ専用ウォレットをそこに向けることです。これにより、第三者にView鍵の照会を委ねる必要がなくなります。第二に、ノードへの接続をTor経由にすることで、IPアドレスと地理的位置を隠します。Tailsはすべての通信をTorに通すため、ウォッチ専用ウォレットをTails上で動かす構成は、署名側だけでなく監視側のプライバシーも同時に高めてくれます。日常的に大きな残高を監視するなら、この一手間は強く推奨されます。
コールド署名コマンド早見表
慣れるまでは、どのコマンドをどちら側で実行するのか混乱しがちです。下の早見表を手元に置いておくと、エクスポート→署名→送信のループを間違えずに回せます。
| 段階 | 実行する側 | 主なコマンド |
|---|---|---|
| コールドウォレット生成 | オフライン | monero-wallet-cli |
| View鍵のエクスポート | オフライン | export_view_key |
| ウォッチ専用ウォレット作成 | オンライン | --generate-from-view-key |
| アウトプットのエクスポート/インポート | オンライン → オフライン | export_outputs / import_outputs |
| 未署名トランザクション構築 | オンライン | transfer(unsigned_monero_tx生成) |
| オフライン署名 | オフライン | sign_transfer(signed_monero_tx生成) |
| ブロードキャスト | オンライン | submit_transfer |
日本のホルダーが押さえておきたい税務上の注意点
コールドストレージへの移行を考えるとき、日本居住者が混同しがちなのが「保管」と「課税イベント」の境界です。国税庁の現行の取り扱いでは、暗号資産の取引で生じた利益は原則として雑所得に区分され、総合課税の対象になります。ここで重要なのは、自分が管理する取引所ウォレットからエアギャップのコールドアドレスへXMRを移すだけの行為——つまり自己保管への単なる移動——は、所有者が変わらないため、それ自体では譲渡(売却)にあたらないという点です。資産を別の財布に移しただけで、利益が確定したわけではないからです。
一方で、コールドウォレットからXMRを使って商品やサービスの代金を支払ったり、別の暗号資産に交換したりした瞬間は、取得価額との差額が所得として認識されうる課税イベントになります。エアギャップ構成は税負担を増やしも減らしもしませんが、署名のたびに取引日時・数量・その時点の時価を記録しておく習慣は、確定申告の際に大きな助けになります。Moneroは設計上オンチェーンの履歴が追えないため、自分で取引記録を残すことが一層重要です。具体的な税額計算や損益通算の可否については、暗号資産に詳しい税理士に相談することをおすすめします。
エアギャップ運用でやりがちな失敗とその回避
技術そのものより、運用上のうっかりミスで資産を失う人の方が多いのが現実です。構築後に陥りやすい落とし穴を、回避策とともにまとめておきます。
- シードをデジタルで残してしまう: 「念のため」とスマートフォンで紙のシードを撮影したり、クラウドメモに打ち込んだりした瞬間、エアギャップは無意味になります。撮影・入力・コピーは一切せず、紙とスチールの物理バックアップだけに留めてください。
- バイナリの検証を一度きりで済ませる: 最初のダウンロード時に署名を照合しても、ネットワークアップグレード後に新しいバイナリを入れる際に検証を省く人が少なくありません。更新のたびに、オフライン・マシン上でGPG署名とSHA-256ハッシュを必ず再確認しましょう。
- 署名前に宛先を確認しない: クリップボードを書き換えるマルウェアはオンライン側に潜みます。
sign_transferを実行する際は、オフライン画面に表示された宛先アドレスと金額を一字一句、目視で確認してから承認してください。これがアドレス差し替え攻撃に対する最後の砦です。 - 転送用USBを他の用途と兼用する: エアギャップを越えるメディアを普段使いのPCにも挿していては、隔離の意味が薄れます。転送専用のUSBメモリを一本決め、それ以外には使わないようにします。
- バックアップを一箇所に集める: シードを刻んだスチールプレートと、ウォレットを保管するUSBを同じ引き出しに入れておくと、火災や盗難で一度に失います。地理的に離れた複数の場所に分散させましょう。
日本特有の事情として、地震や水害といった自然災害への備えも無視できません。紙のシードは火事はもちろん、浸水や経年劣化でも判読不能になります。だからこそ、耐火・耐水性のあるスチール製プレートにシードを刻む方法が推奨されるのです。さらに踏み込むなら、25単語を複数の安全な場所——例えば自宅の耐火金庫と、離れた場所にある貸金庫——に分けて保管し、どこか一箇所が被災しても復元できるようにしておくと安心です。災害大国である日本では、「鍵を守る」とは盗難対策だけでなく、物理的な消失への備えでもあると心得ておきましょう。
よくある質問
Moneroを受け取るためにエアギャップ・マシンを起動し続ける必要がありますか?
いいえ。入金はブロックチェーンに記録され、View鍵を使ってオンラインのウォッチ専用ウォレットが検出します。オフライン・マシンは、出金トランザクションに署名したいときだけ電源を入れればよいのです。何ヶ月も引き出しの中で電源を切ったままにしておいても、起動すれば残高はそのまま残っています。
ハードウェアウォレットはフル装備のエアギャップ・ノートPCの代わりになりますか?
ほとんどのユーザーにとっては、なります。LedgerやTrezor Model Tは、Spend鍵を接続先のコンピューターに決して露出させないセキュアエレメント内に保持し、エアギャップと同じ中核的な目的を達成します。トレードオフは、ベンダーのクローズドなファームウェアとサプライチェーンを信頼することになる点です。脅威モデルにそのリスクが含まれるなら、オフライン・ノートPCやTails上の検証済みオープンソース構成が、完全な監査可能性を与えてくれます。
オフライン・コンピューターが故障したり盗まれたりしたらどうなりますか?
25単語のニーモニックシードが安全であれば、何も失われません。シードはSpend鍵とView鍵の両方のマスターバックアップです。別のオフライン・マシンで復元すれば、ウォレット全体——残高、履歴、支出能力——が元通りに戻ります。デバイスそのものを守ることよりも、シードを守ること(理想的にはスチールに刻み、別の場所に保管すること)の方が重要なのは、このためです。
View鍵を露出させるのは危険ですか?
View鍵があれば、誰かがあなたの入金トランザクションと残高を見ることはできますが、1ピコネロも支出することはできません。露出はあなたのプライバシーを害するのであって、資金を害するのではありません。機密として扱い——公の場に投稿しないこと——ただし最悪の場合でも、あなたのView鍵だけを手にした攻撃者は観察者であって、決して盗人ではないと理解しておきましょう。
今後のプロトコルアップグレードでコールドウォレットが壊れることはありますか?
いいえ。FCMP++(Full-Chain Membership Proofs)や、より長期的なSeraphis/Jamtisのウォレット再設計といった大型アップグレードは、トランザクションがメンバーシップを証明する方法やアドレスの仕組みを変えますが、あなたのシードは依然として資金の根であり続けます。ウォレットソフトウェアを更新して再スキャンするだけで、シードから導出される鍵はハードフォークをまたいで引き継がれます。ネットワークアップグレード後に取引する前には、必ず同じ検証済みチャネルを通じてオフラインのバイナリを更新してください。
まとめ
エアギャップMonero金庫は、ほとんどコストがかからないのにほとんどすべてを変える、稀有なセキュリティ向上策です。引退させたノートパソコン、USBメモリ、検証済みのダウンロード、そしてスチールに刻まれたシードがあれば、どんな取引所の上場廃止も、アカウント凍結も、遠隔からの脆弱性攻撃も手出しできない保管が手に入ります。二つのウォレットの分割——オンラインのウォッチ専用View鍵と、オフラインに封じたSpend鍵——はまさにこのために設計されており、あなたはMoneroの設計に逆らうのではなく、それに沿って作業することになります。
忘れてはならないのは、この仕組みが一度きりの設定ではなく、繰り返し使うほど習熟していく運用だという点です。最初の数回は手順書を見ながらでも構いません。回を重ねるごとに、検証・署名・記録という一連の動作が当たり前になり、やがて「自分の鍵を自分で持つ」ことが特別な作業ではなく日常になります。まず金庫を築き、それから自分の条件で資金を入れましょう。カストディアルなプラットフォームに身元を引き渡すことなくXMRを追加する準備ができたら、MoneroSwapperを通じてMoneroへスワップし、オフラインで生成したコールドアドレスへ直接送ることができます——あなたの貯蓄を本当の意味であなたのものに保つ構成の、最後の輪を閉じるのです。
🌍 他の言語で読む