BIP39 и мнемоническая фраза

0 13

Вы читаете эту статью, потому что хотите самостоятельно изучить информацию. Вы не доверяете, а проверяете. Недостаточно, если вам просто скажут: «Вот, запиши эти слова. Не теряй их и никому не показывай. Удачи!» Надо понять, откуда эти слова взялись и что они означают. И главное, надо понять, как и почему эти слова позволяют вам владеть биткойнами на вашем новом кошельке.

В этой статье вы прочитаете нужные вам объяснения. Но вам не обязательно ей доверять – вы можете проверить информацию по другим источникам.

Если вы впервые захотите пользоваться Биткойном, вам скажут, что нужно скачать приложение-кошелёк. После того как вы скачаете приложение на телефон, компьютер или другое устройство, вы увидите опцию «создать новый кошелёк». Когда вы это сделаете, вам настоятельно рекомендуют записать список слов (12 или 24 в зависимости от кошелька) и не фотографировать их. Также вам скажут, что их надо хранить в надёжном месте и что, если вы их потеряете или забудете, вы лишитесь доступа к монетам на только что созданном кошельке.

Содержание:

Ваш приватный ключ в мнемоническом виде (BIP39)

Если кратко, то эти 12 или 24 слова – это то, что получится, если перевести с двоичного кода (языка компьютеров, состоящего из ноликов и единичек) на язык, который вы можете узнать, понять и (пожалуй, главное) запомнить.

Биткойн – цифровая математическая крепость. Было бы странно и сложно, если бы нужно было прочитать, скопировать или ввести строку из 256 единичек и ноликов, составляющую ваш приватный ключ, чтобы подтвердить владение определённой суммой биткойнов. Чтобы сделать всё проще и безопаснее для всех пользователей, была разработана стандартная система, известная как BIP39, предоставляющая удобный набор слов, известный как мнемоническая фраза, или seed-фраза (встречаются оба названия).

Поскольку ваш приватный ключ, позволяющий вам тратить ваши биткойны, – это точная, упорядоченная строка на 256 битов, эти 256 битов всегда должны быть в том же порядке, если вы хотите распоряжаться вашими средствами.

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

Это лишь простой и общий ответ. Если вы держите или планируете держать биткойны, читайте дальше. Для любого пользователя криптовалюты очень важно понимать свой секретный ключ.

Ваш кошелёк – не банковский счёт

Пока что вы узнали лишь самые азы. Если вы не хотите узнать больше, то не покупайте биткойны – пока не будете готовы взять на себя ответственность за них.

Когда вы скачали приложение, создали новый кошелёк и получили мнемоническую фразу, вы не просто открыли новый счёт для биткойнов подобно счёту в банке для долларов. Вообще говоря, название «кошелёк» вносит некоторую путаницу, так как на самом деле ваши биткойны на нём вовсе не хранятся.

Имейте в виду: это лишь программное обеспечение, хранящее ваш секретный ключ (вашу мнемоническую фразу) и позволяющее вам тратить ваши биткойны. Если вы надёжно храните вашу мнемоническую фразу и затем уроните ваш телефон в океан, вы можете просто купить новый, снова скачать кошелёк, ввести свою мнемоническую фразу и восстановить доступ к вашим биткойнам.

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

Поэтому многие предпочитают использовать устройство Billfodl, чтобы хранить этот набор слов на пластинках из нержавеющей стали, непроницаемых для огня и воды.

Начинаете видеть «магию» Биткойна? Дальше вы узнаете, что такое BIP39 и как оно работает.

Предложение об улучшении Биткойна №39: что это и как оно работает?

BIP расшифровывается как Bitcoin Improvement Proposal – «предложение по улучшению Биткойна». Просмотреть такие предложения можно на GitHub, но мы здесь рассмотрим только BIP-0039 (обычно называемое просто BIP39).

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

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

Как создать собственный приватный ключ Биткойна

Следующие шаги – общее руководство, как сгенерировать собственный приватный ключ. Подробнее каждый шаг мы рассмотрим далее в статье.

  1. Выберем 256 битов (т. е. 256 единичек и ноликов). Конвертируем наши 256 битов из двоичной системы в шестнадцатеричную (если только они уже не записаны в шестнадцатеричной системе. Убедитесь, что у вас есть оба варианта – они вам оба понадобятся).
  2. Вставим шестнадцатеричный вариант в хеш-функцию SHA-256 (двоичную), чтобы получить хеш, который мы будем использовать для создания контрольной суммы.
  3. Новый хеш будет записан в шестнадцатеричном коде, поэтому мы возьмём первые два знака и конвертируем их из шестнадцатеричной системы в 8 двоичных знаков (битов). Получив наши последние 8 битов, добавим их к изначальным 256 битам и получим в итоге 264 бита.
  4. Разделим наши 264 бита на группы по 11. Вставим каждую группу из 11 битов (слева направо) в конвертер, чтобы вместо двоичных чисел получить обычные десятичные.
  5. Найдём соответствующие слова в списке слов BIP39.

Имейте в виду: в двоичной системе счёт начинается с 0. Если вы смотрите на список слов BIP39, обратите внимание, начинается ли он с 1 или 0. Если он начинается с 1, вам понадобится добавить +1 к вашему результату конвертирования двоичного кода в десятичные числа, чтобы найти в списке верное соответствующее слово.

  1. С помощью конвертера мнемонических кодов Иэна Коулмена можно проверить, правильно ли вы всё сделали.
  2. Итак, мы создали собственный секретный ключ и превратили его в мнемоническую фразу по стандарту BIP39.

Прежде чем начать

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

Шаг 1: Выбираем наши биты

Выбирая 256 битов, которые вы будете использовать для создания мнемонической фразы, в идеале вам нужна случайность. Использовать скачанный кошелёк, чтобы автоматически сгенерировать случайную мнемоническую фразу, пожалуй, лучший способ. Однако в образовательных целях мы создадим нашу фразу сами. Чтобы получить мои 256 битов, я введу в хеш-функцию SHA-256 фразу «billfold waterproof fireproof metal», и результат и будет моей нужной случайной последовательностью (также часто называемой «энтропией»). Я использую этот онлайн-генератор хешей SHA-256.

Имейте в виду, что этот генератор, как и практически все другие, доступные в сети, даёт только шестнадцатеричный выход. Если вам нужен двоичный хеш, см. шаг 2.

Шаг 2: Хешируем выбранные 256 битов и используем выход для создания контрольной суммы

Для конвертирования шестнадцатеричного кода в двоичный и наоборот можно использовать этот отличный конвертер. Если у вас изначально был двоичный код, конвертируйте с помощью этого инструмента ваши 256 битов в шестнадцатеричный код. Точно так же с полученного на предыдущем шаге шестнадцатеричного кода можно получить двоичный.

Теперь возьмите шестнадцатеричный выход и вставьте его в этот конвертер, чтобы получить выход двоичной функции SHA-256.

После этого, если промотать вниз, вы увидите список выходов. Найдите SHA-256. Скопируйте только первые две цифры этого выхода.

Мой результат хеширования начинается с 41 – это запись в шестнадцатеричном коде. Однако нам нужен двоичный код (8 битов), поэтому я быстро вернулся в предыдущий инструмент для конвертирования и ввёл эти два первых знака хеша, чтобы найти 8 нужных цифр: 11000000.

Шаг 3: Добавим первые 8 битов хеша к изначальным 256 битам, чтобы получить 264 бита

Обратите внимание, что мы хотим получить мнемоническую фразу из 24 слов для большей безопасности, поэтому мы используем 264 бита. Однако вы можете проследовать инструкциям BIP39, чтобы получить 12, 15, 18 или 21 слово.

Шаг 4: Разделим наши 264 бита на 24 группы по 11 битов

Получится что-то вроде этого:

01100111101
11100010000
11111010011
10011011100
00010100000
10010000111
00011110000
10101011011
10111111010
01000111010
11000011111
11010001011
01010010010
01001011010
01110000001
00100110100
10111010001
11100101111
11001101111
01010101000
10111100110
00001011000
11111101001
10111000000

Шаг 5: Конвертируем двоичное значение в десятичное

Имейте в виду: в BIP39 есть список из 2048 слов, потому что есть 2048 возможных комбинаций единичек и ноликов в группе из 11 битов. В справочном файле BIP39 они пронумерованы от 1 до 2048, но вы можете найти другой файл, где они пронумерованы от 0 до 2047. Каждая из ваших групп по 11 битов будет соответствовать одному слову из списка.

Если найденный вами список начинается с 1, вам нужно добавить +1 к каждому полученному числу, чтобы найти соответствующее слово. Если ваш список начинается с 0, то ничего делать не нужно.

Но сначала нам нужно конвертировать наши группы по 11 битов из двоичной системы во всем нам знакомую десятичную. Если вы знаете двоичную математику, то можно проделать это в уме. Или же можно воспользоваться уже упоминавшимся инструментом для конвертирования. Обратите внимание, что все полученные цифры будут меньше 2048.

01100111101 829
11100010000 1808
11111010011 2003
10011011100 1244
00010100000 160
10010000111 1159
00011110000 240
10101011011 1371
10111111010 1530
01000111010 570
11000011111 1567
11010001011 1675
01010010010 658
01001011010 602
01110000001 897
00100110100 308
10111010001 1489
11100101111 1839
11001101111 1647
01010101000 680
10111100110 1510
00001011000 88
11111101001 2025
10111000000 1510

Шаг 6: Конвертируем десятеричные числа в слова BIP39

Теперь найдём в списке слов BIP39 слова, соответствующие полученным числам, и запишем их в правильном порядке. Кто-то на Reddit также сделал удобную версию этого списка для печати.

Вот что мы в итоге получим:

01100111101 829 1. guilt
11100010000 1808 2. tilt
11111010011 2003 3. whip
10011011100 1244 7. oppose
00010100000 160 8. beef
10010000111 1159 9. movie
00011110000 240 13. bulk
10101011011 1371 14. problem
10111111010 1530 15. satisfy
01000111010 570 19. elder
11000011111 1567 20. sentence
11010001011 1675 21. sphere
01010010010 658 4. false
01001011010 602 5. ensure
01110000001 897 6. ice
00100110100 308 10. charge
10111010001 1489 11. riot
11100101111 1839 12. tourist
11001101111 1647 16. social
01010101000 680 17. fence
10111100110 1510 18. rubber
00001011000 88 22. arch
11111101001 2025 23. wood
10111000000 1510 24. rubber

Шаг 7: Не доверяй – проверяй

Воспользуйтесь конвертером мнемонических кодов Иэна Коулмена, чтобы проверить, создали ли вы правильную мнемоническую фразу из 24 слов. Введите ваши 24 слова в поле «BIP39 Mnemonic». Если вы всё сделали верно, то не увидите никаких ошибок. Прокрутите вниз, и этот инструмент покажет вам много информации о вашей мнемонической фразе и ваших адресах. С помощью этого инструмента также можно расширить вашу мнемоническую фразу, добавив дополнительное слово для большей безопасности и использования с HD-кошельком.

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

Если мнемонический конвертер говорит, что ваша фраза неверная

Такое случается. Очень легко допустить ошибку. Вот несколько советов, если это произойдёт:

  • Убедитесь, что контрольная сумма верная. Это самый вероятный источник ошибки.
  • При создании контрольной суммы убедитесь, что используете рекомендованный в статье генератор хешей SHA-256, потому что он хеширует двоичное значение. Если вы используете другой генератор, он может хешировать шестнадцатеричное значение, и тогда вы получите совершенно другой результат!
  • Если первый самый вероятный источник ошибки – контрольная сумма, а второй – хеширование, то третий – соотнесение чисел со словами из списка. К сожалению, потребуется перепроверить, сделали ли вы это правильно. Если вы делаете это, чтобы реально использовать адрес Биткойна для хранения денег, то вы должны убедиться, что всё верно.
  • И последний совет: если всё остальное не даст результата, начните с самого начала и внимательно проделайте все шаги – они работают.
  • Дополнительные слова для большей безопасности

    Дополнительное слово похоже на пароль, но его так не называют, чтобы не смешивать с другим паролем, который может требоваться, чтобы войти в кошелёк Биткойна.

    Такие слова повышают безопасность вашей мнемонической фразы, требуя специального дополнительного элемента, который создаётся вами для доступа к биткойнам на вашем кошельке. В BIP39 приводится рекомендуемый способ создания расширенной seed-фразы.

    Этот процесс также хорошо объяснён в книге Андреаса Антонопулоса «Осваиваем Биткойн». Мнемоническая фраза BIP39 + слово «mnemonic» + опциональная парольная фраза, созданная пользователем, вводятся в функцию растягивания ключа PBKDF2 с использованием HMAC-SHA512.

    Ввод 2048 раз проходит через функцию и выдаёт 512 битов, которые и есть ваша новая seed-фраза. Эта seed-фраза имеет дополнительную защиту, потому что потенциальному злоумышленнику, помимо слов из вашей изначальной мнемонической фразы, понадобится знать вашу парольную фразу.

    С помощью этой новой seed-фразы иерархический детерминированный кошелёк (HD-кошелёк) может сгенерировать вам практически неограниченное число биткойн-адресов. Все эти адреса защищены вашей секретной seed-фразой.

    Итак, теперь вы знаете больше о вашей секретной мнемонической фразе и её значении. Это был лишь пример в образовательных целях, чтобы вы могли понять, что делает ваш кошелёк. Лучше позволить кошельку выбрать seed-фразу случайным образом. Не вводите вашу мнемоническую фразу в интернете. Не сохраняйте её в текстовом документе на компьютере. Не делайте даже скриншотов с ней. Не пересылайте её по электронной почте. Не используйте для генерирования ваших ключей сайты, которые приводились в этой статье.

    Вот и всё. Вы создали свой секретный ключ и превратили его в мнемоническую фразу, но главное, вы понимаете, что делает ваш кошелёк.

    Часто задаваемые вопросы

    Что значит «мнемонический»?

    Мнемоника, или мнемотехника, – это совокупность методов, которые помогают что-либо запомнить с помощью слов, идей или ассоциаций. Соответственно, мнемонический значит такой, который помогает запоминанию.

    Парольная фраза то же самое, что пароль?

    Пароль обычно короткий и небезопасный для использования в качестве ключа в системах шифрования. Парольная фраза напоминает пароль, но обычно она значительно длиннее для дополнительной безопасности.

    Что такое приватный ключ?

    Приватный ключ – это криптографическая строка, с помощью которой пользователь может получить доступ к своей криптовалюте.

    Вы всегда можете поблагодарить переводчика за проделанную работу:
    BTC: 3ECjCH5tPoyDCqHGCXfiiiLZQ3tVGzCSxB
    ETH: 0xf45a9988c71363b717E48645A412D1eDa0342e7E

    Источник: bitnovosti.com

    Оставьте ответ

    Ваш электронный адрес не будет опубликован.