このページでは、デバイスの種類ごとに何が動くのか、そしてウォレットごとに挙動が異なる理由を説明します。Rand Wallet はどれも、シェルが異なるだけの同一のウォレットです。フルノード自身のクレートからビルドされた 1 つの Rust コアが、すべてのデバイスで鍵を保持し、暗号処理を行います。実質的な違いはメモリだけです。バンドル証明のピークは約 6 GB に達します。デスクトップや大型のスマートフォンならその場で生成でき、それより小さいデバイスでは、この 1 件の証明をプローバーに任せます。各クライアントのダウンロードとビルド手順は /clients にあります。
1 つのコア、5 つの形
| デバイスとクライアント | 内部のコア | 送金の証明 | 支払い鍵の保管場所 |
|---|---|---|---|
| iPhone: iOS アプリ、iOS 16 以降 | XCFramework | メモリが約 8 GB あれば 1~2 分で生成します。なければペアリングしたプローバーを通します | Keychain。デバイスのロックが解除されている間のみ利用でき、同期はされません |
| Android: Android アプリ、Android 8 以降 | ネイティブライブラリ | メモリが約 8 GB あれば、フォアグラウンドサービスで生成します。なければペアリングしたプローバーを通します | Android Keystore が保持する鍵で暗号化 |
| ノート PC とデスクトップ: macOS、Windows、Linux 向けのデスクトップアプリ | Rust クレート(リンク済み) | マシン上で生成します。ノート PC の CPU で約 1 分です。RAM が 8 GiB 未満の場合は開始しません | パスワードボールト(AES-256-GCM、PBKDF2 の反復回数 600,000 回)。ロック解除中は、アプリのメモリ内にのみ存在します |
| ブラウザ: Chrome と Firefox の拡張機能、Web ウォレット | WebAssembly | 生成しません。WebAssembly が使えるのは 4 GiB であるため、バンドル証明は常にペアリングしたプローバーが生成します | 同種のボールト。ロック解除中は、ページのメモリ内、またはタブのセッションストレージ内にあります |
ノート PC とデスクトップは同じデスクトップアプリを実行します。違いは、マシンが証明に充てられるメモリだけです。いずれかで作成したウォレットは、他のデスクトップ環境や rand コマンドラインにインポートでき、その逆も可能です。鍵ファイル、アドレス形式、ルールはどこでも同じです。
chain 20 で送金できるウォレット
2026-10-01 06:17 UTC から稼働している chain 20 は、すべての証明と署名済みメッセージをそのジェネシスハッシュに束縛します。そのため、chain 20 で送金するにはウォレットに fullnode v0.6.8 が必要です。Rand Wallet v0.6.8(2026-10-01 リリース)がそのウォレットです。すべてのアプリのコアが fullnode v0.6.8 をベンダリングしており、バンドル証明は既定では RandProtocol のプローバーが生成します。プライバシーを重視する場合は、自前のプローバーを選べます。chain 19 向けにビルドされた 0.6.7 のアプリは chain 20 で送金できないため、更新してください。fullnode v0.6.8 リリースの rand コマンドライン(コマンドライン)でも送金でき、同じ鍵ファイルを使えます。
すべてのクライアントが行うこと
- 支払い鍵をデバイス上に保持します。 鍵はオペレーティングシステムの乱数から生成され、暗号化されて保存されます。どのクライアントも鍵をどこにも送信せず、ネットワークには鍵の送信先となるアカウントもありません。
- 自分のノートを見つけます。 ビューイングキーでチェーンをスキャンするため、どのノートが自分のものかをサーバーが知ることはありません。
- 承認証明を自分で生成します。 送金には 2 つの証明が付きます。小さい方は支払い鍵に対する証明で、数秒で済み、常にデバイス上で生成されます(バリデーター、アグリゲーター、プローバー)。
- バンドル証明を用意します。 メモリに余裕があればデバイス上で生成し、なければペアリングしたプローバーに任せます。返ってきた証明は、送信前にすべて検証します。
- 任意の RPC ノードに送信します。 送信する内容は、すべてのノードに見えるものと同じです。コミットメント、ナリファイア、封印されたエンベロープ、手数料、証明です。
プローバーのペアリング
メモリが不足しているスマートフォンと、すべてのブラウザウォレットは、バンドル証明のためにプローバーをペアリングします。同じコンピューター上であれば、デスクトップアプリがその役を担います(設定 → Prove for my other devices でリンクを生成し、ブラウザウォレットの設定 → Prover に貼り付けます)。それ以外の環境では、自分で運用する rand-prover(ノードの運用)か、prover.randprotocol.org のバリデーターのプールを使います。
ペアリングしたプローバーには、ウォレットのビューイングキーとワンタイムソルトが送られます。支払い鍵は送られません。プローバーはそのウォレットの過去と将来のすべての履歴を読めますが、支払いはできません。その履歴を見せてもよいと考えるプローバーだけをペアリングしてください。完全なプライバシーが必要な場合は、デスクトップまたは 8 GB のスマートフォンで証明を生成するか、自前のプローバーを運用してください。