BIP39附加ENT/32位SHA-256 checksum,切成2,048词表的11位索引,再对NFKD标准化的助记词和passphrase执行2,048轮PBKDF2-HMAC-SHA512。输出64字节供BIP32使用;路径、账户与script不在其中。
Palatinus、Rusnak、Voisine、Bowe编写BIP39,2013-09-10分配,现为Deployed。它传送机器随机性;用户自创句子仍是brainwallet。节点不验证BIP39,交易中也没有助记词。 [BIP 39 — Mnemonic code for generating deterministic keys]
ENT只能是128/160/192/224/256;CS=ENT/32个SHA256前导位,MS=(ENT+CS)/11得到12/15/18/21/24词。12词含128随机+4校验位,24词为256+8。安全来自RNG而非词语感觉。 [BIP 39 — Mnemonic code for generating deterministic keys]
每11位选择有序2,048词表的一项。词只是位流编码,不是各自的key;同义词会改位。前四字母在表内唯一。排序、翻译或猜词会产生不同数据,偶尔甚至另一个valid mnemonic。 [BIP 39 — Mnemonic code for generating deterministic keys] [BIP 39 official wordlists]
Mnemonic与passphrase需UTF-8并做NFKD。重音和兼容字符可能分解;空格、顺序、大小写、每个字符都重要。日文vectors专门测试它。不同normalization会生成另一个有效钱包。 [BIP 39 — Mnemonic code for generating deterministic keys] [Trezor python-mnemonic reference implementation] [BIP 39 official test vectors]
PBKDF2以助记词为password,以‘mnemonic’+passphrase为salt,HMAC-SHA512、2,048轮、64字节。无passphrase是空后缀。它不可逆。词泄漏后,2,048轮无法保护弱passphrase。 [BIP 39 — Mnemonic code for generating deterministic keys] [RFC 8018 — PBKDF2]
BIP39到seed即止。BIP32用‘Bitcoin seed’生成master key和chain code;BIP44/49/84/86定义路径/script。错误account、change、gap或类型会显示零。Descriptor和wallet metadata必须另存。 [BIP 32 — Hierarchical deterministic wallets] [BIP 44 — Multi-account hierarchy] [BIP 84 — Native SegWit derivation] [BIP 86 — Single-key Taproot derivation] [BIP 380 — Output script descriptors] [Bitcoin Core — Output descriptors]
任意passphrase都会产生有效seed,没有‘错误密码’;拼错只会打开空钱包。词被盗后可离线枚举并查公开链活动。passphrase需高熵、可信输入和独立可靠备份。 [BIP 39 — Mnemonic code for generating deterministic keys] [Trezor — passphrases and hidden wallets]
12词checksum仅4位,24词8位,随机通过概率1/16和1/256。它检测部分事故,不纠错、不认证;攻击者能算有效替换。切勿把词输入在线验证站。 [BIP 39 — Mnemonic code for generating deterministic keys]
存大额前在可信离线设备演练恢复。记录顺序、精确passphrase、原钱包、derivation/script及multisig/descriptor。照片、云、打印机、剪贴板都能泄漏花费权。纸怕火水,金属不防盗。 [BIP 380 — Output script descriptors] [Trezor — passphrases and hidden wallets] [Bitcoin Core — Output descriptors]
因互操作性不建议非英文词表;翻译必然改变seed。Electrum原生seed不是BIP39。BIP39无version和address type。SLIP39是大多不兼容的1,024词threshold格式;拆分BIP39词不是Shamir。 [BIP 39 — Mnemonic code for generating deterministic keys] [Electrum documentation — seed version system] [SLIP 39 — Shamir's Secret-Sharing for Mnemonic Codes]
要获得更完整的理解,请将本词条与以下词条结合阅读: Seed Phrase, HD Wallet, BIP39附加密码, Trezor, Bitcoin, BIP39校验和. 反向关联还来自: Seed Phrase, HD Wallet, Cold Storage, Trezor.