Опубликовано

Сид Electrum и BIP39: почему его не принимают другие кошельки

Сид Electrum и BIP39: почему его не принимают другие кошельки

Сид-фраза Electrum — это не фраза BIP39, хотя новые фразы Electrum состоят из слов того же английского списка из 2048 слов. С версии 2.0 Electrum проверяет фразу не контрольной суммой BIP39, а номером версии, который вычисляется хешем из самих слов, выводит ключи с другой солью и по своим путям, а с версии 4.1.3 ещё и отбрасывает при создании те фразы, которые случайно проходят проверку BIP39. Поэтому кошелёк BIP39 фразу Electrum обычно отвергает как неверную, а старая фраза, случайно прошедшая проверку, открывает в нём пустой кошелёк. Ниже — как устроены оба формата, как узнать тип своей фразы, где её восстановить, как открыть фразу BIP39 в самом Electrum и как перейти с Electrum на другой кошелёк. Если термин для вас новый, начните со статьи что такое сид-фраза.

Коротко: фраза Electrum и фраза BIP39

Фраза Electrum (версии 2.0 и новее)Фраза BIP39
Число слов12 с версии 2.7; в 2.0–2.6 обычно 13 (у 2FA — 24 или 25)12, 15, 18, 21 или 24
Проверкапрефикс хеша HMAC-SHA512 (8 или 12 бит), он же задаёт тип кошелькаконтрольная сумма из SHA-256, 4 бита на 12 слов
Соль PBKDF2electrum + расширение фразыmnemonic + парольная фраза
Пути адресовm/0/i (standard), m/0'/0/i (segwit)по BIP44, BIP49, BIP84 или BIP86, например m/84'/0'/0'/0/i
Где восстановитьElectrum и несколько кошельков с поддержкой форматапочти любой кошелёк

Чем фраза Electrum отличается от BIP39

Electrum описывает свой формат в документации как систему версий сида (Seed Version System). Сначала фраза нормализуется: буквы приводятся к нижнему регистру, диакритика и лишние пробелы удаляются. Затем от неё считается HMAC-SHA512 с ключом Seed version, и шестнадцатеричная запись хеша должна начинаться с зарегистрированного префикса. Префикс называет тип кошелька и заодно служит проверкой целостности: у фразы с опечаткой шанс случайно получить допустимый префикс меньше половины процента. Ключи Electrum получает функцией PBKDF2-HMAC-SHA512 с 2048 итерациями и солью electrum плюс необязательное расширение фразы — так это записано в mnemonic.py.

BIP39 устроен иначе: к случайной энтропии дописывается контрольная сумма — первые биты её хеша SHA-256, 4 бита для 12 слов, — а сид вычисляется с солью mnemonic плюс парольная фраза. Стандарт появился в 2013 году, через два года после Electrum, и документация Electrum объясняет, почему программа его не использует. Контрольная сумма BIP39 привязывает фразу к конкретному списку слов, а номера версии во фразе нет, так что будущим программам придётся угадывать, как выведены ключи, и при неудаче они покажут пустой кошелёк. Хеш Electrum считается от текста фразы, и список слов для проверки ему не нужен. Сам текст BIP39 теперь тоже называет отсутствие версии среди недостатков стандарта и отмечает, что проблему в основном снимают кошельки с дескрипторами (BIP380).

Почему новые фразы Electrum не проходят проверку BIP39

Контрольную сумму из 4 бит случайно проходит примерно одна из 16 случайных фраз из 12 слов; те же шансы для своих фраз назвали разработчики Electrum в запросе на изменение кода № 6001. С версии 4.1.3 (июнь 2021 года) генератор Electrum пропускает всех кандидатов с правильной контрольной суммой BIP39, как сказано в истории выпусков, поэтому ни одна новая фраза Electrum проверку BIP39 не проходит. Фразы из 12 слов, созданные в версиях с 2.7 по 4.1.2, проходят её примерно в одном случае из 16 — и тогда BIP39-кошелёк без всякой ошибки открывает по ним пустой кошелёк. Фразы из 13 слов версий 2.0–2.6 не проходят никогда: длины в 13 слов в BIP39 нет.

Какие бывают фразы Electrum

Префиксы перечислены в файле version.py. Первая цифра префикса задаёт его длину: 0 — две шестнадцатеричные цифры, 1 — три.

ПрефиксТип в ElectrumКошелёкАдреса начинаются сПоявился
01standardP2PKH (в мультиподписи P2SH)1 (в мультиподписи 3)Electrum 2.0
100segwitнативный SegWit P2WPKH (в мультиподписи P2WSH)bc1q3.0; по умолчанию для новых кошельков с 3.3.0
1012faмультиподпись 2 из 3 с сервисом TrustedCoin, P2SH32.0
1022fa_segwitмультиподпись 2 из 3 с TrustedCoin, P2WSHbc1q, 62 символа3.3.0
нетoldкошелёк Electrum 1.x1до 2.0

В версии 2.7 Electrum изменил вывод ключей для 2FA, но префикс оставил прежним, поэтому старые и новые фразы 2FA он различает по длине: с версии 2.7 в них 12 слов, раньше было больше. С версии 4.1.0 (март 2021 года) мастер создания кошелька больше не спрашивает тип фразы и создаёт кошельки SegWit; другие типы можно создать только из командной строки.

Старые фразы Electrum 1.x

Electrum 1.x записывал 128 бит в 12 слов из собственного списка в 1626 слов, взятого из частотного списка слов современной поэзии в английском Викисловаре, без контрольной суммы и номера версии (old_mnemonic.py). Electrum узнаёт старую фразу, если все её 12 или 24 слова есть в этом списке. По нашему подсчёту, 861 слово из 1626 входит и в список BIP39, но такие слова, как powerful, nobody и look, в список слов BIP39 не входят и сразу выдают старую фразу. Расширения у старых фраз не бывает, а адреса таких кошельков начинаются с 1.

Пример: публичная тестовая фраза Electrum

В наборе тестов Electrum, test_wallet_vertical.py, кошельки восстанавливаются из опубликованных фраз и сверяются их адреса. Ниже — тестовая фраза типа segwit, пропущенная через формулы. Это публичные тестовые данные: не отправляйте на эти адреса средства.

фраза        bitter grass shiver impose acquire brush forget axis eager alone wine silver
HMAC-SHA512  ключ "Seed version"            100400bacf13fe2e…  -> префикс 100: segwit
BIP39        контрольная сумма              не сходится
PBKDF2       соль "electrum", 2048 раундов  8ff3b1fa35d0bace…
m/0'         ключ аккаунта                  zpub6nsHdRuY92FsMKdbn9BfjBCG6X8pyhCibNP6uDvpnw2cyrVhecvHRMa3Ne8kdJZxjxgwnpbHLkcR4bfnhHy6auHPJyDTQ3kianeuVLdkCYQ
m/0'/0/0     первый адрес для получения     bc1q3g5tmkmlvxryhh843v4dz026avatc0zzr6h3af
m/0'/1/0     первый адрес сдачи             bc1qdy94n2q5qcp0kg7v9yzwe6wvfkhnvyzje7nx2p

Ключ аккаунта и оба адреса совпадают с тестом Electrum; мы пересчитали их сами с библиотеками @scure/bip32 и @scure/btc-signer. Проверить номер версии можно и в Node.js:

const { createHmac } = require('node:crypto');
const phrase = 'bitter grass shiver impose acquire brush forget axis eager alone wine silver';
console.log(createHmac('sha512', 'Seed version').update(phrase).digest('hex').slice(0, 3)); // 100

По правилам BIP39 те же слова дают совсем другой кошелёк. Если выбрать в Electrum тип «BIP39 seed» и ввести эту фразу, программа сообщит о неправильной контрольной сумме, но позволит продолжить, и на пути по умолчанию m/84'/0'/0' первым адресом окажется bc1qdlgh4gp7rsty5vt49alv9can6jalz37z0sy7t3. А официальная тестовая фраза BIP39 «abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about», тоже публичная, даёт хеш, начинающийся с 9b99f787, то есть фразой Electrum не является; в тестах Electrum она служит примером фразы BIP39.

Как узнать, что у вас фраза Electrum

  • Спросите сам Electrum. В мастере восстановления, если оставить тип фразы Electrum, под словами появляется надпись «Тип seed-фразы» с типом: segwit, standard, old, 2fa или 2fa_segwit. Если надписи нет, а кнопка «Далее» неактивна, слова не образуют фразу Electrum или в них опечатка. В уже открытом кошельке тип показывает окно «Кошелёк» → «Информация»: в строке «Сид доступен» будет, например, «Да (segwit)».
  • Посчитайте слова. Фраз из 13 слов в BIP39 не бывает, а Electrum 2.0–2.6 брал для обычной фразы 136 случайных бит, поэтому примерно 15 таких фраз из 16 состоят из 13 слов. Биткоин-фраза из 13 слов почти наверняка создана в Electrum тех лет.
  • Проверьте слова. Правильно написанное слово, которого нет в списке BIP39, например nobody, указывает на старую фразу Electrum 1.x.
  • Вспомните, где создана фраза. Фраза из Electrum или из Cake Wallet с типом Electrum — это фраза Electrum, даже если она проходит контрольную сумму BIP39, как 12-словные фразы версий 2.7–4.1.2 примерно в одном случае из 16. В Cake Wallet фразы Electrum состоят из 24 слов — столько же, сколько в длинной фразе BIP39.

Что покажет проверка сид-фразы

Проверка сид-фразы на этом сайте сначала считает контрольную сумму BIP39, а если она не сходится, проверяет префикс Electrum. Результат зависит от того, какая у вас фраза:

ФразаЧто покажет проверка
12 слов из Electrum 4.1.3 и новее«Контрольная сумма не сходится…» и под этим: «Эти слова подходят под формат сид-фразы Electrum. Это не BIP39…»
12 слов из Electrum 2.7–4.1.2то же примерно в 15 случаях из 16, а в остальных — «Фраза BIP39 корректна»: отличить такую фразу от BIP39 по словам невозможно
13 слов из Electrum 2.0–2.6«13 слов — не длина BIP39» и подсказку о Monero, у которого тоже бывают фразы из 13 слов
24 слова из Cake Wallet с типом Electrumпочти всегда то же, что для новых 12 слов: сумма не сходится, формат Electrum
старая фраза Electrum 1.xслова, которых нет в списке BIP39, с вариантами «исправлений»: это не опечатки, исправлять их не нужно

Совпадение префикса бывает и случайным: примерно одна из 216 фраз с неверной контрольной суммой даёт префикс Electrum, поэтому фраза BIP39 с опечаткой изредка тоже получит эту пометку. Решает происхождение фразы: если её создавал не Electrum, ищите ошибку по статье неверная сид-фраза. Конвертер сид-фразы в приватный ключ считает ключи только по BIP39 и фразу Electrum отклонит как некорректную.

Какие кошельки восстанавливают фразу Electrum

Сверено с документацией или исходным кодом каждого проекта в октябре 2026 года:

КошелёкФразы ElectrumBIP39Примечания
Electrum 4.8.2 для компьютеравсе типыда, через «Опции»также доли SLIP-39
Electrum для Androidдадаполе «Тип seed-фразы»: Electrum или BIP39
BlueWalletstandard и segwitдатолько импорт, тип определяется сам
Cake Walletтолько segwitда, по умолчаниюсам создаёт фразы Electrum из 24 слов (Advanced Settings при создании кошелька); путь m/0'
SeedSignerтолько segwitдавыключено по умолчанию: Settings → Advanced → Electrum seed support
Sparrowнетдана фразу segwit пишет Unsupported Electrum seed, на standard — Invalid checksum

Код восстановления Cake Wallet принимает фразу Electrum, только если у неё префикс segwit. SeedSigner держит фразы Electrum на путях самого Electrum и отключает для них резервные копии SeedQR и BIP-85. Sparrow во всплывающей подсказке советует импортировать вместо фразы файл кошелька Electrum.

Как восстановить фразу Electrum в Electrum

Шаги для текущей версии Electrum 4.8.2 на компьютере; русские названия взяты из официального перевода программы:

  1. Откройте мастер. Он запускается при первом старте; иначе выберите «Файл» → «Создать/восстановить» (File → New/Restore), задайте имя файла кошелька и нажмите «Далее».
  2. Выберите тип кошелька. «Стандартный кошелек» (Standard wallet) принимает фразы old, standard и segwit, «Кошелек с двухфакторной аутентификацией» (Wallet with two-factor authentication) — фразы 2FA. Фразу 2FA, введённую в стандартный кошелёк, Electrum сам перенаправит в мастер 2FA, а обычную фразу в мастере 2FA не примет и посоветует восстановить её как стандартный кошелёк.
  3. Выберите «У меня уже есть seed-фраза» (I already have a seed) и введите слова, оставив тип фразы Electrum. Проверьте, что надпись «Тип seed-фразы» показывает ожидаемый тип.
  4. Добавьте расширение, если задавали его. Нажмите «Опции» (Options), отметьте «Расширить этот seed при помощи пользовательских слов» (Extend this seed with custom words) и введите расширение на следующем экране.
  5. Для фразы 2FA выберите Keep или «Отключить» (Disable). При отключении в файл кошелька попадают два из трёх главных приватных ключей, и тратить средства можно без сервера TrustedCoin.
  6. Задайте пароль кошелька. Он шифрует файл на компьютере и в фразу не входит.

Экран выбора пути деривации Electrum для своих фраз пропускает: префикс сам говорит, какие пути использовать. В приложении для Android выберите Electrum в поле «Тип seed-фразы». Где потом посмотреть фразу в открытом кошельке, рассказано в статье как посмотреть сид-фразу, а об установке и других возможностях программы — в нашем обзоре Electrum (на английском).

Как открыть фразу BIP39 в Electrum

Тот же мастер импортирует фразы BIP39 из других кошельков: выберите «Стандартный кошелек» и «У меня уже есть seed-фраза», нажмите «Опции», выберите «BIP39 seed» и отметьте расширение, если у кошелька была парольная фраза. В отличие от собственной фразы, для BIP39 Electrum спросит тип скрипта и путь деривации на экране «Тип скрипта и путь». Кнопка «Обнаружить существующие учетные записи» (Detect Existing Accounts) ищет использованные аккаунты через сеть; иначе выберите legacy (p2pkh) с путём m/44'/0'/0', p2sh-segwit (p2wpkh-p2sh) с путём m/49'/0'/0' или native segwit (p2wpkh) с путём m/84'/0'/0', который стоит по умолчанию. Пошаговое восстановление в Electrum и других кошельках описано в статье как восстановить кошелёк по сид-фразе, а сами пути — в статье путь деривации. Чем это отличается от восстановления фразы Electrum:

  • Опечатка не остановит. Electrum напишет «Неправильная контрольная сумма BIP39» (BIP39 checksum failed), а если слова нет в списке — Unknown BIP39 wordlist, но всё равно даст продолжить, в другой, пустой кошелёк. Сверяйте каждое слово.
  • Нет Taproot. Типы скриптов заканчиваются нативным SegWit, поэтому кошелёк BIP86 в Electrum не восстановится.
  • Нет обещания поддержки. Electrum предупреждает, что импортирует фразы BIP39, чтобы дать доступ к средствам из других кошельков, но сам их не создаёт, потому что они не отвечают его стандарту безопасности. Отсутствие номера версии, по словам разработчиков, угрожает совместимости с будущими программами, и поддержку импорта BIP39 в будущем они не гарантируют.
  • Фраза не сохраняется. Из фразы BIP39 Electrum записывает в файл только ключ аккаунта (keystore.py), поэтому пункт «Кошелёк» → «Seed» у такого кошелька неактивен и единственная копия слов — ваша запись.
  • Нет восстанавливаемых каналов Lightning. Они бывают только в кошельках с фразой Electrum, так что в кошельке BIP39 после открытия каждого канала нужна свежая резервная копия кошелька или канала.

Расширение фразы Electrum и парольная фраза BIP39

Оба — необязательные дополнительные слова: другое расширение или другая парольная фраза открывают другой кошелёк, и в Electrum их задаёт один и тот же флажок. Но обрабатываются они по-разному:

Расширение фразы ElectrumПарольная фраза BIP39
Сольelectrum + расширениеmnemonic + парольная фраза
Нормализациянижний регистр, без диакритики и повторных пробеловтолько Unicode NFKD
Satoshi и satoshiодин и тот же кошелёкразные кошельки
Где доступноу фраз Electrum, кроме старых и фраз 2FA до версии 2.7у любой фразы BIP39

Значит, забытая заглавная буква не закроет доступ к кошельку с фразой Electrum, но закроет его в любом кошельке BIP39, включая режим BIP39 в самом Electrum. Ни то, ни другое не пароль кошелька: пароль только шифрует файл на компьютере.

Как перейти с фразы Electrum на кошелёк BIP39

Конвертации не существует. Оба формата подают в PBKDF2 сами слова, но с разной солью, а потом идут разными путями: одни и те же 12 слов ведут к bc1q3g5t… в Electrum и к bc1qdlgh… по правилам BIP39. Обратного пути тоже нет: текст BIP39 отмечает, что преобразование работает только в одну сторону и произвольный сид BIP32 фразой BIP39 не записать. Переход означает перевод монет:

  1. Откройте кошелёк Electrum в Electrum, при необходимости восстановив его по фразе, и дождитесь синхронизации.
  2. Создайте новый кошелёк в приложении или на устройстве, куда переходите, запишите и проверьте его новую фразу BIP39.
  3. Отправьте небольшую тестовую сумму на новый кошелёк и дождитесь её поступления.
  4. Отправьте остальное. На вкладке «Отправка» вставьте адрес и нажмите «Максимум» (Max). Каналы Lightning сначала закройте, чтобы эти средства вернулись в блокчейн.
  5. Храните старую фразу, пока кошелёк Electrum не опустеет и пока на его старые адреса может кто-то платить.

Чтобы открыть тот же кошелёк в Sparrow без перевода, импортируйте файл кошелька Electrum через File → Import Wallet. Импорт Sparrow читает файлы кошельков из фраз standard и segwit, а кошельки 2FA отклоняет; резервной копией при этом остаётся фраза Electrum. Какие ещё форматы фраз не совместимы с BIP39, разобрано в статье форматы сид-фраз в разных сетях.

Частые вопросы

Можно ли превратить фразу Electrum в фразу BIP39?

Нет. Соль и пути разные, поэтому ни одна фраза BIP39 не откроет тот же кошелёк. Создайте новый кошелёк BIP39 и переведите в него средства.

Почему кошелёк пишет, что моя фраза Electrum неверна?

Он проверяет контрольную сумму BIP39, которую все фразы Electrum с версии 4.1.3 не проходят намеренно, а большинство более старых — случайно; у фразы из 13 слов к тому же недопустимая для BIP39 длина. Восстановите фразу в Electrum или в другом кошельке из таблицы выше. Если и Electrum её не принимает, ищите опечатку или переставленные слова.

Фраза Electrum менее надёжна, чем BIP39?

На практике нет. Документация Electrum насчитывает у фразы из 12 слов 132 бита энтропии — против 128 бит и 4 бит контрольной суммы у 12 слов BIP39, — но отмечает, что префикс версии ослабляет растяжение ключа: атакующий отбрасывает большинство неверных вариантов после одного быстрого хеша, не запуская PBKDF2. По её расчёту, стандартная фраза Electrum по числу хешей равноценна 135 битам. Оба формата далеко за пределами перебора, а настоящая разница — в совместимости: фразы Electrum восстанавливает меньше кошельков.

Можно ли создать в Electrum фразу BIP39?

Нет. Electrum фразы BIP39 только импортирует, а новые кошельки создаёт с фразой собственного формата. Если нужна фраза BIP39, создайте кошелёк в приложении или на устройстве, которое работает с этим стандартом.