487 / 736CS

BIP39 checksum

Контрольная сумма мнемонической резервной копии

Вы вводите слова резервной копии для восстановления кошелька, а приложение сообщает об ошибке. Обнаружить её может помочь BIP39 checksum — короткая проверка, встроенная в запись слов. Она находит часть ошибок, но даже успешный результат не подтверждает, что вы нашли свой кошелёк или что слова безопасны.

Контрольная сумма — несколько битов, базовых единиц информации, вычисленных из исходных случайных данных. BIP39 обозначает их длину как ENT, добавляет первые ENT/32 битов их отпечатка SHA-256 и делит результат на группы по 11 битов для выбора слов. Это проверка записи, а не новый секрет: любой с теми же данными может вычислить ту же сумму.

Слова представляют и исходные случайные данные, называемые энтропией, и их короткую проверку. BIP39 допускает ENT = 128, 160, 192, 224 или 256 битов. К ним соответственно добавляют 4, 5, 6, 7 или 8 проверочных битов и получают 12, 15, 18, 21 или 24 слова. Каждая группа из 11 битов выбирает слово с номером в диапазоне 0‑2047 из списка 2048 слов. При восстановлении программа может разобрать эту запись и проверить согласованность её частей. [1]

Последнее слово содержит и часть исходных секретных данных. Для входа из 128 битов получаем 128 + 4 = 132 = 12 × 11: последнее слово вмещает 7 битов энтропии и 4 проверочных бита. При 24 словах в нём 3 бита энтропии и 8 проверочных битов. Теряя последнее слово, вы теряете не только проверку. Предыдущие слова не задают единственное правильное окончание; универсального проверочного слова, которое можно просто подставить, нет. [1]

Проверка короткая и не может отклонить каждую неверную комбинацию. Среди равномерно случайных последовательностей из правильного списка проходит доля 1/16 для 12 слов и 1/256 для 24 слов. Эти числа описывают все возможные последовательности соответствующей длины. Они не говорят, насколько надёжно будет обнаружена именно ваша опечатка или перестановка. Поэтому зелёное подтверждение не доказывает, что резервная копия переписана точно. [1]

Представьте резервную копию, опубликованную в руководстве. Её контрольная сумма может быть совершенно правильной, но использовать её для своих денег небезопасно. Проверяющая программа лишь переводит слова в биты по правильному списку, отделяет исходные данные и сравнивает проверочные биты с их SHA-256. Злоумышленник способен выполнить то же вычисление. Проверка не определяет, кто создал слова и кто их знает. Она не подтверждает происхождение и не даёт общего способа исправить ошибочную копию. [1]

Если вы используете BIP39 passphrase, то есть дополнительный пароль, контрольная сумма слов его вообще не проверяет. Отдельное вычисление PBKDF2-HMAC-SHA512 превращает фразу и passphrase в 512-битовый seed, секретную основу для выведения ключей. Поэтому опечатка в passphrase может привести к другому кошельку, хотя слова прошли проверку. Сохраните их точную запись, порядок и нужную passphrase. Не переводите слова в другой список: это изменит seed. [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Спецификация
Обновлено: Сначала источники · Не является инвестиционной рекомендацией