Открыть сервис

BIP39

BIP39 — это технический стандарт (Bitcoin Improvement Proposal 39), описывающий метод генерации мнемонической фразы (мнемоники) для детерминированных криптовалютных кошельков. Стандарт был предложен разработчиками Мареком Палатинусом, Пирсом Брэндоном и Аароном Ванвирдом в 2013 году и принят в экосистеме Биткоина, а затем и большинства других криптовалют. Основная цель BIP39 — предоставить пользователю удобный и надёжный способ резервного копирования и восстановления приватных ключей с помощью последовательности слов, а не длинных шестнадцатеричных или двоичных чисел.

История и предпосылки создания

До появления BIP39 резервное копирование приватных ключей в криптовалютных кошельках было сложным и подверженным ошибкам процессом. Пользователям приходилось записывать длинные строки символов (например, 64-значные шестнадцатеричные числа для каждого ключа). Это было неудобно, а вероятность ошибки при ручном копировании была высокой. В 2013 году разработчики Биткоина предложили серию улучшений, направленных на упрощение работы с кошельками. BIP32 (иерархические детерминированные кошельки) позволил генерировать множество ключей из одного мастер-ключа, а BIP39 стандартизировал представление этого мастер-ключа в виде мнемонической фразы.

Стандарт был опубликован 10 сентября 2013 года и впоследствии стал неотъемлемой частью большинства криптовалютных кошельков, включая аппаратные (Ledger, Trezor), программные (Electrum, Exodus) и мобильные приложения. Его принятие значительно повысило удобство использования криптовалют для массового пользователя.

Принцип работы

BIP39 определяет процесс преобразования энтропии (случайных данных) в последовательность слов из заранее определённого словаря.

Генерация мнемонической фразы

  1. Генерация энтропии: Сначала создаётся случайная последовательность битов (энтропия). Её длина может составлять 128, 160, 192, 224 или 256 бит. Чем больше энтропия, тем длиннее будет итоговая мнемоническая фраза (12, 15, 18, 21 или 24 слова соответственно).
  2. Вычисление контрольной суммы: К энтропии добавляется контрольная сумма (checksum), которая представляет собой первые несколько бит хеша SHA-256 от энтропии. Длина контрольной суммы составляет 4 бита на каждые 32 бита энтропии (например, для 128 бит энтропии — 4 бита контрольной суммы).
  3. Разбиение на группы: Полученная последовательность битов (энтропия + контрольная сумма) разбивается на группы по 11 бит.
  4. Индексация слов: Каждая 11-битная группа интерпретируется как целое число (от 0 до 2047). Это число используется как индекс для выбора слова из стандартного словаря BIP39, содержащего ровно 2048 слов.
  5. Формирование фразы: Выбранные слова объединяются в последовательность, образуя мнемоническую фразу. Слова записываются в заданном порядке, обычно строчными буквами, разделёнными пробелами.

Восстановление кошелька

Для восстановления кошелька пользователь вводит мнемоническую фразу в соответствующее поле кошелька. Программа выполняет обратный процесс:

  1. Преобразует каждое слово в его 11-битный индекс.
  2. Собирает все биты в одну последовательность.
  3. Отделяет последние биты (контрольную сумму) и проверяет, совпадает ли она с хешем SHA-256 от оставшихся битов (энтропии).
  4. Если контрольная сумма совпадает, энтропия считается корректной, и из неё генерируется мастер-ключ (seed) для иерархического детерминированного кошелька (BIP32).

Словарь BIP39

Стандарт BIP39 включает в себя список из 2048 слов, который был составлен на основе анализа частотности слов в английском языке. Словарь разработан таким образом, чтобы:

  • Слова были легко запоминаемыми и различными.
  • Избежать омонимов и слов, которые можно легко перепутать (например, «man» и «men»).
  • Первые четыре буквы каждого слова были уникальны, что позволяет однозначно идентифицировать слово даже при частичном вводе.

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

Безопасность и ограничения

Криптографическая стойкость

Мнемоническая фраза, сгенерированная по BIP39, обладает той же криптографической стойкостью, что и исходная энтропия. Например, 12-словная фраза (128 бит энтропии) обеспечивает 2^128 возможных комбинаций, что считается практически невзламываемым при текущем уровне развития вычислительной техники. 24-словная фраза (256 бит энтропии) обеспечивает ещё более высокий уровень безопасности.

Уязвимости

Основные риски, связанные с BIP39, лежат не в криптографической слабости стандарта, а в человеческом факторе и методах хранения:

  • Физическая кража или потеря: Если злоумышленник получает доступ к записанной мнемонической фразе, он может полностью контролировать все средства на соответствующем кошельке.
  • Фишинг и вредоносное ПО: Ввод мнемонической фразы на поддельном сайте или в заражённом приложении приводит к краже средств.
  • Некачественная генерация энтропии: Если генератор случайных чисел в кошельке (особенно в онлайн-сервисах) ненадёжен, возможна генерация предсказуемых фраз.
  • Социальная инженерия: Мошенники могут пытаться выманить мнемоническую фразу под различными предлогами.

Дополнительная защита: парольная фраза (passphrase)

Стандарт BIP39 допускает использование необязательной парольной фразы (passphrase), которая добавляется к мнемонической фразе перед генерацией мастер-ключа. Эта парольная фраза не хранится в кошельке и не является частью мнемоники. Если злоумышленник узнаёт мнемоническую фразу, но не знает парольную фразу, он не сможет получить доступ к средствам. Использование парольной фразы значительно повышает безопасность, но также увеличивает риск потери доступа, если пользователь забывает её.

Применение

Стандарт BIP39 используется в подавляющем большинстве современных криптовалютных кошельков:

  • Аппаратные кошельки: Устройства, такие как Ledger, Trezor, KeepKey, используют BIP39 для генерации и восстановления мастер-ключа.
  • Программные кошельки: Десктопные и мобильные приложения (Electrum, Exodus, Trust Wallet, MetaMask) поддерживают импорт и экспорт мнемонических фраз.
  • Биржи и кастодиальные сервисы: Некоторые платформы позволяют пользователям экспортировать мнемоническую фразу для самостоятельного хранения средств.

Критика и альтернативы

Несмотря на широкое распространение, BIP39 не лишён критики:

  • Отсутствие стандартизации для неанглийских языков: Разные реализации могут использовать разные переводы словаря, что приводит к несовместимости.
  • Сложность запоминания: Даже 12-словная фраза может быть трудна для запоминания обычным пользователем, что побуждает к записи на бумаге, что создаёт риск физической кражи.
  • Отсутствие защиты от брутфорса: Если мнемоническая фраза скомпрометирована, нет механизма для её блокировки или смены без потери средств.

Альтернативой BIP39 является стандарт BIP85, который позволяет генерировать мнемонические фразы для дочерних кошельков из мастер-ключа, а также SLIP39 (Shamir's Secret Sharing), который разделяет мнемоническую фразу на несколько частей (шардов), что повышает устойчивость к потере одной из них.

Интересные факты

  • Слово «abandon» — первое слово в английском словаре BIP39. Если все 12 или 24 слова фразы — «abandon», это означает, что энтропия была нулевой, что является крайне небезопасным.
  • Существуют онлайн-сервисы, которые позволяют проверить, не скомпрометирована ли конкретная мнемоническая фраза (например, если она была случайно сгенерирована или опубликована).
  • Стандарт BIP39 не является обязательным для всех криптовалютных кошельков, но его поддержка стала де-факто стандартом индустрии.

Источники

  • Bitcoin Improvement Proposal 39 (BIP39) — оригинальный документ.
  • Bitcoin Improvement Proposal 32 (BIP32) — иерархические детерминированные кошельки.
  • Bitcoin Improvement Proposal 44 (BIP44) — мультивалютные иерархические кошельки.
  • Документация аппаратных кошельков Ledger и Trezor.
  • Код реализации BIP39 в открытых проектах (например, библиотека bip39 на Python).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →