Статьи

Хранение криптовалюты: как работают аппаратные кошельки

Эта статья о аппаратных кошельках была первоначально опубликована на веб-сайте Bruno’s Bitfalls и воспроизводится здесь с разрешения.

Один из наиболее распространенных вопросов, возникающих у новых крипто-энтузиастов, — как аппаратные кошельки, такие как Ledger Nano S, могут быть наиболее безопасным способом хранения криптовалюты ? Что если устройство будет украдено или уничтожено?

В этом посте мы попытаемся объяснить, как такое устройство работает техническим (но, надеюсь, понятным для человека) способом, подробно описав, как оно работает, что оно делает, и как оно может быть таким гибким и в то же время таким безопасным.

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

BIP

Когда блокчейн появился как технология, лежащая в основе Биткойна, и группа программистов / ученых хотела предложить новую функцию, они должны были формализовать и представить эту идею таким образом, чтобы она была понятна и понятна всем участникам сети биткойнов. Такие официальные предложения назывались предложениями по улучшению биткойнов или BIP. Все BIP публично обсуждаются перед внедрением в блокчейн.

Некоторые BIPs

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

Здесь вещи становятся немного более техническими и сложными. Мы обещаем, что это будет стоить к концу этого поста — так что, пожалуйста, продолжайте читать!

Одной из таких хороших идей была BIP 39 . BIP 39 использует математику, чтобы выяснить, как использовать набор из 24 обычных слов для получения начального числа — большого случайного числа, из которого впоследствии генерируются дополнительные ключи для криптовалютов .

Любопытство: если вам интересно взглянуть на списки поддерживаемых слов, смотрите здесь .

BIP 39 также определяет способ защиты этих 24 слов дополнительной парольной фразой, которая считается словом 25. Если парольная фраза не выбрана, используется пустая, поэтому по сути это всегда 24 слова + парольная фраза (пустая или нет).

Любопытство: эта парольная фраза отличается от паролей, к которым вы привыкли в различных интерфейсах, тем, что она не выдает сообщение об ошибке, если используется неправильный. Любая ключевая фраза в сочетании с 24 словами дает действительное начальное число, которое полезно в сценариях вероятного отрицания — механизм защиты от вымогательства, который мы объясним позже.

Этот сгенерированный начальный номер используется для генерации корневого ключа — неосуществимой комбинации букв и цифр — для каждой интересующей вас криптовалюты. Каждый блокчейн имеет свой собственный метод генерации корневого ключа из начального числа и на примере биткойна это BIP 32 , в результате чего получается такой ключ:

xprv9s21ZrQH143K3QTDL4LXw2F7HEK3wJUD2nW2nRk4stbPy6cq3jPPqjiChkVvvNKmPGJxWUtg6LnF5kejMRNNU3TGtRBeJgk33yuGBxrMPHi

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

Смущенный?

Иллюстрация смущенного человека

Все сводится к следующему: BIP 39 используется для выбора определенной комбинации слов, которые могут быть защищены или не защищены парольной фразой, которые затем используются для создания кошельков с формулой, такой как описанная в BIP 32.

Так, что все это имеет отношение к устройству как Ledger?

гроссбух

Когда вы впервые включаете устройство Ledger, оно генерирует вышеупомянутое 256-битное начальное число. Этот начальный номер будет использоваться для вычисления 24 слов, которые затем отображаются на экране устройства.

Слова показываются на экране

Затем пользователь должен записать эти 24 слова на листе бумаги, который входит в коробку с Главной книгой, и хранить эту бумагу в безопасности от самой Главной книги.

Кроме того, регистр требует использования PIN-кода, который может содержать от четырех до восьми цифр. Если после настройки PIN-код будет введен неверно три раза подряд, регистр самоуничтожит все данные на нем.

Если Ledger когда-либо будет уничтожен, украден или утерян, первоначальный владелец устройства может использовать слова с листа бумаги для восстановления его содержимого — либо на резервной книге, либо в программном кошельке, таком как MyEtherWallet, — таким образом, восстанавливая все средства. и адреса. Это возможно, потому что все, что вам нужно для восстановления корневого ключа, — это те 24 слова и пароль (если они установлены).

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

Правдоподобное отрицание

Мы уже упоминали о защите от вымогательства, поэтому давайте объясним это в этом разделе.

Ledger не будет запрашивать у вас пароль при включении, но будет запрашивать ваш PIN-код. Пароль не может быть установлен при настройке устройства в первый раз; только в настройках вы можете впоследствии добавить его.

Прикрепление парольной фразы к PIN-коду

Это позволяет вам прикрепить отдельный PIN-код к ключевой фразе, чтобы иметь два (или более). Каждый ПИН-код будет привязан к своей собственной парольной фразе, и из-за вышеупомянутого факта, что 24 слова + парольная фраза всегда дают действительное начальное число (нет предупреждения «Неправильный пароль»), легко определить PIN-код-приманку, который будет выдан тому, кто заставляет вас бросить это.

В таком случае ввод вторичного PIN-кода приманки не уничтожит данные Главной книги, но откроет кошельки, соответствующие этой парольной фразе, при добавлении к вашим 24 словам. Грабитель не узнает, что вы не дали ему настоящий ПИН-код, и он получит доступ к поддельным адресам. Для дополнительного эффекта добавьте несколько простых значений криптовалюты к адресам, чтобы они казались реальными; адреса с нулевым балансом не будут такими убедительными.

Вероятность угадать ключи

Многие люди задаются вопросом, как легко было бы просто угадать 24 слова и таким образом получить доступ к чьему-либо кошельку, особенно учитывая, что BIP 39 даже не использует весь словарь, а только 2048 слов.

Есть 2 256 или 115792089237316195423570985008687907853269984665640564039457584007913129639936 возможных комбинаций для 24 слов. Если предположить, что у нас есть невозможный компьютер, способный угадывать 100 триллионов комбинаций в секунду, чтобы попробовать их все, что нам понадобится:

 115792089237316195423570985008687907853269984665640564039457584007913129639936 / 100000000000000 = 1157920892373161954235709850086879078532699846656405640394575840 seconds

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

Что делать, если вы знаете все слова, но не порядок? В этом случае количество возможных комбинаций составляет 24! (24 факториала).

 24! = 620448401733239439360000

Таким образом, столь же мощный компьютер будет принимать:

 620448401733239439360000 / 100000000000000 = 6204484017 seconds

Это 196,6 года.

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

Вывод

ГК — это исключительно безопасный способ хранения вашей криптовалюты. Он значительно превосходит любой тип USB-хранилища, где вы просто сохраняете ключ в файл и убираете его.

Устройство имеет собственный процессор, который вычисляет ключи, что означает, что ваш корневой ключ никогда не покидает устройство. Это защищает его от потенциальных вирусов или вредоносных программ, установленных на компьютере, с которым вы его используете. Кроме того, Ledger требует дополнительного аппаратного подтверждения любой транзакции: вам нужно нажимать кнопку на устройстве, когда отправляете средства, иначе это не работает. Там нет подлых средств, откачивающих с Ledger.

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