BIP-39 — Bitcoin Improvement Proposal 39 — це специфікація, що перетворила абстрактне поняття "256 біт ентропії" у дванадцять або двадцять чотири англійські слова, які майже кожен сучасний гаманець використовує для бекапу ключів. Автори — Марек Палатінус, Павол Руснак, Аарон Войсін і Шон Боу, ратифікований у 2013 році. Тепер де-факто стандарт для Ledger, Trezor, Coldcard, Keystone, MetaMask, Rabby і десятків інших.
Три речі, які стандартизував BIP-39
Перше, словник. Фіксований 2 048-словний англійський словник, обраний так, щоб перші чотири літери кожного слова були унікальні — корисно для гравіювання на коротких сталевих пластинах. Перекладні словники існують для японської, корейської, іспанської, французької та семи інших мов, але англійський словник залишається найбільш широко підтримуваним.
Друге, конвертація ентропії в слова. Гаманець хешує ентропію, додає біти checksum (один біт на тридцять два біти ентропії), нарізає результат на 11-бітні блоки. Кожен блок індексується у словник. Результат — дванадцять слів для 128 біт ентропії, двадцять чотири для 256.
Третє, конвертація слів у сід. Слова проходять через PBKDF2-HMAC-SHA512 з 2 048 ітераціями і опціональним passphrase як сіллю. Результат — 512-бітний сід, який споживають шляхи деривації BIP-32.
Checksum, що тихо ловить помилки
Якщо ви транскрибуєте слова невірно, біти checksum не пройдуть валідацію, і гаманець відмовиться відновлювати. Це ловить приблизно 1-у-16 одиночних підмін слів і майже всі мультислівні підстановки. Одна з найбільш недооцінених функцій захисту користувача в крипті.
Чим BIP-39 не є
BIP-39 — це не BIP-32 (дерево деривації) або BIP-44 (структура мульти-акаунт, мульти-монета шляхів). Це три окремих стандарти, що композуються: BIP-39 перетворює слова в сід, BIP-32 перетворює сід у дерево ключів, BIP-44 організовує дерево в слоти акаунта і монети. Майже кожен сучасний гаманець реалізує всі три.
Підвох: BIP-39 домінує, але не універсальний. Cardano використовує іншу схему (специфікація Icarus / Yoroi). Старі гаманці Solana використовують raw сід-фрази без кроку деривації BIP-32. Завжди верифікуйте, що гаманець, на який ви мігруєте, слідує тій же комбінації BIP-39, BIP-32 і BIP-44.
Подальше читання: Мнемоніка, BIP-32, BIP-44, Derivation path.