リカバリーフレーズ
BitTool Signer のウォレットは標準的な BIP39 ウォレットです。BitTool Signer で作成したフレーズは、同じ 導出パス を使う任意の BIP39 ウォレットで復元でき、他のウォレットのフレーズを インポート することもできます。
ウォレットの作成
作成は 4 つのステップで行います。
- 生成。 ユーザーはウォレットに名前を付け、24 単語(デフォルト)か 12 単語かを選び、必要に応じて BIP39 パスフレーズ を追加します。フレーズは、システムの CSPRNG を使って端末上で生成されます(詳細)。
- バックアップ。 フレーズは、後述のバックアップ形式のいずれかで表示されます。
- 確認。 すべての単語が伏せて表示され、そのうち 4 か所(18 単語以上の場合は 5 か所)が空欄になります。ユーザーは、シャッフルされた単語を正しい順にタップして空欄を埋めます。間違えるとその試行はクリアされます。
- ウォレットパスワードの設定。 このパスワードで、この iPhone 上のフレーズが暗号化されます(詳細)。
ウォレットが一覧に表示される前に公開インデックス(アドレスと xpub)が導出・保存されるため、すぐにペアリングできます。
バックアップ形式
どの形式も最初は非表示で、1 回タップすると表示されます。スクリーンショットの撮影、画面収録、アプリからの離脱によって再び非表示になります。スクリーンショットを撮った場合は、画像を削除するよう警告も表示されます。
単語
12 または 24 の単語を番号付きのグリッドで表示します。ほとんどの人が書き留めるべきバックアップです。
QR コード
単語を半角スペース 1 つで区切ったプレーンテキストの QR コードで、ウォレットを自分の別の端末に移すためのものです。QR コードからフレーズをインポートできるウォレットなら読み取れ、BitTool Signer は正確な綴りのまま読み戻します。BIP39 パスフレーズは決して含みません。アプリがこの QR コードの保存、印刷、共有を提案することはありません。
リカバリーカード(2-of-3)
単語を 3 枚のカードに分割し、どの 2 枚でもフレーズ全体を復元できるが、1 枚だけでは復元できないようにします。位置は 3 つずつの行に並べられ、各カードは行ごとに 1 単語を省き、省く位置は行ごとに 1 つずつずれていきます。
card index (0, 1, 2) that leaves out word position p (0-based) = (⌊p / 3⌋ + p mod 3) mod 3
12 単語の場合:
| 位置 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| カード 1 | — | ✓ | ✓ | ✓ | ✓ | — | ✓ | — | ✓ | — | ✓ | ✓ |
| カード 2 | ✓ | — | ✓ | — | ✓ | ✓ | ✓ | ✓ | — | ✓ | — | ✓ |
| カード 3 | ✓ | ✓ | — | ✓ | — | ✓ | — | ✓ | ✓ | ✓ | ✓ | — |
配置は単語数だけで決まるため、別のタイミングや別の端末で作成したカードでも必ず組み合わせられます。各カードには、省いた位置が記載されています。
カード 1 枚でも、フレーズの 3 分の 2 が明らかになります。推測すべき残りの情報量は、欠けている単語 1 つにつき 11 ビットから、チェックサムのビットを差し引いたものです。
| 単語数 | カードあたりの欠落 | 推測すべき残り |
|---|---|---|
| 12 | 4 | 40 ビット:本気の攻撃者なら現実的に破れる |
| 15 | 5 | 50 ビット |
| 24 | 8 | 80 ビット |
12 単語と 15 単語のフレーズでは、各カードをフレーズ全体と同じように厳重に保管するか、24 単語を使うよう、アプリがユーザーに警告します。リカバリーカードにパスフレーズが含まれることはありません。
保存される内容
Vault は、フレーズを正準な単語(Unicode NFC)として、BIP39 パスフレーズを入力されたとおりに保持します。フレーズとパスフレーズが平文のファイルに書き込まれることも、iPhone の外に出ることもなく、上記の明示的なリカバリーフレーズ QR コードを除き、どの QR コードにも含まれません。