С развитием и распространением криптовалют, актуальным становится вопрос надежного хранения своих сбережений. Как показала практика, биржа может закрыться в любой момент (все помнят случай с BTC-E), а онлайн-кошельки ("тонкие") типа Blockchain.info по сути являются веб-сайтами с присущими им проблемами (сайт может быть недоступен, заблокирован и пр.). Так называемые "толстые" кошельки позволяют хранить блокчейн у себя на компьютере, но это тоже не надежно: жесткий диск может выйти из строя, компьютер может быть поврежден вирусами или скомпрометирован хакерами. Сейчас на рынке появилось большое количество количество аппаратных ("холодных") кошельков, но не всем понятно, как они работают и каким образом осуществляется защита. Я бы хотел рассказать об этом более подробно на примере устройства Ledger Nano S. Этот кошелек является самым популярным на данный момент, и не безосновательно. Комплексный подход к защите, удобство использования и эргономичный дизайн - все это обеспечило кошельку первое место в рейтинге Open Bitcoin Privacy Project.
Для того, чтобы понять, почему аппаратный кошелек Ledger Nano S является надежным средством для хранения криптовалюты, рассмотрим основные принципы его работы на примере криптовалюты Bitcoin. Пример построен по принципу “вопрос-ответ”.
Что такое Bitcoin-кошелек?
Bitcoin-кошелек в общем случае представляет собой программный интерфейс, хранящий в себе информацию о ваших адресах Bitcoin. Адрес Bitcoin ассоциируется со счетом, на которые вы можете получать средства, или с которого будут списываться средства при переводе на другой адрес. Адрес может быть получен любым пользователем на безвозмездной основе с помощью программного обеспечения Bitcoin. Один пользователь может создать неограниченное количество Bitcoin адресов.
Что такое адрес Bitcoin?
Адрес Bitcoin является идентификатором, с помощью которого вы можете совершать транзакции. Адрес представляет собой последовательность из 32...34 символов.
Пример адреса Bitcoin: 1BQ9qza7fn9snSCyJQB3ZcN46biBtkt4ee
Технически, адрес Bitcoin представляет собой 160-битный хэш от открытого ключа ECDSA ключевой пары. Опуская технические нюансы, можно сказать, что адрес Bitcoin представляет собой открытый ключ. Помимо открытого ключа есть связанный с ним закрытый (приватный) ключ.
Что такое открытый и закрытый (приватный ключ)?
При создании адреса Bitcoin с помощью соответствующего программного обеспечения, генерируется открытый и связанный с ним закрытый ключ. Информация об открытом ключе хранится в распределенном реестре (блокчейне) и является общедоступной: любой пользователь может посмотреть, какое количество биткоинов на него переводилось, когда и как они там возникли.
Чтобы совершить транзакцию по счету, ассоциирующемуся с открытым ключом (адресом Bitcoin), необходимо предоставить сети закрытый ключ. Закрытый ключ используется для подписи транзакции, обеспечивая математическое доказательство того, что транзакция действительно одобрена владельцем кошелька. Эта подпись также предотвращает изменение транзакции после того, как она была передана в сеть.
Пример закрытого ключа:
L7EF3NJskAVX9kScbzfyevt276ZiSy3uPbxbvDzHuuLCt8CY5GJh.
Таким образом, закрытый ключ предоставляет доступ к переводу средств на другой счет. Если закрытый ключ попадет в руки злоумышленников, то вы можете потерять все свои средства.
Как реализована защита закрытого (приватного) ключа в Ledger Nano S?
Ledger Nano S является аппаратным кошельком, представляющим собой отдельное устройство, которое содержит закрытый ключ. При первом включении и инициализации устройства, происходит создание новых ключей. Ключ не хранится на компьютере или на облачном сервисе в интернете, следовательно его не может украсть хакер, вирусная программа, ключ не может быть утерян при поломке устройства хранения данных (жесткого диска, флеш-накопителя, сервера).
На Ledger Nano S закрытый ключ хранится на защищенном чипе (ST31H320). Такая технология используется в платежных картах или телефонных SIM-картах. Каждый раз, когда необходимо произвести платеж, транзакция подписывается внутри защищенного чипа, а закрытые ключи не импортируются на компьютер, к которому подключен кошелек. Подтверждение транзакций дополнительно производится с помощью нажатия на кнопки, находящиеся на корпусе устройства.
Ledger Nano S содержит элемент безопасности, который предотвращает возможность кражи средств, даже если злоумышленник получит физический доступ к кошельку. Если хакер попытается извлечь информацию из кошелька или воздействовать на чип с целью декодирования кода устройства, элемент безопасности сделает такие попытки неэффективными. При сложной атаке, когда злоумышленник пытается перезагрузить память устройства, извлекая её из чипа, элемент безопасности не позволит это сделать, определив возможность вторжения, и зашифровав всё (flash-память, RAM, шины памяти) и удалив внутренние криптографические ключи.
Где Ledger Nano S хранит цепочку блоков (блокчейн)?
Цепочка блоков (блокчейн) - это публичный коллективный регистр на котором основана сеть Bitcoin. Все подтвержденные транзакции включаются в цепочку блоков.
Ledger Nano S получает данные о блокчейне от одного из четырех предлагаемых на выбор обозревателей блоков:
Blockchain.info
Blockr.io
Biteasy.com
Insight.is
Можно сказать, что Ledger использует 4-кратное резервирование.
Как восстановить доступ к средствам, если я потеряю Ledger Nano S?
При первом включении и инициализации Ledger Nano S, помимо создания ключей, происходит генерация кодовой фразы, представляющей собой последовательность из 24 случайных слов (BIP39), которые записываются пользователем на лист восстановления данных. В случае утери, поломки или кражи устройства, можно восстановить свои средства на другой Ledger Nano S путем ввода кодовой фразы.
Также, используя кодовую фразу можно восстановить свои средства с помощью другого совместимого со стандартом BIP39 программного кошелька, такого как Multibit HD или Mycelium.
Что случится, если мой Ledger Nano S попадет к злоумышленникам?
Без ПИН-кода злоумышленник не сможет воспользоваться кошельком и получить доступ к вашим средствам. Если у вас есть какие-либо сомнения в надежности ПИН-кода, вы должны как можно быстрее перенести свои средства на другой кошелек, как указано в предыдущем пункте.
Что делать, если я забуду ПИН-код от Ledger Nano S?
После трех неудачных попыток ввода ПИН-кода, кошелек Ledger Nano S сбросит всю информацию и вернется к заводским параметрам. После этого вам нужно восстановить свой кошелек с помощью кодовой фразы из 24 слов.
Что случится, если компания Ledger прекратит работу?
Взаимодействие пользователя и устройства Ledger Nano S происходит через приложение Ledger браузера Chrome. Приложение использует интерфейс Ledger API для связи с блокчейн, чтобы получить всю историю транзакций в сети Bitcoin.Если компания Ledger прекратит свою работу, то приложение Ledger браузера Chrome перестанет функционировать, так как работа серверов API будет остановлена. Тем не менее, ваши средства останутся в полной безопасности. С листом восстановления данных и кодовой фразой из 24 слов вы можете восстановить свои средства с помощью другого совместимого со стандартом BIP39 программного кошелька (например Multibit HD или Mycelium).
Таким образом, аппаратный кошелек является весьма надежным средством хранения криптовалюты. В завершение, хотел бы отметить дополнительные функции, которые реализованы в Ledger Nano S:
- Ledger Nano S является мультивалютным кошельком и поддерживает Bitcoin, Etherium, Litecoin и другие популярные альткоины. Для каждой криптовалюты есть свое приложение. Есть возможность авторизации по ключам SSH/PGP с помощью специального приложения.
- Поддерживает двухфакторную аутентификацию FIDO U2F. Можно использовать устройство как USB-токен для универсальной двухфакторной аутентификации FIDO U2F в сервисах Google, Dropbox, GitHub или Dashlane.