Введение
Мнемоническая фраза (seed-фраза) — это основа безопасности любого некастодиального криптовалютного кошелька. Она позволяет восстановить доступ к средствам даже при потере устройства. Электрум (Electrum) — один из старейших и наиболее уважаемых биткоин-кошельков, который использует собственный, отличный от BIP39 алгоритм генерации мнемоники. В этой статье мы подробно разберем, как именно Electrum создает seed-фразу, какие криптографические примитивы задействованы и чем этот подход отличается от стандарта BIP39.
Что такое мнемоническая фраза Electrum?
Мнемоническая фраза Electrum — это последовательность из 12 слов, выбранных из специального словаря на 2048 слов. В отличие от многих других кошельков, Electrum не использует BIP39 напрямую. Его алгоритм был разработан для поддержки различных типов кошельков (Standard, SegWit, 2FA) и включает в себя версионный префикс и контрольную сумму, встроенные в саму структуру seed.
Отличия от BIP39
Хотя Electrum и использует тот же словарь из 2048 английских слов, что и BIP39, его алгоритм имеет ряд ключевых отличий:
- Версионный префикс: В Electrum первые биты seed кодируют тип кошелька. Это позволяет кошельку автоматически определять, к какому типу относится введенная фраза.
- Контрольная сумма: Electrum использует 4-битную контрольную сумму, вычисляемую как первые 4 бита SHA256 от энтропии.
- Общая длина: Seed Electrum всегда имеет длину 132 бита, что соответствует 12 словам по 11 бит.
- Деривация ключей: Electrum не использует PBKDF2 для преобразования мнемоники в seed, как BIP39. Вместо этого seed-фраза напрямую декодируется в hex-строку, которая затем используется для генерации мастер-ключа по алгоритму, близкому к BIP32.
Алгоритм генерации мнемоники Electrum
Рассмотрим пошаговый процесс создания seed-фразы в Electrum.

1. Словарь (Wordlist)
Electrum использует фиксированный словарь из 2048 слов. Каждому слову соответствует индекс от 0 до 2047. Поскольку 2048 = 2^11, каждое слово кодирует ровно 11 бит информации. Этот словарь полностью совпадает с английским словарем BIP39.
2. Версионные префиксы
В зависимости от типа кошелька Electrum добавляет к seed определенный hex-префикс:
- Standard:
01 - SegWit:
100 - 2FA:
101 - 2FA SegWit:
102
Эти префиксы занимают от 8 до 12 бит и определяют тип кошелька.
3. Генерация энтропии
Для генерации seed используется криптографически стойкий генератор случайных чисел. Длина энтропии подбирается таким образом, чтобы общая длина seed составляла 132 бита. С учетом префикса и 4-битной контрольной суммы:
- Для Standard: префикс
01(8 бит) + энтропия (120 бит) + контрольная сумма (4 бита) = 132 бита. - Для SegWit, 2FA, 2FA SegWit: префикс (12 бит) + энтропия (116 бит) + контрольная сумма (4 бита) = 132 бита.

4. Вычисление контрольной суммы
Контрольная сумма вычисляется как первые 4 бита хеша SHA256 от энтропии (в виде байтовой строки). Она добавляется в конец seed для проверки целостности при восстановлении.
5. Формирование seed
Итоговый seed представляет собой hex-строку, состоящую из:префикс + энтропия + контрольная сумма
Например, для Standard кошелька это может быть строка из 33 hex-символов (132 бита). Эта строка преобразуется в большое целое число.
6. Кодирование в base-2048
Полученное целое число переводится в систему счисления по основанию 2048. Каждая цифра этого числа (от 0 до 2047) соответствует слову из словаря. Поскольку число имеет длину ровно 132 бита, при кодировании получается ровно 12 слов. Первое слово соответствует старшим 11 битам, последнее — младшим.
Процесс восстановления и проверки
Когда пользователь вводит мнемоническую фразу, Electrum выполняет обратные действия:
- Разбивает фразу на слова.

- Находит индекс каждого слова в словаре.
- Восстанавливает целое число, интерпретируя индексы как цифры в base-2048.
- Преобразует число в hex-строку.
- Проверяет, соответствует ли префикс выбранному типу кошелька.
- Извлекает энтропию и контрольную сумму.
- Пересчитывает контрольную сумму и сравнивает с полученной.
- Если проверка пройдена, seed используется для генерации мастер-ключа.
Безопасность и лучшие практики
Алгоритм Electrum обеспечивает высокую безопасность при соблюдении следующих условий:
- Качественная энтропия: Используйте только доверенные источники случайности. Electrum применяет системный CSPRNG.
- Офлайн-генерация: Для максимальной безопасности генерируйте seed на устройстве, не подключенном к интернету.
- Резервное копирование: Храните мнемоническую фразу на физическом носителе в нескольких безопасных местах.
- Проверка совместимости: Помните, что seed Electrum не совместим с BIP39-кошельками. Для переноса средств может потребоваться специальный конвертер.
Заключение
Мнемоническая фраза Electrum — это продуманный криптографический механизм, который обеспечивает удобство использования и безопасность. Понимание принципов его работы помогает разработчикам создавать совместимые инструменты, а пользователям — осознанно подходить к защите своих средств. Несмотря на отличия от BIP39, алгоритм Electrum остается надежным и проверенным временем решением.