BIP39 и мнемоническая фраза
Вы читаете эту статью, потому что хотите самостоятельно изучить информацию. Вы не доверяете, а проверяете. Недостаточно, если вам просто скажут: «Вот, запиши эти слова. Не теряй их и никому не показывай. Удачи!» Надо понять, откуда эти слова взялись и что они означают. И главное, надо понять, как и почему эти слова позволяют вам владеть биткойнами на вашем новом кошельке.
В этой статье вы прочитаете нужные вам объяснения. Но вам не обязательно ей доверять – вы можете проверить информацию по другим источникам.
Если вы впервые захотите пользоваться Биткойном, вам скажут, что нужно скачать приложение-кошелёк. После того как вы скачаете приложение на телефон, компьютер или другое устройство, вы увидите опцию «создать новый кошелёк». Когда вы это сделаете, вам настоятельно рекомендуют записать список слов (12 или 24 в зависимости от кошелька) и не фотографировать их. Также вам скажут, что их надо хранить в надёжном месте и что, если вы их потеряете или забудете, вы лишитесь доступа к монетам на только что созданном кошельке.
Содержание:
- 1 Ваш кошелёк – не банковский счёт
- 2 Как создать собственный приватный ключ Биткойна
- 2.1 Прежде чем начать
- 2.2 Шаг 1: Выбираем наши биты
- 2.3 Шаг 2: Хешируем выбранные 256 битов и используем выход для создания контрольной суммы
- 2.4 Шаг 3: Добавим первые 8 битов хеша к изначальным 256 битам, чтобы получить 264 бита
- 2.5 Шаг 4: Разделим наши 264 бита на 24 группы по 11 битов
- 2.6 Шаг 5: Конвертируем двоичное значение в десятичное
- 2.7 Шаг 6: Конвертируем десятеричные числа в слова BIP39
- 2.8 Шаг 7: Не доверяй – проверяй
- 2.9 Если мнемонический конвертер говорит, что ваша фраза неверная
- 2.10 Дополнительные слова для большей безопасности
- 3 Часто задаваемые вопросы
Ваш приватный ключ в мнемоническом виде (BIP39)
Если кратко, то эти 12 или 24 слова – это то, что получится, если перевести с двоичного кода (языка компьютеров, состоящего из ноликов и единичек) на язык, который вы можете узнать, понять и (пожалуй, главное) запомнить.
Биткойн – цифровая математическая крепость. Было бы странно и сложно, если бы нужно было прочитать, скопировать или ввести строку из 256 единичек и ноликов, составляющую ваш приватный ключ, чтобы подтвердить владение определённой суммой биткойнов. Чтобы сделать всё проще и безопаснее для всех пользователей, была разработана стандартная система, известная как BIP39, предоставляющая удобный набор слов, известный как мнемоническая фраза, или seed-фраза (встречаются оба названия).
Поскольку ваш приватный ключ, позволяющий вам тратить ваши биткойны, – это точная, упорядоченная строка на 256 битов, эти 256 битов всегда должны быть в том же порядке, если вы хотите распоряжаться вашими средствами.
Полезно: поскольку ваша мнемоническая фраза состоит из слов, каждое из которых представляет часть вашего секретного ключа, вы должны хранить эти слова в том же порядке и с таким же написанием. В противном случае ваш секретный ключ не будет признан, так как кошелёк не сможет перевести вашу мнемоническую фразу обратно в правильный двоичный код.
Это лишь простой и общий ответ. Если вы держите или планируете держать биткойны, читайте дальше. Для любого пользователя криптовалюты очень важно понимать свой секретный ключ.
Ваш кошелёк – не банковский счёт
Пока что вы узнали лишь самые азы. Если вы не хотите узнать больше, то не покупайте биткойны – пока не будете готовы взять на себя ответственность за них.
Когда вы скачали приложение, создали новый кошелёк и получили мнемоническую фразу, вы не просто открыли новый счёт для биткойнов подобно счёту в банке для долларов. Вообще говоря, название «кошелёк» вносит некоторую путаницу, так как на самом деле ваши биткойны на нём вовсе не хранятся.
Имейте в виду: это лишь программное обеспечение, хранящее ваш секретный ключ (вашу мнемоническую фразу) и позволяющее вам тратить ваши биткойны. Если вы надёжно храните вашу мнемоническую фразу и затем уроните ваш телефон в океан, вы можете просто купить новый, снова скачать кошелёк, ввести свою мнемоническую фразу и восстановить доступ к вашим биткойнам.
Не обязательно даже скачивать тот же кошелёк. Можно скачать любой кошелёк, поддерживающий BIP39, и ввести вашу мнемоническую фразу, чтобы получить доступ к вашим биткойнам.
Поэтому многие предпочитают использовать устройство Billfodl, чтобы хранить этот набор слов на пластинках из нержавеющей стали, непроницаемых для огня и воды.
Начинаете видеть «магию» Биткойна? Дальше вы узнаете, что такое BIP39 и как оно работает.
Предложение об улучшении Биткойна №39: что это и как оно работает?
BIP расшифровывается как Bitcoin Improvement Proposal – «предложение по улучшению Биткойна». Просмотреть такие предложения можно на GitHub, но мы здесь рассмотрим только BIP-0039 (обычно называемое просто BIP39).
BIP39 описывает шаги, которые необходимо предпринять, чтобы превратить приватный ключ в мнемоническую фразу. Это предложение стало стандартом для кошельков и в том числе используется множеством других криптовалютных проектов (часто известными как «шиткойны«).
BIP39 помогает пользователям обезопасить свои секретные ключи, представив их в виде детерминистической фразы – обычных слов, которые проще произнести, записать и, возможно, запомнить. Проще всего объяснить, как это работает, на иллюстрации того, как создать собственный приватный ключ.
Как создать собственный приватный ключ Биткойна
Следующие шаги – общее руководство, как сгенерировать собственный приватный ключ. Подробнее каждый шаг мы рассмотрим далее в статье.
- Выберем 256 битов (т. е. 256 единичек и ноликов). Конвертируем наши 256 битов из двоичной системы в шестнадцатеричную (если только они уже не записаны в шестнадцатеричной системе. Убедитесь, что у вас есть оба варианта – они вам оба понадобятся).
- Вставим шестнадцатеричный вариант в хеш-функцию SHA-256 (двоичную), чтобы получить хеш, который мы будем использовать для создания контрольной суммы.
- Новый хеш будет записан в шестнадцатеричном коде, поэтому мы возьмём первые два знака и конвертируем их из шестнадцатеричной системы в 8 двоичных знаков (битов). Получив наши последние 8 битов, добавим их к изначальным 256 битам и получим в итоге 264 бита.
- Разделим наши 264 бита на группы по 11. Вставим каждую группу из 11 битов (слева направо) в конвертер, чтобы вместо двоичных чисел получить обычные десятичные.
- Найдём соответствующие слова в списке слов BIP39.
Имейте в виду: в двоичной системе счёт начинается с 0. Если вы смотрите на список слов BIP39, обратите внимание, начинается ли он с 1 или 0. Если он начинается с 1, вам понадобится добавить +1 к вашему результату конвертирования двоичного кода в десятичные числа, чтобы найти в списке верное соответствующее слово.
- С помощью конвертера мнемонических кодов Иэна Коулмена можно проверить, правильно ли вы всё сделали.
- Итак, мы создали собственный секретный ключ и превратили его в мнемоническую фразу по стандарту 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-кошельком.
Предупреждение: используйте офлайн-версию этого инструмента на компьютере, не подключённом к сети. Онлайн-версию используйте только для проверки того, как работает вышеописанный процесс. Мы не рекомендуем вводить мнемоническую фразу, которую вы собираетесь реально использовать для хранения монет, на каком-либо сайте.
Если мнемонический конвертер говорит, что ваша фраза неверная
Такое случается. Очень легко допустить ошибку. Вот несколько советов, если это произойдёт:
Дополнительные слова для большей безопасности
Дополнительное слово похоже на пароль, но его так не называют, чтобы не смешивать с другим паролем, который может требоваться, чтобы войти в кошелёк Биткойна.
Такие слова повышают безопасность вашей мнемонической фразы, требуя специального дополнительного элемента, который создаётся вами для доступа к биткойнам на вашем кошельке. В BIP39 приводится рекомендуемый способ создания расширенной seed-фразы.
Этот процесс также хорошо объяснён в книге Андреаса Антонопулоса «Осваиваем Биткойн». Мнемоническая фраза BIP39 + слово «mnemonic» + опциональная парольная фраза, созданная пользователем, вводятся в функцию растягивания ключа PBKDF2 с использованием HMAC-SHA512.
Ввод 2048 раз проходит через функцию и выдаёт 512 битов, которые и есть ваша новая seed-фраза. Эта seed-фраза имеет дополнительную защиту, потому что потенциальному злоумышленнику, помимо слов из вашей изначальной мнемонической фразы, понадобится знать вашу парольную фразу.
С помощью этой новой seed-фразы иерархический детерминированный кошелёк (HD-кошелёк) может сгенерировать вам практически неограниченное число биткойн-адресов. Все эти адреса защищены вашей секретной seed-фразой.
Итак, теперь вы знаете больше о вашей секретной мнемонической фразе и её значении. Это был лишь пример в образовательных целях, чтобы вы могли понять, что делает ваш кошелёк. Лучше позволить кошельку выбрать seed-фразу случайным образом. Не вводите вашу мнемоническую фразу в интернете. Не сохраняйте её в текстовом документе на компьютере. Не делайте даже скриншотов с ней. Не пересылайте её по электронной почте. Не используйте для генерирования ваших ключей сайты, которые приводились в этой статье.
Вот и всё. Вы создали свой секретный ключ и превратили его в мнемоническую фразу, но главное, вы понимаете, что делает ваш кошелёк.
Часто задаваемые вопросы
Что значит «мнемонический»?
Мнемоника, или мнемотехника, – это совокупность методов, которые помогают что-либо запомнить с помощью слов, идей или ассоциаций. Соответственно, мнемонический значит такой, который помогает запоминанию.
Парольная фраза то же самое, что пароль?
Пароль обычно короткий и небезопасный для использования в качестве ключа в системах шифрования. Парольная фраза напоминает пароль, но обычно она значительно длиннее для дополнительной безопасности.
Что такое приватный ключ?
Приватный ключ – это криптографическая строка, с помощью которой пользователь может получить доступ к своей криптовалюте.
Вы всегда можете поблагодарить переводчика за проделанную работу: BTC: 3ECjCH5tPoyDCqHGCXfiiiLZQ3tVGzCSxB ETH: 0xf45a9988c71363b717E48645A412D1eDa0342e7E
Источник: bitnovosti.com