BIP39徹底解説:2,048個の単語が暗号資産を守る仕組み
目次
暗号資産ウォレットを設定したことがあるなら、12個または24個の単語を書き留めるよう求められた経験があるでしょう。これらの単語は辞書からランダムに選ばれた語彙ではありません。BIP39 --- Bitcoin Improvement Proposal 39 --- と呼ばれる精密な規格に基づいており、単語の数から各単語の選択方法まで、すべての詳細が暗号資産を可能な限り安全かつポータブルに保つために設計されています。
このガイドではBIP39を基礎から解説します:エントロピーがどのようにシードフレーズになるのか、なぜワードリストが正確に2,048個のエントリを含むのか、そしてこれらの単語をウォレットに入力したとき裏側で何が起こるのかを説明します。
BIP39とは何か?¶
BIP39は2013年に公開された仕様で、ランダムな二進数を人間が読める単語のリスト --- ニーモニック --- に変換し、そのニーモニックを暗号鍵の導出に使用されるバイナリシードに変換する方法を定義しています。
BIP39以前、ウォレットのバックアップは生の16進数文字列でした。5e884898da28047151d0e56f8dc...のような64文字のシーケンスです。これらの文字列を手作業でコピーするのは面倒でエラーが起きやすく、1文字でも間違えればバックアップ全体が使い物にならなくなりました。
BIP39はこれらのランダムバイトを一般的な英語の単語にマッピングすることで、この問題を解決しました。16進数をコピーする代わりに「abandon ability able about above absent absorb abstract...」と書けばよいのです --- 読み取り、確認、紙や金属への保管がはるかに容易な単語です。
BIP39の3つの目標は以下の通りです:
- 人間の可読性 --- 単語は16進数より書き写し、確認、記憶が容易です。
- エラー検出 --- 内蔵のチェックサムが書き写しミスを検出します。
- 決定論的導出 --- 同じ単語からは、どのウォレットソフトウェアを使用しても常に同じマスターシードが生成されます。
128ビットのエントロピーが12個の単語になる過程¶
BIP39シードフレーズのセキュリティはエントロピー --- 暗号学的に安全な乱数生成器(CSPRNG)によって生成される純粋なランダムネスから始まります。エントロピーの量によって単語数が決まります:
| エントロピー(ビット) | チェックサム(ビット) | 合計(ビット) | 単語数 |
|---|---|---|---|
| 128 | 4 | 132 | 12 |
| 160 | 5 | 165 | 15 |
| 192 | 6 | 198 | 18 |
| 224 | 7 | 231 | 21 |
| 256 | 8 | 264 | 24 |
最も一般的な構成は12語のフレーズ(128ビット)と24語のフレーズ(256ビット)です。
12語のフレーズのステップバイステップのプロセスは以下の通りです:
- 128のランダムビットを生成する。 これが生のエントロピーです。現代のシステムでは、このランダム性はOSのCSPRNGから来ます --- 例えば、ブラウザのWeb Crypto APIやLinuxの
/dev/urandomなどです。 - チェックサムを計算する。 128ビットのSHA-256ハッシュを取ります。ハッシュの最初の4ビットがチェックサムになります。
- 連結する。 元の128ビットに4ビットのチェックサムを追加して132ビットにします。
- 11ビットのグループに分割する。 132ビットを11ビットずつの12グループに分割します。
- 単語にマッピングする。 各11ビットグループは0から2,047の間の数値です。この数値をBIP39ワードリストのインデックスとして使用します。
結果は12個の英語の単語です。
128ビットはどれほど安全でしょうか?2^128通りの組み合わせが可能で --- これは約3.4 x 10^38です。分かりやすく言えば、地球上のすべてのコンピュータが毎秒1兆個の組み合わせを試したとしても、全空間を網羅するのに約10^14年かかります。シードフレーズへのブルートフォースがなぜ非現実的なのかについて詳しくは、2026年のシードフレーズブルートフォースをご覧ください。
2,048語のワードリストとチェックサム¶
なぜ正確に2,048語なのでしょうか?2,048 = 2^11だからです。各単語は正確に11ビットのデータをエンコードし、バイナリと単語間の変換をクリーンかつ可逆的にしています。
公式の英語BIP39ワードリストは、いくつかの特性を備えるよう慎重に選定されています:
- 4文字未満の単語はない。 あいまいさを避けるためです。
- 各単語の最初の4文字がユニーク。 衝突なく省略できます --- 「abso」は明確に「absorb」です。一部のハードウェアウォレットはこれを活用して入力を高速化しています。
- 類似する単語は除外。 リストは「woman」と「women」のように1文字だけ異なるペアを避けています。
- 単語はアルファベット順にソート。 検索を効率的にします。
BIP39ワードリストは複数の言語に存在します --- 英語、日本語、韓国語、スペイン語、中国語(簡体字および繁体字)、フランス語、イタリア語、チェコ語、ポルトガル語。英語リストが圧倒的に広く使用されていますが、この規格は言語に依存しません。利用可能なすべてのリストについては、全言語のBIP39ワードリストをご覧ください。
チェックサムがエラーを検出する¶
最後の単語に埋め込まれたチェックサムは、BIP39の最も実用的な機能の一つです。誤って間違った単語を書き留めたり、2つの単語を入れ替えたりすると、ウォレットの復元時にチェックサムがほぼ確実に失敗します。
12語のフレーズの場合、チェックサムは4ビットです。つまり、ランダムに変更されたフレーズの16個に1個だけがチェックサムテストを通過します。24語のフレーズの場合、チェックサムは8ビットなので、256個中1個の不正なフレーズだけが有効に見えます。これは保証ではありません --- ロックではなくセーフティネットです --- しかし、書き写しエラーの大多数を検出します。
インターネットに公開せずにシードフレーズのチェックサムを検証できます。SafeSeedのBitcoin Seed Phrase Generatorのようなオフラインツールを使用してください。完全にブラウザ内で動作します。
ニーモニックからマスターシードへ¶
12個の単語を持っていることはプロセスの終わりではありません。ウォレットはニーモニックを直接暗号鍵として使用しません。代わりに、ニーモニックはPBKDF2と呼ばれるキーストレッチング関数を通じて512ビットのバイナリシードに変換されます。
変換は以下のように動作します:
- ニーモニックの単語がスペースで区切られた1つの文字列に結合されます。
- 「mnemonic」という文字列にオプションのパスフレーズを前置してソルトを作成します。パスフレーズが設定されていない場合、ソルトは単に「mnemonic」という文字列です。
- PBKDF2-HMAC-SHA512が2,048回の反復で適用され、512ビットのシードが生成されます。
この512ビットのシードは、BIP32に記述されているように、HDウォレットツリーのマスター秘密鍵とチェーンコードの導出に使用されます。この単一のマスターキーから、無限の子キー --- つまりアドレスを --- 複数のブロックチェーンにわたって生成できます。
オプションのパスフレーズ(「25番目の単語」と呼ばれることもある)は、強力な保護レイヤーを追加します。同じ12語に異なるパスフレーズを使用すると、まったく異なるウォレットが生成されます。つまり、誰かがワードリストを発見しても、パスフレーズなしでは資金にアクセスできません。ただし、パスフレーズにはチェックサムがありません:間違ったパスフレーズはエラーを出さず、静かに異なる(空の)ウォレットを生成します。
マスターシードが子キーとアドレスをどのように生成するかの詳細は、HDウォレットと導出パスの解説をお読みください。
ブロックチェーン全体でのBIP39¶
BIP39はBitcoinのエコシステムで作られましたが、その採用ははるかに広範囲に及びます。同じ12語または24語でEthereum、Solana、Polygon、その他数十のネットワークの資金を保護できます。
チェーン間で異なるのはシードフレーズ自体ではなく、マスターシードが生成された後に使用される導出パスです。Bitcoinはネイティブ SegWitアドレスにm/84'/0'/0'を使用します。EthereumとEVMチェーンはm/44'/60'/0'/0を使用します。Solanaはm/44'/501'/0'/0'を使用します。ニーモニックからシードへのステップはどこでも同一です --- 常に同じパラメータのPBKDF2です。
このクロスチェーン互換性はBIP39の最大の強みの一つです。1つのバックアップでサポートされているすべてのネットワークの資産を保護できます。SafeSeedは複数のチェーン向けにシードフレーズジェネレーターを提供しています --- Bitcoin、Ethereum、Solana --- すべて同じBIP39規格を使用しています。
例外もあります。一部のウォレット、特にElectrumはBIP39と互換性のない独自のニーモニック方式を使用しています。Electrumの方式はニーモニック自体にバージョン情報を埋め込んでおり、異なるトレードオフがあります。ElectrumのシードをBIP39ウォレットにインポートしたり、その逆を行ったりすると、異なるキーが得られます。ウォレットがどのニーモニック規格を使用しているか、必ず確認してください。
避けるべき一般的な間違い¶
BIP39を理解することは、まさにコストの大きい間違いを避けるのに役立つからこそ価値があります。最も頻繁な間違いは以下の通りです:
シードフレーズをデジタルで保存する¶
スクリーンショットを撮る、テキストファイルに保存する、12語を自分にメールで送る --- これらは本来の目的を無効にします。デバイスが侵害されれば、攻撃者はすべてを手に入れます。フレーズは紙に書くか金属に刻印し、物理的に保管してください。詳しい戦略は2026年コールドストレージガイドをご覧ください。
シードフレーズと秘密鍵を混同する¶
シードフレーズは多くの秘密鍵を生成し、単一の秘密鍵は正確に1つのアカウントのみを制御します。これらは互換性がありません。MetaMaskから秘密鍵をエクスポートしてもシードフレーズは得られませんし、その逆も同様です。詳細な比較はシードフレーズ vs 秘密鍵をお読みください。
未検証のウェブサイトにシードフレーズを入力する¶
正当なサービスが、インターネット接続中にウェブサイトにシードフレーズを入力するよう求めることは絶対にありません。ウォレットインターフェースを模倣したフィッシングサイトは、最も一般的な攻撃ベクトルの一つです。シードフレーズの生成や検証が必要な場合は、完全にオフラインでクライアントサイドで実行されるツールを使用してください --- SafeSeedのツールはサーバーにデータを送信せずに動作します。
チェックサムを無視する¶
ウォレットがシードフレーズが無効だと表示した場合、強制的に進めないでください。チェックサムが何か問題があることを教えてくれています。BIP39ワードリストと照合して、すべての単語を再確認してください。よくあるエラーは、最初の4文字が同じだがその後が異なる単語を混同することです。
パスフレーズを忘れる¶
オプションのパスフレーズを設定して忘れた場合、資金は復元不可能です。パスフレーズはどこにも保存されません --- 暗号学的入力の一部です。シードフレーズと同じレベルの注意を払って管理してください。
BIP39は暗号資産における最もエレガントな規格の一つであり続けています。解読困難なバイナリデータを、人間が紙に書いて金庫に保管できるものに変換します --- セキュリティを1ビットも犠牲にすることなく。その仕組みを理解することが、デジタル資産を責任を持って保護するための第一歩です。