パソコンは侵害されていると想定する
暗号資産の盗難のほとんどは、暗号を破って起きるわけではありません。始まりはごく普通のパソコンです。AirNox Wallet はそのパソコンのために設計されていて、そのパソコンはすでに失われている、という前提で動きます。

目次
脅威は数学ではなく、マシンにある
資金が実際にどうやってウォレットから出ていくのか、考えてみてください。開発者のツールチェーンに入っているパッケージに、余計なものが紛れ込んでいる。ブラウザ拡張機能(browser extension)が、誰も中身を読んでいないアップデートを配信する。文書に見えるものが、実は文書ではない。Web ページがあるトランザクションを見せておいて、別のトランザクションへの署名を求める。クリップボード(clipboard)ツールが、貼り付ける直前にアドレスをすり替える。
どの攻撃も暗号には触れていません。どれも必要とするものは同じです。インターネットにつながったマシン上にある秘密鍵(private key)、またはあなたの承諾です。パソコンが標的になるのは、そこに鍵があるからです。
だから AirNox Wallet の最初の設計判断はシンプルです。鍵をそこに置かないこと。
鍵をパソコンの外へ
AirNox Wallet はデスクトップで動きます。単体でも完全なネイティブウォレットで、シード(seed)は金庫に封印されており、日常的な操作にはそれだけで堅実な構成です。AirGap モードではさらに一歩進み、資金を動かせる鍵を一切持ちません。持つのは、あなたが見せることにしたアドレスだけです。それを使って、ウォレットがオンラインで行うことをすべてこなします。ネットワークと通信し、残高と履歴を読み込み、未署名のトランザクションを組み立て、それをチェックし、署名されて戻ってきたものをブロードキャストします。
署名を行うのは AirNox Vault です。一度もオンラインにならない Android スマホで動くアプリで、シードを保持しています。届いたリクエストを、これから署名するバイト列そのものからデコードし、操作の内容、金額、相手、ネットワークを表示して、あなたが Accept(承諾)を押したときだけ署名します。
両者の間にあるのがエアギャップ(air gap)です。スマホにはインターネットへの経路がなく、行き来するのは、片方向に進むリクエストと、戻ってくる署名だけです。

それぞれの経由地の役割
リクエストの出発点は、Web ページのこともあれば、ウォレット自体のことも、ウォレットに接続した AI エージェントのこともあります。どこから始まっても、たどる経路は同じです。
ブラウザ拡張機能は、Web サイトが期待する標準のウォレットインターフェースで応答します。鍵は持たず、何にも署名しません。リクエストを、ローカルのチャネルでデスクトップに転送します。
デスクトップはリクエストをデコードしてチェックします。標準的な操作を認識し、それに似ているだけのものには警告を付け、承認(allowance)とスペンダー(spender)を確認して、未署名のトランザクションを組み立てます。そしてそのトランザクションを、QR コード、Bluetooth LE、NFC のいずれかでスマホに渡します。
スマホは、自分が署名するまさにそのバイト列から、リクエストをもう一度デコードし、わかりやすい言葉であなたに見せます。デスクトップによるリクエストの説明は、あくまで主張です。スマホの表示こそが真実です。あなたはそれを読み、Accept を押すか、押さないかを決めます。戻っていくのは署名だけです。
鍵の置き場所が、マルウェア(malware)にできることを決める
AirNox には2段階の保護があります。よくある構成の中で最も弱いもの、つまりブラウザ拡張機能として動く従来型のウォレットと並べてみると、違いがよくわかります。

従来型の拡張機能ウォレットは、パソコンの中で最も攻撃にさらされたプログラムの内側で動きます。その秘密情報を守っているのは、最新の GPU なら大規模に総当たり(brute force)できる暗号化です。ページに注入されたコードから手が届き、画面をキャプチャするものなら何からでも中身が見えてしまいます。トラッカーや広告を同梱し、アドレスのすり替えには何の対策もなく、そのうえ一日中リソースを消費し続けます。
デスクトップの AirNox Wallet は、それとは種類の違うプログラムで、自分で自分を守ります。ネイティブの C++ で書かれていて、注入先になるスクリプトエンジンも、汚染されるページもありません。シードをメモリに置くのは必要な間だけで、使い終わればすぐに消去します。周囲のプロセスと、自分に読み込まれたライブラリを監視しているので、外部のコードが気づかれないままウォレットの中で動くことはありません。すべてのリクエストをデコードしてチェックするので、あなたが承諾(approve)するものは、あなたが見ているものと一致します。クリップボードを監視してアドレスのすり替えを見張り、自分のウィンドウは画面キャプチャに映らないようにしています。保存された秘密情報は、メモリハード(memory-hard)な Argon2id で封印されたうえでパソコンの TPM 2.0 チップに結び付けられていて、GPU でも近道はできません。そして、トラッカーは一切含みません。日常的な操作なら、それ単体で堅実な選択です。そしてこのシリーズで紹介するセキュリティ機能は、スマホを使うかどうかに関係なく、すべてこのデスクトップウォレットに適用されます。
AirGap は、その上に重ねる最上位の層です。ここまでの内容はすべてそのまま有効で、そのうえでシードがオフラインのスマホに移ります。OS 全体を掌握した攻撃者でさえ、パソコンの中にコピーできるものを見つけられず、最終判断を下す画面を書き換える手段もありません。受取アドレスのすり替えだけは、どの構成でも一部が開いたままになる手口です。アドレスポイズニング(address poisoning)が狙うのはソフトウェアではなく、あなたの目だからです。両方のデバイスに表示されるアドレス画像は、それを見抜くためにあります。
これで解決しないこと
オフライン署名端末(signer)は、何に署名しようとしているのか、その真実を見せてくれます。それでも、あなたが同意してしまうことまでは止められません。シードのバックアップは引き続きあなたの責任で、パスワードマネージャーではなく、紙や金属板に残すものです。そして、あなたを脅してロックを解除させる相手から守ってくれるウォレットはありません。限界は、あなたが自分で気づく前に、私たちの口から伝えておきたいと思います。
このシリーズの残りの記事では、各部分を一つずつ見ていきます。署名端末が、すでに持っているスマホである理由、ギャップを越える3つの方法、スマホが電波上で姿を見せない仕組み、通信経路を決して信頼しない理由、スマホが見せるもの、そしてスマホが残す記録です。
シリーズ記事一覧
- パソコンは侵害されていると想定する
- Mass Adoption Security:署名するのは、すでに持っているスマホ
- ギャップを越える3つの方法:QR コード、Bluetooth LE、NFC
- 電波上で姿を見せない:スキャンしても見つからない署名端末
- 通信経路は決して信頼しない
- スマホが見せるもの:署名端末上でのトランザクション解析
- スマホは自分の記録を残す
- デスクトップの金庫:Argon2id と、推測に強いプロファイル
- ブラウザウォレットなしで dApp を使う
- ルールのある MCP サーバー:上限の範囲で動く AI エージェント
- すべてを、1つの守られたウォレットで
- 小さく、ネイティブに:C++、JavaScript ランタイムなし、ワークステーションから Raspberry Pi まで