Создаём “бэкап” биткойнов при помощи магического набора слов
Легко сделать резервную копию (“бэкап”) ваших монет при использовании криптовалюты Биткойн. В этом руководстве мы расскажем вам, как использовать SEED для безопасного хранения биткойнов. Кроме этого, мы углубимся в технологию так называемых иерархически детерминированных кошельков и расскажем, как вы можете создать SEED-ключ оффлайн и при помощи кубиков.
Одно из самых распространённых заблуждений касательно использования Биткойна гласит, что вы должны быть IT-экспертом, чтобы его использовать. Так много людей говорят и думают, что они не понимают эту сумасшедшую штуку – Биткойн, даже некоторые биткойн-энтузиасты говорят вещи вроде: “Если вы не эксперт, лучше всего просто использовать сторонний сервис вроде Coinbase или Bitcoin.de”.
Такое заявление может звучать продуманно и ответственно, как указание детям не играть на железнодорожных путях. Но в реальности, подобный подход чудовищно неправильный и совсем “не Биткойновый”, по двум причинам.
Первая; если вы доверяете третьим лицам в хранении ваших средств, вам не нужен Биткойн. На самом деле, лучше бы вы доверились своему местному банку вместо какого-то анонимного сервера, на котором, неизвестно где вообще, хранится ваш кошелёк. Вторая; восхитительная криптография, из которой соткан Биткойн, а также большое количество проделанной разработчиками работы, позволяют удивительно просто создавать резервные копии кошельков без всякой сторонней помощи. По факту, если и есть одна единственная причина, по которой из-за Биткойна можно разволноваться, то вот какая: кто угодно может полностью контролировать свои деньги.
Это короткое руководство расскажет вам, как на практике сделать резервную копию ваших средств при помощи SEED-ключа. Инвестируйте пять минут в чтение, ещё пять минут в действие, и вы можете спать спокойно зная, что все ваши монеты в относительной безопасности. Если вы хотите копнуть глубже, стоит продолжить чтение, так как мы объясняем процедуру создания seed в оффлайне и при помощи кубиков, а также раскрываем принципы работы этой технологии.
Один набор слов, чтобы восстановить их все
Давайте начнём с полезной части; как вы можете сохранить и восстановить резервную копию вашего кошелька, используя seed?
Большинство кошельков имеют встроенную опцию “бекапа”. “Бекап” состоит из набора случайных английских слов, зачастую их 12, иногда 18 или 24. Выглядит так:
inspire october ten crop warfare wink game regular alley mimic anchor extra
Подобная цепочка слов не имеет никакого смысла, но также может оказаться одной из самых дорогих последовательностей слов за всю историю человечества. Это всё, что вам нужно знать, чтобы восстановить кошелёк, и не важно, сколько вы совершили транзакций и как много адресов сгеренировали.
Вы можете написать SEED-ключ на бумажном листке, скопировать содержимое листка, положить его в хранилище, выгравировать слова на камне, использовать техники запоминания и хранить слова в голове (опасно в случае потери памяти и кошелька одновременно – прим. пeр.), внести их в завещание. Не важно, как именно вы это сделаете, если вы смогли сохранить ключ, так чтобы никто кроме вас не смог его прочитать, вы можете отформатировать жёсткий диск, сжечь компьютер, выбросить телефон в океан. И даже тогда у вас будет возможность восстановить утраченные монеты. Последовательность слов – всё, что вам необходимо знать.
На самом деле, если вы достигли успехов в техниках запоминания, можно путешествовать по всему миру, даже не перевозя с собой биткойнов. Нет устройств, нет кошелька, нет монеты, нет записей, но вы будете в состоянии восстановить для траты столько монет, сколько захотите, используя лишь подключение к Интернету.
Никто не сможет украсть у вас деньги, и никто не сможет заблокировать их.
Разве это не магия? Вы храните деньги у себя в голове. Немногие функции предоставляют ту свободу, которую даёт Биткойн и SEED-ключ от биткойн-кошельков.
Как Сохранять и Восстанавливать
Всё очень просто. Загрузите программу-кошелёк с поддержкой так называемых иерархически детерминированных кошельков. Так как почти каждый Биткойн-кошелёк поддерживает эту технологию, список пригодных кошельков достаточно широк. В алфавитном порядке: Airbitz, Bither, BreadWallet, Coin.Space, Coinomi, CoPay, Electrum, Exodus, GreenAddress, Jaxx, Ledger, MultiBit, Mycelium, Simple Bitcoin Wallet, Trezor. Большинство из этих кошельков потребуют от вас записать ваш SEED перед тем, как вы сможете впервые открыть кошелёк. В некоторых из них необходимо искать опцию бекапа кошелька.
Записав SEED, вы выполнили самое сложное. Теперь у вас имеется строка с магическими словами. Но самый интересный вопрос остаётся открытым: как вы восстановите ваши деньги? Когда жёсткий диск ломается или смартфон попадает под каток, как вам вернуть доступ к монетам при помощи SEED-ключа?
Самое захватывающее во всей истории то, как вы будете использовать seed для возврата доступа, вы увидите себя сидящим у компьютера с замиранием сердца, пока кошелёк разворачивает ваш бекап. Когда вы впервые используете несколько слов для восстановления ваших монет на другой системе, возможно находящейся за тысячи километров от той, где вы изначально их хранили, этот момент будет магическим для вас и для Биткойна.
Самый простой способ быстро завладеть монетами – использовать такой же кошелёк, какой вы использовали для генерации SEED-ключа. Если бэкап создавался при помощи Electrum, используйте его; если был использован Trezor, то опять же используйте его, и так далее. Вы сможете непринуждённо восстановить монеты. На некоторых кошельках, вам необходимо искать опцию восстановления средств из бэкапа, на других вам необходимо открыть новый кошелёк из Seed. После некоторых поисков, вы найдёте эту опцию. Откроется специальное поле, в которое вы введёте ваши магические слова и все деньги будут восстановлены. Абракадабра!
Красота математики и проблема разных типов развёртки
Но не всегда всё так просто. Что если вы потеряли своё устройство? Что, если ваш Trezor сломался? И что, если пропадёт сервер, помогающий работать кошелькам вроде Electrum, Jaxx или Mycelium? Как вы сможете восстановить свои средства в настолько плачевной ситуации?
Все знают, что у вещей есть свойство со временем усложняться. Тем не менее, красота криптографии состоит в том, что у вас всегда есть приватные ключи. Ваша секретная последовательность слов является основой для развёртывания всех ваших приватных ключей, со всей математической строгостью.
Просто ради интереса, на секундочку, давайте углубимся в технические детали: есть криптографическая процедура, называемая “иерархически детерминированный кошелёк”, она переводит SEED-ключ в Мастер-ключ, из которого все остальные ключи развёртываются в “детерминистическом” порядке. Также, как вы не зависите от определённого калькулятора или софта при вычисления математической формулы, так и ваш SEED-ключ работает независимо от типа кошелька. Ему не нужно “доверять” – это математика; бэкап, который был создан при помощи Bither, сработает и в Exodus.
Единственная проблема состоит в том, что существует два типа стандартов. В то время, как ключевая фраза (SEED) и Мастер-ключ одинаково стандартизированы, существует два способа восстанавливать ключи и адреса вашего кошелька, они называются BIP32 и BIP44. Можете представить их в виде двух рек, разливающихся из одного ручья. Так что, если вы создали SEED используя кошелек с поддержкой BIP44, вроде Bither, и пытаетесь восстановить его при помощи кошелька с BIP32, типа Electrum, то вы откроете пустой кошелёк. Значит, необходимо выяснить, какой кошелёк подходит для восстановления.
Таблица ниже показывает, какие пути развёртывания используются самыми популярными кошельками; список не полон, и нет гарантии, так как нет точной информации о том, какой кошелёк использует какой BIP.
Помимо этого, существует несколько реализаций метода. Например, некоторые кошельки вроде Ledger используют фразу из 24 слов, тогда как другие, вроде Exodus, будут использовать SEED из 12 слов. И нет, вы не отделаетесь тем, что просто будете везде использовать первые 12 слов. SEED из 12 слов несовместим с кошельком, поддерживающим SEED из 24 слов. Также, не все кошельки используют и понимают тот же словарный набор, а у некоторых отсутствует правильная реализация путей развёртывания; например, Exodus может восстановить лишь первые 4 адреса, созданные с помощью Мастерключа, а на Coin.Space у нас не было возможности восстановить адреса, созданные при помощи другого кошелька, и так далее.
Если вам сложно восстанавливать утраченные деньги из-за отсутствующих стандартов, всё ещё остается возможность вернуться назад к основам. Просто посетите сайт с генератором BIP39, вроде предлагаемого Иэном Колеманом, или генератором BIP32. Здесь, вы можете просто ввести свой SEED-ключ, и получить всю необходимую для восстановления ваших средств информацию. Первое, приложение отобразит для вас приватные ключи и адреса. Вы можете взять их и использовать для восстановления адресов в Bitcoin Core, Electrum и других кошельках, позволяющих импортировать приватные ключи. Второе, инструменты покажут вам “Расширенный Ключ BIP32” (Extended Key) и Мастер-Ключ, который можно использовать для восстановления кошелька при помощи, например, Electrum.
Много слов, а смысл таков: обычно, это легко – восстанавливать ваши монеты при помощи секретной фразы. Вам не понадобится никакой IT-шной мудрости. Если для вас это сложно и вы столкнулись с проблемами совместимости кошельков, всё, что вам необходимо для получения ключей – ваш SEED. В наихудшем случае понадобится немного поработать. Если кошелёк правильно развернёт приватные ключи из Мастер-ключа, вы не потеряете свои монеты, главное – держать SEED при себе и никому его не показывать.
Как криптография использует магические слова
Теперь, давайте углубимся в подробности: что происходит? С помощью каких таких техник работает магическая последовательность слов? И, в конце концов, безопасен ли весь этот процесс?
Чтобы осознать принцип работы ключевой фразы, вам нужно больше знать о том, как хранятся биткойны. Возможно вы уже знаете, что получаете монеты при помощи адреса. Этот адрес образуется из ваших публичных ключей, а они образуются из приватных ключей. Таким образом, сначала ваш кошелёк сгенерирует приватный ключ затем он разворачивает публичный ключ а потом он трансформирует публичный ключ в адрес.
Очень простой способ сохранить монеты – просто записать или сохранить ваш приватный ключ в зашифрованый файл. Приватный ключ похож на случайный набор цифр и букв:
L3GrBerZZXtTDcAVNiULbN84UVGjX7ezypSCsYYroBDdQDKX1E53
Рекомендуется для улучшения приватности и большей сохранности от коллизий не использовать одни и те же адреса несколько раз, большинство продвинутых кошельков создают новый адрес каждый раз, как вы кликаете “Получить”. Так, чтобы сделать бэкап средств, вам бы пришлось сохранять приватные ключи каждый раз, когда вы создаёте новую транзакцию. Ясное дело, что это весьма неудобно.
К счастью, в 2012 году разработчик Биткойна Питер Вуйле написал функцию для Биткойна, названную “Иерархически Детерминированные Кошельки”, известную как BIP32. Он разработал математику, позволяющую создавать Мастер-ключ, из которого все остальные приватные ключи могут быть развёрнуты в предопределённом порядке. Короче говоря, если у меня есть Мастер-ключ А, то я смогу получить из него ключи а, б, в, г, и так далее, именно в таком порядке. Разработчики, которые пришли позднее, например Марек Палатинус, из чешского Биткойн-стартапа Satoshi Labs, разработали инструменты для разворачивания Мастер-ключа из SEED в 12 или 24 слова (BIP39), а также инструменты для создания ключей с поддержкой нескольких аккаунтов (BIP44), что будет означать, что Мастер-ключ А производит аккаунты а, б, в и так далее, а внутри, скажем аккаунта а, он будет разворачивать ключи а, б, в, г и так далее, что является шикарной функцией кошельков, направленной на защиту пользовательской анонимности в условиях интенсивного сбора данных с блокчейна.
Ваш SEED является ключом, магической дверью, абракадаброй, соединённым с целым миром ключей и адресов. Это нечто вроде карты, показывающей вам где найти ваши биткойны в безбрежном океане стохастики. Вы можете развернуть ключи для Лайткойна, Monero, Эфириума и так далее, из одного и того же ключа, вот почему мультивалютные кошельки вроде Jaxx или Exodus могут при помощи одного SEED-ключа сохранять сразу множество криптовалют.
SEED даёт могущество, но с ним приходят и риски. То, что только вы должны знать его, является императивом. Именно здесь и начинаются проблемы.
В теории, SEED-ключ совершенно безопасен и является жёсткой математикой. Но на самом деле вам не хватает всего лишь ещё одной капли паранойи, чтобы сказать: а как я могу быть уверен, что SEED, произведённый на моём компьютере, знаю только я? В том случае, если кошельки вроде Electrum, Mycelium или Exodus создают последовательность слов, откуда вам знать, что не существует скрытого кода, отсылающего слова третьей стороне? И как вы можете точно знать, имеются ли на вашем ПК вирусы-шпионы, ждущие, пока биткойн-кошелёк загрузит SEED в оперативную память, а затем крадующие его? И наконец, как вы можете быть уверены, что ваш компьютер генерирует достаточное для создания безопасного ключа количество случайных исходных данных? Вы ведь в курсе, что компьютеры – не очень хорошие помощники в создании хаотичности?
Оффлайн и при помощи кубиков
Вы никогда не получите полную безопасность. Никогда. Но вы можете получить её в достаточно высокой степени. Для этого, вам стоит использовать генератор BIP39, вроде того, что предлагает сделать Иэн Колеман. Затем, вы сохраняете сайт для его использования на жесткий диск своего компьютера, выключаете Интернет, и запускаете сайт в режиме оффлайн. Теперь вы можете дать программе создать SEED без подключения к Интернету.
Для этого, можно использовать энтропию, создаваемую вашим компьютером, обычно этого вполне достаточно, но если вы не доверяете своему компьютеру, то также можете вставить свою собственную энтропию. Всё, что вам при этом необходимо – игральные кубики с шестью гранями. Лучше бы у вас их было несколько, и придётся бросать их не меньше 50-ти раз для получения надёжного источника энтропии. Вы бросаете кубики, пишете результат в поле на сайте, затем бросаете снова, и так далее. После сбора энтропии подобным образом, программа создаёт ваш SEED.
Когда процесс создания завершён, запишите SEED на бумажку. Если хотите хранить его в цифровом виде, пожалуйста, шифруйте файл при помощи сильного пароля и программы, которой вы доверяете. Затем прокрутите вниз и запишите BIP39 Мастер-ключ. Прокрутите ещё ниже, кликните на Производные BIP44 (BIP44 derivates), запишите некоторые адреса. Выбор адресов для получения средств зависит от того, в каком кошельке вы собрались разворачивать их, некоторые читают производные от BIP32, некоторые – от BIP44. Multibit умеет восстанавливать все типы производных.
Для удобства, можно скопировать адреса в нешифрованный файл на компьютере. Но туда можно копировать только адреса, не SEED! Никогда не храните SEED в нешифрованном виде на любом из ваших устройств, если намереваетесь хранить в этом кошельке большие деньги. После того, как всё сделано, можно закрыть вкладку с сайтом, выключить компьютер, чтобы очистить память ОЗУ, перезагрузиться, снова зайти в Интернет и поделиться своими адресами с другими, чтобы получать Биткойны. Теперь у вас имеется прекрасный и надёжный бумажный кошелёк для ваших биткойн-богатств.