全12本中12本目3分で読めます

小さく、ネイティブに:C++、JavaScript ランタイムなし、ワークステーションから Raspberry Pi まで

ウォレットはセキュリティのためのプログラムです。監査できるほど小さく、存在を忘れるほど速く、自分のものではない可動部品を持たないものであるべきです。

モニター、ノートパソコン、シングルボードコンピューターの上に浮かぶ C++ のチップ
プラットフォームごとに、ネイティブバイナリが1つ。
目次

C++ と Qt

AirNox Wallet は C++ で、Qt ツールキットを使って書かれています。暗号処理、チェーンのコード、トランザクションの組み立て、チェックはすべて1つのネイティブコアにあり、プラットフォームごとにコンパイルされます。インターフェースもネイティブです。ウォレットを描画する組み込みブラウザも、ウォレットを動かすスクリプトエンジンもありません。

その結果、体感できる違いが3つ生まれます。ウォレットは一瞬で起動します。アイドル中は静かで、マシンがほかの作業に使えるだけの余裕を残します。そして、自分で自分を更新したり、パッケージを読み込んだり、どこかから取得したコードを実行したりするランタイムが、その下にありません。

入っていないもの

JavaScript ランタイムなし。ウォレットの侵害のかなりの部分は、パッケージのエコシステムとスクリプト注入を経由しています。スクリプトエンジンを持たないウォレットは、その標的になりません。

WebView なし。インターフェースはブラウザのコンポーネントではなく、ツールキットが描画します。注入先になるページはありません。

テレメトリー、アナリティクス、トラッカーなし。ウォレットが通信するのは、ブロックチェーンのノードと、あなたが使うことにしたスワップやブリッジのプロバイダーだけです。私たちとは通信しません。勝手に外部へ通信することはなく、作成するアカウントもありません。

Windows、Linux、macOS、Raspberry Pi の4つのプラットフォームのタイルと、×印の付いた3項目:JavaScript ランタイムなし、WebView なし、テレメトリーなし
動く場所と、省いたもの。

プラットフォーム

デスクトップアプリケーションは、Windows、Linux、macOS で、それぞれのネイティブビルドとして動きます。同じコードが Raspberry Pi クラスのハードウェアでも動くので、AirNox は組み込み用途にも向いています。両替所の端末、キオスク端末、バックオフィスの署名ステーション。画面付きの小さなボード、USB NFC リーダー、そしてウォレットがあれば、エアギャップ(air gap)に対応した、それだけで完結する業務端末になります。鍵は、リーダーにタップするスマホの中です。

1つの署名コア

スマホのアプリとデスクトップは、同じコアを共有しています。鍵を導出し、トランザクションを組み立て、画面表示のためにデコードするコードは、両方のデバイスで同じもので、それぞれ向けにコンパイルされています。チェーンごとに監査すべき実装は1つだけで、一致させなければならない実装が2つあるわけではありません。片方の修正は、もう片方の修正でもあります。

なぜ大事なのか

小さくネイティブであることは、好みのスタイルの話ではありません。依存関係の一つひとつが、他人のミスが自分のミスになる場所です。ランタイムの一つひとつが、攻撃対象領域です。厳密には必要のないネットワーク呼び出しの一つひとつが、何かを外に漏らします。単一のネイティブプログラムで、あなたが指定したノードとだけ通信するウォレットなら、その挙動を筋道立てて理解できます。それが、スマホ上の署名端末(signer)から机の上のウィンドウまで、製品全体に課している基準です。

シリーズ記事一覧

  1. パソコンは侵害されていると想定する
  2. Mass Adoption Security:署名するのは、すでに持っているスマホ
  3. ギャップを越える3つの方法:QR コード、Bluetooth LE、NFC
  4. 電波上で姿を見せない:スキャンしても見つからない署名端末
  5. 通信経路は決して信頼しない
  6. スマホが見せるもの:署名端末上でのトランザクション解析
  7. スマホは自分の記録を残す
  8. デスクトップの金庫:Argon2id と、推測に強いプロファイル
  9. ブラウザウォレットなしで dApp を使う
  10. ルールのある MCP サーバー:上限の範囲で動く AI エージェント
  11. すべてを、1つの守られたウォレットで
  12. 小さく、ネイティブに:C++、JavaScript ランタイムなし、ワークステーションから Raspberry Pi まで

事前登録

メールアドレスを登録すると、リリースのお知らせをお送りします。それ以外のメールは送りません。