ランダムな16進数から人間の言葉へ
Bitcoin の初期、ユーザーはランダムな秘密鍵のコレクションを管理しなければなりませんでした。1つの鍵を紛失すると、それに関連付けられた資金は永遠に失われてしまいました。今日、現代のウォレットは、より堅牢でユーザーフレンドリーなシステムである ニーモニックシードフレーズ (Mnemonic Seed Phrase) を使用しています。
このガイドでは、現代のウォレットを可能にしている技術標準、BIP39、BIP32、および BIP44 について説明します。12 または 24 の単語のリストが、どのようにして複数のブロックチェーンに対応する無限の秘密鍵に変換されるのかを解説します。
1. BIP39:ニーモニックシードフレーズの標準
BIP39 (Bitcoin Improvement Proposal 39) は、ウォレットの生成に必要な「エントロピー」を保存するためのニーモニック(覚えやすい単語のグループ)を生成するための業界標準です。
ニーモニックの生成方法
- エントロピー:プロセスはランダムなビットシーケンス(128〜256ビット)から始まります。
- チェックサム:エラーを検出するために、エントロピーにチェックサムが追加されます。
- 分割:結合されたビットは11ビットずつの塊に分割されます。
- 単語のマッピング:各11ビットの塊は 0 から 2047 までの数字に対応し、BIP39 単語リストから単語を選択するために使用されます。
BIP39 ニーモニックジェネレーターは、このプロセスに従って 12、15、18、21、または 24 の単語を生成します。
ニーモニックからバイナリシードへ
これらの単語をコンピュータが使用できる形式に変換するために、ニーモニックは HMAC-SHA512 を使用した PBKDF2 で処理されます。
- パスワード:ニーモニック文(例:「abandon abandon...」)。
- ソルト:文字列「mnemonic」+ オプションでユーザーが提供するパスフレーズ(「13番目の単語」または「25番目の単語」と呼ばれることが多い)。
- 反復回数:2048回。
結果として 512 ビットのバイナリシードが得られ、これがウォレット全体のルート(根)となります。
2. BIP32:階層的決定性 (HD) ウォレット
バイナリシードは素晴らしいものですが、そこからどのように複数の鍵を得るのでしょうか? BIP32 は、階層的決定性 (HD) ウォレットの概念を導入しました。
マスターノード
512 ビットのシードは2つの半分に分割されます:
- マスター秘密鍵:署名に使用される 32 バイト。
- マスターチェーンコード:子を派生させるために使用される 32 バイトの追加エントロピー。
これらが合わさって、マスター拡張秘密鍵 (xprv) を形成します。
派生:親から子へ
BIP32 を使用すると、チェーンコードを使用して「親」鍵から「子」鍵を派生させることができます。つまり、1つのシードをバックアップするだけで、そこから生成されたすべてのアドレスを自動的にバックアップできることになります。
- xpub (拡張公開鍵):監査人やウォッチ専用ウォレットなどの第三者が、資金を消費することなくすべての公開アドレスを確認できるようにします。
- xprv (拡張秘密鍵):アカウントとその子を完全に制御できるようにします。
3. BIP44:マルチアカウント階層
BIP32 が派生の メカニズム を定義しているのに対し、BIP44 はその 構造 を定義しています。これにより、異なるウォレットソフトウェア(Ledger、MetaMask、Trust Wallet など)が同じパスを使用して資金を見つけられるようになります。
派生パス
BIP44 は5レベルのパスを定義しています:
m / purpose' / coin_type' / account' / change / address_index
例:m/44'/60'/0'/0/0
- m:マスターノード。
- 44':目的(BIP44)。
- 60':コインタイプ(60 は Ethereum、0 は Bitcoin)。
- 0':アカウント(最初のアカウント)。
- 0:変更(0 は外部/受信アドレス用、1 は内部/お釣りアドレス用)。
- 0:インデックス(アカウント内の最初のアドレス)。
BIP32 HD ウォレット派生ツールは、これらのパスを使用して鍵のツリーをナビゲートします。
4. 要約:ニーモニック vs シード vs 秘密鍵
| 用語 | 形式 | 目的 |
|---|---|---|
| ニーモニック | 12-24 の単語 | ウォレットの人間が読めるバックアップ。 |
| パスフレーズ | ユーザー定義の文字列 | セキュリティ強化のためのオプションの「25番目の単語」。 |
| シード | 512ビット 16進/バイナリ | 単語から派生した数学的なルート。 |
| xprv / xpub | 拡張鍵文字列 | 特定のブランチの「親」ノード。 |
| 秘密鍵 | 256ビット 16進数 | 単一のトランザクションに署名するために使用される実際の鍵。 |
FAQ:ウォレットのセキュリティと標準
Q: なぜシードフレーズは 12 単語ではなく 24 単語なのですか?
A: 12 単語は 128 ビットのエントロピーを提供し、現在は安全であると考えられています。24 単語は 256 ビットのエントロピーを提供します。12 単語で十分ですが、24 単語は将来の極端な計算能力の進歩に対しても「将来性」があります。
Q: BIP39 パスフレーズを忘れるとどうなりますか?
A: 資金へのアクセスを失います。 パスフレーズは「ヒント」ではなく、シードの数学的な構成要素です。パスフレーズがないと、ニーモニックはまったく別の(そしておそらく空の)ウォレットを生成してしまいます。
Q: BIP39 ニーモニックはどのコインにも使えますか?
A: はい。 BIP44 のおかげで、派生パスの coin_type を変更するだけで、1つのニーモニックから Bitcoin、Ethereum、Solana、その他数千のコインの鍵を生成できます。
Q: オンラインの「ニーモニックシードフレーズジェネレーター」を使っても安全ですか?
A: 教育目的、または少額の場合のみにしてください。 多額の資金については、常にニーモニックをオフラインで生成する信頼できるハードウェアウォレット(Ledger や Trezor など)や、信頼できるオープンソースのソフトウェアウォレットを使用してください。
結論
BIP39、BIP32、および BIP44 の組み合わせは、暗号通貨を技術的な悪夢から管理可能な金融システムへと変貌させました。ニーモニックフレーズがどのように鍵のツリーに変換されるかを理解することで、デジタル資産をより適切に制御し、マルチシグ、ウォッチ専用ウォレット、アカウント管理などの高度な機能をより効果的に活用できるようになります。常に覚えておいてください。**「あなたのニーモニックは、あなたのお金そのもの」**です。命の次に大切に保管してください。