[Cryptoza] Урок 3. Ещё немного о приватных ключах. Хранить можно не только на бумаге, но и в голове. HD wallet и Brain wallet.
Ещё раз вернемся к кошелькам, вернее к секретным ключам. Познакомимся ещё с двумя терминами - HD wallet и brain wallet.
Классические клиенты для кошельков bitcoin со всевозможными форками (Litecoin, Dogecoin,...) хранят ключи в файле wallet.dat
При работе с ним рекомендуется придерживаться таких пунктов:
- кошелёк должен быть зашифрован паролем, сложным паролем;
- в целях обеспечения анонимности рекомендуется каждую транзакцию осуществлять с использованием нового адреса для транзакции, т.е. генерировать новый адрес(и приватный ключ)
- а при добавлении новых адресов необходимо делать резервные копии кошелька.
И здесь может случиться большая неприятность, для новой транзакции вы сгенерировали новые биткоин адреса, туда были переведены монеты - но вы или забыли вовремя сделать резервную копию wallet.dat, а потом потеряли новый wallet.dat или случайно перезаписали новый файл с ключами старым файлом и ключи к новым адресам остались потеряны навсегда.
Вот здесь и придумали HD wallet - множество связанных между собой секретных ключей, которые генерируются из одного главного секретного мастер ключа. Но что значит связанных? Значит их получили из одного мастер-ключа, и всегда в дальнейшем можно получить те же и в той же последовательности, но с другой стороны никто не скажет(не узнает), что два биткоин адреса связаны одним мастер-ключем. HD здесь означает hierarchical deterministic (иерархически детерминированный) это страшно звучит, но на самом деле означает, что из одного мастер ключа можно получить в итоге одну и ту же последовательность биткоин адресов.
Выходит имея один секретный мастер-ключ можно получить сколько угодно биткоин адресов, восстанавливая со временем эти адреса из мастер-ключа вы снова получите те же биткоин адреса. И вместо того чтобы хранить множество секретных ключей теперь стоит сохранить лишь один мастер-ключ.
Ну а потом жизнь криптомонетчикам ещё упростили и придумали
Brain wallet
это удобная запись мастер-ключа, обычно в виде двенадцати слов английского словаря. Вернее мастер ключ генерируется из этих слов. Впрочем не обязательно английского, и не обязательно словаря. Это можно назвать как кошелёк в голове))) Если уж очень надо, то 12 слов можно запомнить и этот сейф никто не откроет, его и нет нигде, кроме как в голове, а то что в голове никак не увидишь. В некоторых случаях слов бывает 18 или 24, это уже нюансы использования этой технологии.
В рассмотренном в прошлом уроке генераторе битткоин адресов мы прошли мимо brain wallet здесь его назвали умный кошелёк встречаются разные варианты перевода.
1 - идём на знакомый нам bitaddress.org
2 - вводим парольную фразу - несколько слов, например rain forest cat dog sun sweet tools toys, к ней применяется алгоритм шифрования SHA-256
3 - получаем секретный ключ, из которого можно получить и биткоин адрес.
4 - для получения следующих адресов можно например дописывать в конец последовательности порядковый номер кошелька, например: rain forest cat dog sun sweet tools toys1, и т.д.
Применив HD wallet и Brain wallet вместе получим удобный способ использования множества биткоин адресов, для этого нужно лишь сохранить и обеспечить секретность 12 слов.
Впервые это было использовано в кошельках Electrum в 2011 году, потом и во многих других кошельках. А сейчас это стало очень популярным в мобильных кошельках, ведь чтобы сохранить резервную копию множества секретных ключей, достаточно переписать с экрана мобильного телефона несколько слов - ключевую seed-фразу, и ничего не нужно копировать, никаких файлов. Удобство ещё и в том, что это единственная фраза используется в мультивалютных кошельках для генерации пар адрес/приватный ключ для многих валют в кошельке, не только для биткоина.
Бывает даже вход на сайт организован не привычными вам парой логин/пароль, а seed-фразой - просто набором нескольких слов. Монета монеро надавно обзавелась онлайн кошельком, вот здесь пример входа не по паре логин/пароль, а по seed-фразе. Попробуйте - mymonero.com
Оцените удобство: взамен приватных ключей ко многим биткоин-адресам, а ещё и ко многим другим криптовалютам - вы запоминаете лишь несколько слов, из которых разворачивается целое множество ключей к различным криптовалютам. Вот такая вот математика.
Итак, берём 12 слов, если где встретите seed - это они и есть. Из неё находим master private key это то случайное число которое генерировалось когда мы бегали мышкой по экрану в прошлом уроке. Тогда это большое случайное число определялось движениями мыши по экрану, сейчас оно определяется seed-фразой (нашими 12 словами). Чтобы получить множество пар приватный ключ/биткоин адрес к мастер ключу добавляются числа(1,2,3...) называемые солью
Задание №3
Зайти на сайте bitaddress.org в пункт умный кошелёк
Придумать фразу из нескольких слов.
Получить биткоин адрес.
По этой же фразе можно получить и лайткоин адрес liteaddress.org
Как видите сохранив(запомнив) лишь одну фразу можно получить не только биткоин, но и лайткоин адрес. Трудно читаемые(и записываемые) приватные ключи при этом хранить не надо. А дописывая к этой фразе порядковый номер, можно получить нужное количество адресов.