BIP-39 Passphrase(25番目の単語):高度なウォレットセキュリティ
BIP-39 passphrase(一般に「25番目の単語」と呼ばれます)は、暗号資産ウォレットで利用できるセキュリティ機能の中でも特に強力でありながら、誤解されやすい機能の1つです。これは、ユーザーが選んだ文字列をシード導出プロセスに追加し、同じニーモニックフレーズからまったく異なる鍵とアドレスのセットを生成します。正しく使えば、シードフレーズ漏えいに対する多層防御になります。不注意に使うと、資金の永久喪失につながる可能性があります。
このガイドでは、passphraseの仕組み、使うべき場面、追加されるリスク、安全な実装方法を正確に説明します。
Passphraseの仕組み
技術的メカニズム
BIP-39 standard で説明されているとおり、シード導出プロセスは PBKDF2-HMAC-SHA512 を使用します。
Seed = PBKDF2(
password = mnemonic_words,
salt = "mnemonic" + passphrase,
iterations = 2048,
key_length = 512 bits
)
passphraseを設定しない場合、saltは単なる文字列 "mnemonic" です。passphraseを指定すると、saltは "mnemonic" + "YourPassphrase" のように連結されます。saltが異なるため、PBKDF2の出力は完全に変わり、結果としてマスターキー、さらに derivation paths、秘密鍵、公開鍵、アドレスもすべて異なります。
重要な特性
すべてのpassphraseは有効です。 passphraseにはチェックサムや検証機構がありません。空文字、1文字、500文字の文を含むあらゆる文字列で有効なウォレットが生成されます。誤ったpassphraseを入力してもエラーメッセージは出ず、別の(通常は空の)ウォレットが静かに開かれます。
同じニーモニックでも、別のウォレットになります。 24単語ニーモニックに passphrase "alpha" を使った場合と、同じニーモニックに passphrase "bravo" を使った場合では、まったく別のウォレットになります。攻撃者が検出できる暗号学的な関係はありません。
大文字小文字とエンコーディングは重要です。 "MyPassphrase" と "mypassphrase" は別のウォレットになります。末尾に空白があるpassphraseとないpassphraseも別物です。passphraseはハッシュ化前に UTF-8 NFKD で正規化されますが、それ以外は文字の完全一致が必要です。
なぜPassphraseを使うのか
シードフレーズ盗難への防御
攻撃者が24単語のシードフレーズ(紙のバックアップ、金属プレート、侵害されたデバイスなど)を盗むと、通常はウォレット内の全資金にアクセスできます。ただし、passphraseが設定されていれば話は別です。passphraseがなければ、攻撃者に見えるのは「ベース」ウォレット(空のpassphraseで導出されたもの)だけです。実際の資金が保存されたpassphrase保護ウォレットにはアクセスできません。
これにより、セキュリティは単一要素(所持しているもの: シードフレーズ)から二要素(所持しているもの: シードフレーズ + 知っているもの: passphrase)へと強化されます。
もっともらしい否認(Plausible Deniability)
すべてのpassphraseで有効なウォレットが生成されるため、同じシードフレーズから複数のウォレットを維持できます。
- passphraseなし — 少額資金のデコイウォレット
- Passphrase
"alpha"— 大きな保有額を置くメインウォレット - Passphrase
"bravo"— 追加保護用のセカンダリウォレット
シードフレーズ開示を強要された場合(「$5 wrench attack」)でも、passphraseなしでシードフレーズだけを渡せます。攻撃者は実在する少額資金入りウォレットを確認しますが、追加のpassphrase保護ウォレットの有無を知る手段はありません。
これはしばしば「duress wallet」または「hidden wallet」戦略と呼ばれます。
ハードウェア侵害への防御
ハードウェアウォレットにサプライチェーン上の脆弱性(例: 乱数生成器のバックドア)がある場合、攻撃者がデバイス生成のシードフレーズを把握している可能性があります。ハードウェアウォレットで生成も入力もされていない、ユーザー選択のpassphraseは、攻撃者が持たない追加エントロピーになります。
Passphraseの設定方法
ハードウェアウォレット
主要なハードウェアウォレットの多くは BIP-39 passphrase をサポートしています。
Ledger:
- Ledger LiveでSettingsを開きます。
- Advanced settingsの「Passphrase」を有効化します。
- モードは2種類あります: 「Attached to PIN」(利便性のためデバイス上にハッシュを保存)と「Temporary」(毎回入力が必要)。
- passphraseを選んで確認します。
Trezor:
- Trezor Suiteでpassphrase機能を有効化します。
- 接続のたびに、Trezorがpassphrase入力を求めます。
- 任意のpassphraseを入力できます。確認情報は保存されません。
Coldcard:
- メニューでPassphraseに移動します。
- デバイス上でpassphraseを入力します。
- Coldcardは最初に導出されたアドレスを表示します。想定どおりか確認します。
ソフトウェアウォレット
BIP-39 passphraseをサポートするソフトウェアウォレットでは、通常、初期設定またはシードインポート時にオプションが表示されます。設定フローで「Advanced options」「Optional passphrase」「25th word」を探してください。
強力なPassphraseの選び方
シードフレーズが侵害された場合の総当たり攻撃に耐えるには、passphraseに十分なエントロピーが必要です。
| Passphrase Type | Approximate Entropy | Time to Brute-Force (ASIC) |
|---|---|---|
| Common English word | ~10 bits | Seconds |
| Random 4-word phrase | ~50 bits | Years |
| Random 6-word phrase | ~75 bits | Millions of years |
| 20+ random characters | ~120+ bits | Heat death of the universe |
推奨事項:
- 少なくともランダムな4〜6語、または16文字以上のランダム文字列を使用する。
- 個人情報(名前、誕生日、一般的なフレーズ)を使わない。
- 単一の辞書語を使わない。
- 自作するより、
dicewareのようなpassphrase生成器の利用を検討する。
Passphraseのバックアップ戦略
passphraseは復旧シークレットの一部になります。シードフレーズまたはpassphraseのどちらかを失うと、資金にアクセスできなくなります。ここでバックアップの課題が生まれます。両方を保管する必要がありますが、一緒に保管すると目的が失われます。
戦略1: 保管場所を分離する
- シードフレーズは場所A(例: 自宅の耐火金庫)に保管する。
- passphraseは場所B(例: 銀行の貸金庫)に保管する。
- 攻撃者は両方の場所を侵害する必要がある。
戦略2: 記憶 + 物理バックアップ
- passphraseを記憶する。
- シードフレーズとは別の場所に、passphraseの暗号化バックアップを保管する。
- 本人が意思表示できない状態になっても、暗号化バックアップにより相続人が資金を復旧できる。
戦略3: PassphraseへのShamir's Secret Sharing
- Shamir's Secret Sharingでpassphraseを複数シェアに分割する。
- 複数の信頼できる相手にシェアを配布する。
- 復元には M-of-N シェアが必要。
やってはいけないこと
- passphraseをシードフレーズと一緒に保管しない。 セキュリティ上の利点が完全になくなります。
- 記憶だけに依存しない。 記憶は特に年単位・10年単位で不確実です。
- 確実に再現できないpassphraseを使わない。 大文字小文字、空白、正確な文字がすべて重要です。
- シードフレーズも入っているパスワードマネージャーにpassphraseを保存しない。
リスクと落とし穴
リスク1: Passphrase忘失による永久的な資金喪失
これはpassphrase利用時の最大リスクです。チェックサム付きシードフレーズと違い、passphraseが「正しい」かを検証する仕組みはありません。忘れたり、1文字でも誤って記憶したり、見えない文字(末尾スペース、誤ったUnicode正規化)が混入したりすると、別の空ウォレットが開かれ、資金は永久にアクセス不能になります。
軽減策: 送金前にpassphraseを十分テストする。ウォレットを設定し、最初の受取アドレスを確認し、少額を送って、別デバイスでシードフレーズ + passphraseから復元し、資金にアクセスできることを確認する。
リスク2: Passphrase入力時のキーロギング
passphraseはいずれかの時点でウォレットに入力する必要があります。ソフトウェアウォレットではPC入力となるため、キーロガーや画面録画に取得される可能性があります。デバイス上入力対応のハードウェアウォレット(Coldcard、Trezor)ではデバイス画面で入力するため、はるかに安全です。
軽減策: passphraseはデバイス上入力が可能なハードウェアウォレットでのみ入力するか、air-gappedコンピューターで入力する。
リスク3: 相続の複雑化
passphraseを使うと、相続設計は複雑になります。相続人に必要なのは以下です。
- シードフレーズ
- passphrase
- passphraseが存在し、必要であるという知識
- 利用方法の手順
このうち1つでも欠けると、相続は失敗します。passphraseを考慮した相続戦略については、Seed Phrase guide を参照してください。
リスク4: 誤った安心感
弱いpassphrase(一般的な単語1つ、誕生日、ペット名)は、攻撃者がシードフレーズを持っている場合に総当たりされる可能性があります。攻撃者は既知のPBKDF2関数に対して、GPUクラスターで何十億もの候補を検証できます。強力でランダム生成されたpassphraseを使用してください。
リスク5: 設定時のタイプミス
気づかないタイプミス入りのpassphraseでウォレットを設定しても、通常どおり動作し、入金も送金も成功します。しかし次回、シードフレーズから復元するときにタイプミスなし(または別のタイプミス)で入力すると、別のウォレットが開かれます。資金はそのタイプミスの向こう側に閉じ込められます。
軽減策: 設定後すぐに、別デバイスでシードフレーズ + passphraseを使って復元し、まったく同じアドレスが表示されることを確認する。
「25番目の単語」という誤解
「25番目の単語」という表現は単純化であり、誤解を招くことがあります。
- passphraseはBIP-39単語リストの単語に限定されません。任意のUTF-8文字列を使えます。
- passphraseは追加のニーモニック単語として符号化されるわけではなく、PBKDF2のsaltの一部として使われます。
- passphraseにはチェックサムがありません。ニーモニックの24番目の単語にはチェックサムビットが含まれるのと対照的です。
- 12単語ニーモニックにもpassphraseは使えます。この理屈では「13番目の単語」ですが、一般的には「25番目の単語」と呼ばれます。
技術的に正確な呼び方は「BIP-39 passphrase」または「mnemonic passphrase」です。
SafeSeed Key Derivation Tool を使うと、同じシードフレーズでもpassphraseの違いでまったく異なるアドレスが生成されることを確認できます。テスト用ニーモニックを、passphraseあり/なしで入力して効果を観察してください。計算はすべてブラウザ内で実行され、データは送信されません。
Passphrase vs. ウォレットPIN vs. パスワード
この3つの概念はよく混同されます。
| Feature | BIP-39 Passphrase | Wallet PIN | Wallet Password |
|---|---|---|---|
| What it protects | Seed derivation | Device access | Application access |
| Where stored | Nowhere (you memorize) | On device | On device/server |
| Can be changed | No (creates new wallet) | Yes | Yes |
| If forgotten | Funds inaccessible | Device reset, restore from seed | Password reset |
| Brute-force target | PBKDF2 with seed | Device lockout | Implementation-dependent |
| Scope | All wallets from seed | Single device | Single application |
passphraseは、導出される鍵そのものを変えるため本質的に異なります。PINやパスワードは、デバイス上に既に存在する鍵へのアクセスを制御するだけです。
高度なユースケース
複数の隠しウォレット
上級ユーザーは、単一シードフレーズから複数ウォレットを運用できます。
- 空のpassphrase: 少額(デコイ)
- Passphrase A: メイン貯蓄
- Passphrase B: 取引用配分
- Passphrase C: 緊急予備
各ウォレットは完全に独立しています。オンチェーン上で相互リンクはありません。覚える・バックアップするpassphraseの数が増えるほど、リスクも増えます。
Multi-Signatureとの組み合わせ
機関用途や非常に高額な保管では、BIP-39 passphraseとmulti-signatureを組み合わせます。
- 各署名者の鍵は、シードフレーズ + 固有passphraseから導出される。
- 攻撃者は複数のシードフレーズと、それぞれに対応するpassphraseを取得する必要がある。
- これにより、独立した複数のセキュリティ層を提供できる。
FAQ
BIP-39 passphraseまたは「25番目の単語」とは何ですか?
BIP-39 passphraseは、シード導出プロセス(PBKDF2のsalt)に追加される任意のユーザー選択文字列です。使用すると、同じニーモニックシードフレーズからまったく異なる鍵とアドレスのセットが生成されます。一般に「25番目の単語」と呼ばれますが、BIP-39単語に限らず任意のテキスト文字列を使えます。
Passphraseは変更できますか?
パスワードのような意味では変更できません。passphraseはどの鍵が導出されるかを決めるため、passphraseを変えることは、異なるアドレスを持つ別ウォレットを開くことを意味します。passphraseを「変更」するには、新しいpassphraseで新規ウォレットを作成し、旧passphraseウォレットの全資金を新ウォレットに移す必要があります。
Passphraseを忘れるとどうなりますか?
資金は永久にアクセス不能になります。復旧手段、リセット手段、強力なpassphraseを総当たりで突破する現実的手段はありません。だからこそ、passphraseの適切なバックアップが不可欠です。
Passphraseはハードウェアウォレットに保存されますか?
一部ハードウェアウォレットには、passphraseをセカンダリPINに関連付けるオプションがあります(例: Ledgerの「Attached to PIN」モード)。この場合、利便性のためヒントやハッシュがデバイスに保存されることがあります。ただし標準的な方法は「temporary」モードで、毎回passphrase入力が必要であり、デバイスには何も保存しません。
すべてのウォレットがBIP-39 passphraseをサポートしていますか?
BIP-39互換ウォレットの多くはpassphrase機能をサポートしますが、UIで公開していないものもあります。ウォレットのドキュメントを確認してください。主要ハードウェアウォレット(Ledger、Trezor、Coldcard)はすべてサポートしています。
攻撃者は、私がpassphraseを使っているかどうか分かりますか?
いいえ。デフォルト(空passphrase)でも有効なウォレットが生成されるため、シードフレーズ単体から追加のpassphrase保護ウォレットの存在を判断する方法はありません。攻撃者がシードフレーズを入手し、ベースウォレットの資金を見つけても、passphrase保護ウォレットの有無は分かりません。
Passphraseは大文字小文字を区別しますか?
はい。"MyPassphrase"、"mypassphrase"、"MYPASSPHRASE" はすべて別のウォレットを生成します。空白も重要です。"my pass" と "mypass" は異なります。passphraseの記録は非常に正確に行ってください。
12単語シードフレーズでもpassphraseを使えますか?
はい。passphrase機能はすべてのBIP-39ニーモニック長(12、15、18、21、24単語)で動作します。PBKDF2プロセスはニーモニック長に関係なく同じです。