488 / 736BIP39-P

BIP39 passphrase

復元用の単語に加える、もう一つの秘密

同じ復元用の単語でも、passphrase を加えると別のウォレットを使えます。何を守れるのか、入力ミスで空のウォレットが開くのはなぜか、復元を難しくしないために何が必要かを説明します。

BIP39 passphrase は、復元用の単語である Seed Phrase と一緒にウォレットが使う、任意の秘密の文字列です。この二つによって、アクセスする鍵が決まります。passphrase を使っていた場合は、復元時にも必要です。端末の PIN では代用できません。保護を追加する手段ですが、失くす可能性のあるものも一つ増えます。Bitcoin を使うための必須条件ではありません。

passphrase を使わずに作成したウォレットと、その復元用の単語があるとします。その単語だけで、同じ鍵の組を導出できます。passphrase を入力すると、ウォレットは両方の入力から、鍵の基になる別の値「seed」を計算します。アクセスする先は別のウォレットです。元のウォレットに鍵をもう一つ掛けるわけではありません。通常、PIN は端末のロックを解除し、passphrase は鍵そのものを決める計算に関わります。「25 番目の単語」と呼ばれることもありますが、一語である必要も、BIP39 の単語リストに載っている必要もありません。 [1] [2]

普通のアカウントなら、入力を間違えると「パスワードが違います」と表示されることが多いでしょう。ここでは同じミスで、通常は残高のない別のウォレットが開くことがあります。BIP39 には passphrase のチェックサムがないからです。元のビットコインが消えたわけではありません。まずバックアップ、入力した文字列、アカウント、復元設定を確かめてください。大文字と小文字、空白も区別されます。ただし技術的な例外があり、Unicode の é と、e に結合アクセントを付けた表記などは、NFKD 正規化で同じになります。それでも実際には正確な表記を保存し、文字が似て見えることに頼らないでください。アプリが独自の確認や検査を加えている場合もあります。 [1] [2]

復元用の単語を誰かに知られても、十分に予測しにくい passphrase があれば、正しいウォレットへのアクセスを大幅に難しくできます。ただし、秘密のままであり、簡単に推測できないことが必要です。誕生日、有名な引用、ほかでも使うパスワードは弱い選択です。単語を知った攻撃者は、あなたの端末に問い合わせず、自分のコンピューターでオフラインの推測を試せます。端末の PIN や試行回数制限では、この攻撃を止められません。通常のバックアップと復元にまだ自信がなければ、まずそこを身に付けましょう。仕組みを複雑にすれば必ず安全になるわけではありません。 [1] [2]

新しい passphrase を入力し始めても、元のウォレットの資金は元の鍵で管理されたままです。移行するには、まず新しいウォレットとその復元方法を確認し、それから実際にビットコインを送る必要があります。passphrase のないウォレットから移る場合も同じです。PIN の変更と混同しないでください。端末へのアクセス方法を変えるだけで、新しいビットコインの鍵が作られるわけではありません。 [2] [3]

正確な passphrase を安全に記録し、正当な必要が生じたときに誰が見つけられるかも考えましょう。復元用の単語と別に保管すれば、両方が同時に漏れる危険を減らせます。ただし、自分での復元や相続を妨げてはいけません。強い passphrase を忘れ、バックアップもなければ、取り戻せないことがあります。大きな金額を入れる前に、そのウォレットの信頼できる手順で復元を試してください。アドレスの種類や、ウォレットがアカウントを探す場所を示す導出パスなど、必要な設定も保存します。Output Descriptor はこうした規則を機械が読める形で記述したものです。対応するウォレットでは、バックアップの重要な一部になります。ただし、失くした passphrase の代わりにはなりません。 [2] [3]

異なる passphrase を使えば、別々のウォレットを利用できます。そのため、少額のおとり用ウォレットを用意する人もいます。しかし、それですべてを見せたと攻撃者が信じる保証はありません。支払いの記録、バックアップ、そのほかの痕跡から別の資産が分かる可能性があります。パスワードの推測に強いことと、身体への危害を伴う強要に対して安全なことは、別の問題です。 [1]

ウォレットを使うために、この計算を手作業でする必要はありません。BIP39 は復元用の単語を PBKDF2-HMAC-SHA512 の password 入力として渡します。もう一方の入力は salt と呼ばれ、"mnemonic" + passphrase という形です。ここでの salt は追加の入力を指す技術用語であり、別に考え出したりバックアップしたりするものではありません。復元用の単語がこの入力に連結されるわけでもありません。両方の文字列を NFKD で正規化し、UTF-8 で符号化します。2048 回の反復で、512 ビット、つまり 64 バイトの seed が得られます。passphrase がなければその文字列は空ですが、salt には "mnemonic" が残ります。結果が長いことや計算を繰り返すことだけで、推測しやすい passphrase が強い秘密になるわけではありません。 [1]

例 · BIP39-P

大文字と小文字でウォレットが変わることがある

同じニーモニックの単語でも、passphrase が「alpha」と「Alpha」では BIP 39 により異なるシードが派生します。これは短い例で、安全なパスワードではありません。仕様には passphrase のチェックサムがなく、誤入力で別の、通常は空のウォレットが開く場合があります。アプリは独自の確認機能を追加できます。

理解を深めるには、この項目とあわせて次もお読みください BIP 39, PBKDF2, BIP39 checksum, セルフカストディ. 次の項目からも参照されています Seed Phrase, BIP 39, Cold Storage, Gap Limit.

01Passphrase は復元用の単語や PIN と同じですか?

いいえ。BIP 39 は復元用の単語と任意の passphrase を一緒に使います。passphrase を設定していた場合、単語だけでは元のウォレットにアクセスできず、PIN でも代用できません。復元には、アドレスの種類やアカウントを探す場所を示す導出パスなど、ほかの情報が必要な場合もあります。

02passphrase は漏えいしたニーモニックを守りますか?

十分に予測困難で、単語と一緒に漏えいしていない passphrase は、正しいシードの派生を難しくできます。ただし単語を持つ攻撃者はオフラインで候補を試せるため、短い、または予測しやすい passphrase は信頼できる保護ではありません。強い passphrase をバックアップなしで失うと、アクセスを回復できなくなる場合があります。

DOC · 001BIP39 — Mnemonic generation and seed conversion仕様 DOC · 002Trezor — What is a passphrase文書 DOC · 003BIP380 — Output Script Descriptors仕様
改訂日: 一次資料を優先 · 投資助言ではありません