BIP-39 — Bitcoin Improvement Proposal 39 — это спецификация, которая превратила абстрактное понятие "256 бит энтропии" в двенадцать или двадцать четыре английских слова, которые почти каждый современный кошелёк использует для бэкапа ключей. Авторы — Марек Палатинус, Павол Руснак, Аарон Войсин и Шон Боу, ратифицирован в 2013 году. Теперь де-факто стандарт для Ledger, Trezor, Coldcard, Keystone, MetaMask, Rabby и десятков других.

Три вещи, которые стандартизировал BIP-39

Первое, словарь. Фиксированный 2 048-словный английский словарь, выбранный так, чтобы первые четыре буквы каждого слова были уникальны — полезно для гравировки на коротких стальных пластинах, где гравировка полного слова непрактична. Переводные словари существуют для японского, корейского, испанского, французского и семи других языков, но английский словарь остаётся самым широко поддерживаемым и рекомендованным по умолчанию.

Второе, конвертация энтропии в слова. Кошелёк хеширует энтропию, добавляет биты checksum (один бит на тридцать два бита энтропии), нарезает результат на 11-битные блоки. Каждый блок индексируется в словарь. Результат — двенадцать слов для 128 бит энтропии, пятнадцать для 160, восемнадцать для 192, двадцать одно для 224, двадцать четыре для 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.