Секреты сид-фразы BIP-39🔐: как из байтов появляются 12 магических слов
🧠 Что такое сид-фраза? И почему она не просто набор слов?
Сид-фраза (mnemonic phrase) — это последовательность слов (обычно 12 или 24), которая кодирует случайное число (энтропию) и контрольную сумму. Она используется для создания приватных ключей в криптокошельках.
❗ Важно: не любой случайный набор из 12 слов из словаря BIP-39 будет действительной сид-фразой — без корректной контрольной суммы такая фраза будет отвергнута кошельком как недействительная.
❗ Эти слова не случайны — они представляют конкретные биты информации. Ошибка в одном слове делает фразу недействительной.
⚙️ Как работает генерация сид-фразы? Пошагово 🧪
🔢 Шаг 1: Генерация энтропии
Для фразы из 12 слов используется 128 бит энтропии (16 байт).
Пример (в hex):
110e5d4a7429bb6a9b4a63f70d6d64b2
В двоичном виде:
00010001000011100101110101001010011101000010100110111011011010101001101101001010011000111111011100001101011011010110010010110010
🧮 Шаг 2: Добавляем контрольную сумму
Контрольная сумма — это первые N бит от SHA-256 хеша энтропии. Для 128 бит энтропии нужно 4 бита.
SHA-256(entropy):
ef9054cb1ff8ab99ad3d...
Контрольная сумма:
1110
Общая строка: 128 + 4 = 132 бита
Энтропия (128 бит) | Контрольная сумма (4 бита) |
---|---|
0001...10110010 | 1110 |
✂️ Шаг 3: Разделяем на блоки по 11 бит
132 бита делятся на 12 блоков по 11 бит. Каждый блок — это индекс слова из словаря BIP-39.
Блок № | Биты | Значение | Слово |
---|---|---|---|
1 | 00010001000 | 136 | accident |
2 | 11100101110 | 918 | fitness |
… | … | … | … |
🧩 Почему именно 2048 слов?
11 бит = 2¹¹ = 2048. Словарь BIP-39 содержит ровно 2048 слов.
📞 Аналогия: как телефонная книга с 2048 словами. Если ты знаешь номер, ты знаешь слово.
🔁 Результат — 12 слов сид-фразы
accident fitness glow traffic trust spider lamp crucial magnet stay awkward keen
🔐 Безопасность: можно ли угадать фразу?
Кол-во слов | Энтропия | Попыток для перебора |
---|---|---|
12 | 128 бит | 2¹²⁸ (≈3.4×10³⁸) |
24 | 256 бит | 2²⁵⁶ (невозможно) |
🔓 При потере одного слова можно попробовать перебрать 2048 вариантов и проверить контрольную сумму. Но при двух — почти нереально.
🛡️ А что даёт контрольная сумма?
Она:
- Позволяет выявить ошибки
- Не даёт ввести «невалидную» фразу
- Гарантирует, что фраза была сгенерирована по стандарту
📏 Аналогия: как контрольная цифра в номере карты — случайный номер не пройдёт проверку.
🔧 Пример на практике (JavaScript)
const bip39 = require('bip39');
const mnemonic = bip39.generateMnemonic(128);
console.log(mnemonic);
console.log(bip39.validateMnemonic(mnemonic)); // true
📌 Резюме
- Сид-фраза — это закодированное случайное число + контрольная сумма
- Слова соответствуют битам, а не выбраны случайно
- Понимание механизма помогает лучше защищать свои активы
- Фраза может быть проверена, восстановлена и использована в любом кошельке, поддерживающем BIP-39
🚀 Надёжность в каждом бите
За 12 словами скрыт мощный математический механизм. А за ним — ваши активы, история и цифровая идентичность.