487 / 736CS

BIP39 checksum

ニーモニックバックアップのチェックサム

ウォレットを復元するためにバックアップの単語を入力すると、アプリがエラーを表示することがあります。BIP39 checksum は、単語列に組み込まれた短い検査で、そのような誤りの発見に役立ちます。ただし、一部の誤りを検出できるだけで、合格しても自分のウォレットを見つけたことや単語の安全性は確認できません。

チェックサムは、元の乱数データから計算した数ビットの情報です。ビットは情報の基本単位です。BIP39 は元のデータの長さを ENT と呼び、その SHA-256 による指紋の先頭 ENT/32 ビットを追加し、全体を単語選択用の 11 ビット群に分けます。これは記録の検査であり、新しい秘密ではありません。同じデータを持つ人なら同じチェックサムを計算できます。

単語は、エントロピーと呼ばれる元の乱数データと、その短い検査の両方を表します。BIP39 が認める長さは ENT = 128、160、192、224、256 ビットです。それぞれ 4、5、6、7、8 検査ビットを加え、12、15、18、21、24 語にします。各 11 ビット群が、2048 語のリストから番号 0‑2047 の単語を選びます。復元時にはソフトウェアがこの記録を分解し、各部分が一致するか確認できます。 [1]

最後の単語には元の秘密データの一部も含まれます。128 ビットの入力では 128 + 4 = 132 = 12 × 11 となり、最後の単語には 7 ビットのエントロピーと 4 検査ビットが入ります。24 語の場合は 3 ビットのエントロピーと 8 検査ビットです。したがって、最後の単語を失うと検査以外の情報も失います。前の単語だけでは正しい末尾を一つに決められず、共通の検査単語を入れれば済むわけではありません。 [1]

検査は短いため、誤った組み合わせをすべて排除できません。正しい単語リストから一様ランダムに選んだ列では、12 語なら 1/16、24 語なら 1/256 が合格します。これはその長さの全候補についての割合であり、あなたの特定の誤記や単語の入れ替えをどの程度確実に見つけられるかを示すものではありません。緑色の確認表示が出ても、正確に書き写した証拠にはなりません。 [1]

解説記事に公開されたバックアップを考えてください。チェックサムが完全に正しくても、自分のお金を保管するために使うのは危険です。検査器は正しいリストで単語をビットに戻し、元のデータを分離して、検査ビットをその SHA-256 と比較するだけです。攻撃者も同じ計算ができます。誰が作った単語か、誰が知っているかは分かりません。出所の認証でも、誤ったバックアップを一般的に修復する仕組みでもありません。 [1]

追加のパスワードである BIP39 passphrase を使う場合、単語のチェックサムはそれを一切検査しません。別の計算である PBKDF2-HMAC-SHA512 が、単語列と passphrase を鍵の導出に使う秘密の基礎、512 ビットのシードに変換します。そのため、単語が合格しても passphrase の誤入力で別のウォレットに進むことがあります。正確な単語、順序、必要な passphrase を保管してください。別の単語リストへの翻訳もシードを変えてしまいます。 [1]

知らないサイトが素早い検査を約束していても、単語を入力した時点でそのサイトに渡しています。正しい結果は、アプリが単語を保存したり盗んだりしなかった証拠にはなりません。復元にはウォレットの信頼できる手順を使ってください。ソフトウェアのテストには、秘密のバックアップではなく、既知の入力と期待される結果からなる公開テストベクトルを使います。ただし、その公開例を実資金のウォレットにしてはいけません。 [1]

理解を深めるには、この項目とあわせて次もお読みください BIP 39, Seed Generation, BIP39 passphrase, Cryptographic Entropy. 次の項目からも参照されています BIP 39, BIP39 passphrase, COLDCARD RNG Incident (2026), SeedQR.

DOC · 001BIP39 — Mnemonic generation and seed conversion仕様
改訂日: 一次資料を優先 · 投資助言ではありません