Холодные кошельки и оффлайн транзакции — кому и зачем?
Готовы ли Вы прямо сейчас потерять все свои криптовалютные активы?
Если Вы ответили на данный вопрос утвердительно, то я могу лишь позавидовать Вашей непосредственности. Если же такой поворот судьбы может доставить Вам неудобства, предлагаю в этой статье вместе со мной коснуться темы истинного управления своими активами при помощи 🧊 холодного кошелька. Мы пройдемся по необходимой теории и закрепим материал практикой.
Уже привычно оставляю оглавление статьи, чтобы Вы могли легко перейти к интересующей Вас главе, нажав на нее в оглавлении, и вернуться к оглавлению, нажав на заголовок главы.
Для удобства, мы также добавили возможность изучения материала в формате подкаста. Прослушать данную статью можно перейдя по этой ссылке.
Оглавление:
- Пролог
- Холодные кошельки
- Программные холодные кошельки
3.1 Программные холодные кошельки — практика - Аппаратные холодные кошельки
4.1 Аппаратные холодные кошельки — практика
Вы можете моментально вернуться к оглавлению, кликнув на название любой из глав статьи.
Для быстрой навигации по статье в начале каждого раздела предусмотрены кнопки "Пропустить пункт".
Пролог
Криптовалютный кошелек, в какой бы форме он ни был, является средством взаимодействия с блокчейном. Взаимодействие с блокчейном происходит путём оперирования приватными ключами, с помощью них кошелек генерирует новые адреса для получения криптовалюты или авторизует исходящие транзакции. По методу оперирования, а если еще точнее, методу хранения приватных ключей, кошельки делятся на горячие и холодные.
Горячий кошелек — это кошелек, который подключен к Интернету или когда-либо был подключен к нему. Одним из преимуществ горячих кошельков является то, что с их помощью можно совершать небольшие повседневные транзакции, однако использовать его для хранения большего количества криптовалюты не рекомендуется, так как он уязвим для атак, ведь абсолютное большинство атак проводятся в онлайне. Одним из наиболее распространенных типов горячих кошельков являются программные кошельки, о лучших их представителях у нас есть отдельная статья:
Холодный кошелек — это тип кошелька для криптовалюты, нацеленный на максимальную безопасность. В отличие от горячих кошельков, холодные кошельки оперируют приватными ключами только в безопасной среде, не подключенной к Интернету, что значительно повышается безопасность Ваших активов. Именно об этом типе кошельков мы сегодня и поговорим.
Такие разные, но все ледяные 🧊
Холодные кошельки по своему строению могут быть программными и аппаратными, но суть у всех одна: холодный кошелек только подписывает транзакции, созданные на онлайн кошельке, которые затем транслируются в сеть так же при помощи онлайн кошелька.
Где еще могут понадобиться оффлайн транзакции, кроме как для обеспечения безопасности активов? Например, при совершении оффлайн сделок по покупке чего-то за криптовалюту или продажи криптовалюты. В такой ситуации будет правильным решением подготовить транзакцию заранее, а не приносить свой кошелек на саму встречу. В таком случае Вы не подвергаете себя риску возможной атаки гаечным ключом (камнем по голове и хищение кошелька) или компрометации конфиденциальной информации.
Программные кошельки, как следует из названия, являются просто программным обеспечением, которое позволяет совершать то самое взаимодействие с блокчейном.
С аппаратными кошельками всё куда интереснее, они представлены отдельными устройствами, которые являются защищенной изолированной средой для хранения приватных ключей, все действия подтверждаются непосредственно на самом устройстве, которое само по себе так же к Интернету не подключается, а для транслирования может использоваться компьютер или смартфон. При наличии аппаратного кошелька можно совершать транзакции даже на устройстве, доверху заполненном вирусами, и не волноваться о своей безопасности.
Мы рассмотрим каждый из типов по порядку, Вы же можете перейти к интересующему именно Вас:
Если в процессе у Вас будут возникать мысли по типу: "Зачем все эти трудности?!", то вспоминайте о вопросе, который я задал Вам в самом начале статьи.
Программные холодные кошельки
Схема работы программного холодного кошелька выглядит следующим образом. Необходимо наличие двух устройств, одно из которых подключено к интернету, а другое — нет и никогда не было:
Это могут быть, как компьютеры, так и смартфоны, примеры программного обеспечения для обоих типов устройств я дам чуть позже.
В таком случае Online-устройство работает в watch-only режиме, то есть режиме, который позволяет только наблюдать за балансом и не позволяет им оперировать.
Схема совершения исходящей транзакции с использованием холодного программного кошелька выглядит следующим образом.
Раз это оффлайн транзакции, логичным будет начать нашу деятельность с Offline-устройства. На Offline-устройство посредством накопителя (usb-флешки) доставляется программное обеспечение, которое и будет оперировать нашими приватными ключами:
На оффлайн устройстве создаётся кошелек:
Далее с Offline-устройства с помощью флеш-накопителя на Online-устройство переносится мастер-ключ для watch-only режима, с помощью которого мы сможем проводить наблюдение за балансом и создавать транзакции (неподписанные):
На Online-устройстве, синхронизированном с блокчейном, создаётся транзакция:
и в неподписанном виде передаётся на Offline-устройство:
Затем транзакция подписывается на Offline-устройстве:
В подписанном виде передаётся на Online-устройство:
И транслируется в сеть:
Примеры кошельков
В качестве такого кошелька может выступать любое программное обеспечение с возможностью работы в оффлайн режиме. Таковым может быть, например, известный всем самый старый Bitcoin-кошелек Bitcoin Core:
Online-устройство при использовании Bitcoin Core и полной синхронизации будет также являться полной нодой биткоина, что обеспечит Вам дополнительную безопасность.
Альтернативой может являться, возможно, более лёгкий Electrum:
У которого есть и мобильная версия:
Выбор мультивалютных программных холодных кошельков не так велик, однако и тут есть свои представители, например, кошелек Airgap c полностью открытым воспроизводимым исходным кодом:
Его реализация довольно интересна: существует два приложения Airgap Wallet и Airgap Vault. Первое — Airgap Wallet — устанавливается на Online-устройство, которым может выступать смартфон или ПК, а второе — Airgap Vault — устанавливается на смартфон и является тем самым холодным кошельком. Проект позволяет превратить Ваш смартфон во что-то наподобие аппаратного кошелька. В будущем у нас выйдет отдельная статья, посвященная этому кошельку.
Программные холодные кошельки — практика
Для демонстрации проведения оффлайн транзакций при помощи программного холодного кошелька я буду использовать две виртуальные машины на базе Windows 10 Pro:
Они будут играть роль двух компьютеров: подключенного и не подключенного к Интернету соответственно, для наглядности каждую из виртуальных машин я обозначил цветом и текстом.
Программным обеспечением выступит кошелек Electrum, с одним лишь только уточнением, что это будет версия Electrum для работы с криптовалютой Litecoin:
Однако ход действий будет аналогичен для всех остальных кошельков.
Пойдем по порядку, вспоминаем схему:
Сначала нужно перенести на Offline-устройство программное обеспечение, в нашем случае им выступит портативная версия кошелька Electrum Litecoin:
Создаём кошелек, действия ничем не отличаются от обычного создания кошелька в Electrum. Даём кошельку имя, а также выбираем его тип, я выберу стандартный — Default:
Вы можете восстановить свой кошелек по seed-фразе, если уверены в том, что она не была скомпрометирована, я же создам новый кошелек с новой seed-фразой:
Перепишу её и введу для проверки:
Важным шагом является создание сложного пароля, ведь, защищаясь от онлайн атак, следует не забывать так же о возможности оффлайн (физических) атак:
Заметьте, созданный кошелек не подключен к Интернету:
Мы создаём новый адрес, на него я отправляю 0,1 LTC, в чём мы убедимся позже:
Далее нам нужно получить мастер-ключ, для этого переходим во вкладку Wallet, а затем выбираем Information в выпадающем меню:
Именно этот ключ нам и нужно сохранить и перенести на Online-устройство:
На Online-устройстве так же устанавливаем кошелек:
Даём ему имя и выбираем стандартный тип:
А вот на следующем шаге, вместо создания новой или импорта существующей seed-фразы, выбираем Use a master key:
В поле вводим тот самый мастер-ключ, который мы переносили с Offline-устройства:
После этого Electrum расскажет нам, что такое watch-only режим:
Кошелек, подключившись к Интернету, отобразит транзакцию величиной 0,1 LTC, которую я ранее отправил на адрес кошелька:
Теперь мы перейдем непосредственно к созданию транзакции, для этого перейдите во вкладку Send, введите адрес получателя и сумму для отправки, нажмите Pay:
Перед созданием транзакции я изменю комиссию, так как комиссия, которую автоматически определил Electrum, является избыточной для сети Litecoin:
Подтверждаем совершенное действие кнопкой Finalize:
Транзакция практически готова, еще раз проверьте все данные:
После проверки в меню, выпадающем по нажатию на Export, выбираем Export to file:
Транзакция будет успешно экспортирована:
Полученный после этих действий файл:
Мы, следуя схеме:
Переносим на Offline-устройство:
Вновь открываем кошелек:
Переходим во вкладку Tools, в которой выбираем пункт Load transaction, From file:
Выбрав перенесенный ранее на Offline-устройство файл, нам остаётся лишь подписать свою транзакцию:
И ввести пароль:
Подписанную транзакцию мы экспортируем аналогично тому, как экспортировали неподписанную:
Полученный файл:
Согласно всё той же схеме:
Мы переносим на Online-устройство:
На котором открываем кошелек:
Переходим уже в знакомую нам вкладку Tools, пункт Load transaction, From file и выбираем файл подписанной транзакции:
Транзакция уже подписана, нужно только транслировать её в блокчейн, для этого нажимаем на Broadcast:
Транзакция будет отправлена:
Появится в истории транзакций в кошельке:
А так же во всех обозревателях блокчейна:
Поздравляю! Мы совершили оффлайн транзакцию с использованием программного холодного кошелька.
К слову, подписанную транзакцию в виде файла или текста можно передавать и при упомянутых выше offline-сделках по покупке чего-то за биткоин или продаже биткоина. Получатель сможет транслировать транзакцию в блокчейн при помощи любого обозревателя, найдя на нем подобную функцию:
И введя подписанную транзакцию в raw-формате (текстовом):
Получить подписанную транзакцию в таком формате Вы можете, открыв её файл в любом текстовом редакторе:
Или при экспорте просто скопировав подпись, нажав на Copy to clipboard:
Аппаратные холодные кошельки
Об аппаратных кошельках можно говорить очень долго, а о каждом из них написать еще по серии статей, однако, в этот раз мы ограничимся обзором рынка существующих решений, не забыв, конечно, о практической части. Также я расскажу Вам, к чему пришел сам после длительного собственноручного тестирования большого числа аппаратных кошельков.
Аппаратный кошелек является без сомнения намного более удобным типом холодного кошелька, чем его собрат — программный кошелек, но требует вложения некоторого объема средств для покупки устройства. Однако, необходимая плата несравнима с по-настоящему безопасным и истинным владением своими средствами.
Работа аппаратных кошельков аналогична работе программных холодных кошельков, здесь приватные ключи хранятся в изолированной среде, которая не подключена к Интернету, а подписанные транзакции передаются по кабелю или иным способом.
Перед тем, как говорить о разных аппаратных кошельках, я хочу сказать, что практически любой аппаратный кошелек будет в сотни раз лучше хранения криптовалюты на бирже или на горячем кошельке. Также хочу сразу сказать, что это лишь беглый обзор рынка, я не буду оговаривать все модели, а коснусь лишь некоторых, и то буквально в двух словах.
Trezor
Все устройства компании Satoshi Labs имеют полностью открытый исходный код. Это было достигнуто отсутствием secure-чипа, а от физических атак Trezor полностью защищает кодовая фраза. Модельный ряд представлен двумя девайсами:
Оба кошелька могут работать как с компьютерами, так и со смартфонами на базе Android. Для работы со смартфоном нужен лишь переходник для разъёма Вашего телефона.
Кодовая фраза, если говорить простыми словами, является тринадцатым или двадцать пятым словом в seed-фразе. Кодовая фраза может состоять из любых символов, в теории, даже букв русского алфавита. Каждая новая кодовая фраза в связке с той же seed-фразой генерирует новые приватные ключи, то есть, абсолютно новый кошелек, который никак не связан с другими кошельками на этой seed-фразе. Безопасное хранение кодовой фразы так же важно, как и безопасное хранение seed-фразы, о чем у нас есть отдельная статья:
В старшей модели также присутствует поддержка sd-карты, как способ дополнительной защиты, а в скором времени и для локального хранения паролей менеджера паролей Trezor.
Trezor T, флагман компании Satoshi Labs, является для меня тем идеалом, к которому я пришел после долгих поисков, проб и ошибок.
Ledger
Ledger — это прямой конкурент Trezor, причём, как для младшей, так и для старшей модели. Отличается от Trezor тем, что имеет встроенный secure-чип, что хоть и защищает от физических атак, но влечет за собой закрытый исходный код, что требует полного доверия компании.
Вторым отличием является управление двумя кнопками и в Nano X, и в Nano S, против сенсорного экрана у Trezor T и кнопочного управления в Trezor One. Хоть в повседневном использовании это и не сильно утомляет (пока Вы не попользуетесь аппаратным кошельком с сенсорным экраном 😉), при операциях по типу сверки seed-фразы, когда слова нужно вводить по одной букве с помощью двух клавиш, начинаешь задумываться о целесообразности приобретения. По правде говоря, у Ledger когда-то был кошелек с сенсорным управлением, однако, на данный момент его производство остановлено.
Старшую модель Ledger Nano X, в отличие от Trezor T, можно подключить по Bluetooth к мобильным устройствам, в устройство встроен аккумулятор, срок службы которого составляет около пяти лет.
Очередное отличие — система приложений, для работы с каждой криптовалютой или функцией нужно установить на кошелек отдельное приложение, удобно ли это — решать только Вам.
Не добавляет репутации так же недавний рождественский подарок компании своим клиентам, а именно слив базы данных с именами, адресами электронных почт, номерами телефонов и домашними адресами. Сложившуюся ситуацию, которая стала причиной начавших поступать в адрес клиентов реальных угроз жизни и здоровью, может довольно точно описать это изображение:
CoinKite Opendime
Opendime является не единственным продуктом компании CoinKite, но, как мне кажется, самым интересным. Это с виду невзрачное устройство:
С помощью которого можно передать Bitcoin физически. Работает это так: в первом состоянии при подключении Opendime к устройству генерируется приватный ключ и соответствующий ему адрес, куда мы можем отправлять Bitcoin. Приватного ключа мы не видим. Увидеть приватный ключ и воспользоваться средствами можно только проткнув плату в нужном месте:
Целостность платы будет нарушена и нам станет виден приватный ключ. О нарушении целостности и открытии приватного ключа так же будет свидетельствовать сменившийся с зеленого на красный цвет мигающего диода.
Какое применение у такого продукта? Вы можете купить его и отправлять на него Bitcoin, а потом подарить или просто передать кому-то. Принимающий такое устройство человек может удостовериться, что Вы не имеете доступа к приватному ключу, просто подключив Opendime к компьютеру.
Философия CoinKite строится на полном отсутствии доверия к производителю, то есть, полностью открытый исходный код без каких-либо проприетарных решений.
Tangem
Очень интересный вид аппаратных кошельков. Внешним видом они напоминают банкноты. Ранее в модельном ряде компании были представлены кошельки под определенные криптовалюты, например, для биткоина:
На данный момент производятся мультивалютные криптобанкноты:
Что привело, как мне кажется, к потере особого шарма этого аппаратного кошелька...
Кошелек связывается со смартфоном при помощи NFC-чипа, что требует наличия оного и на Вашем смартфоне.
Стоит упомянуть, что при использовании криптобанкнот Tangem невозможен импорт или экспорт приватных ключей. Они известны только чипу, которым и обрабатываются. Резервное копирование невозможно, потеря, кража или уничтожение криптобанкноты Tangem приведет к потере денежных средств. Наличие secure-чипа от Samsung, защищающего кошелек от физических атак, обуславливает то, что код кошелька закрыт и Вы должны полностью доверять производителю.
CoolWallet S
Аппаратный кошелек CoolWallet S представляет собой карту с чернильным дисплеем, которую можно гнуть:
Из-за дисплея, построенного на технологии электронных чернил, на котором на самом-то деле отображается не так уж и много информации, может работать без подзарядки до двух недель. Подключается к смартфону по Bluetooth и работает через фирменное приложение, в котором и проводятся все операции. Код всё так же закрыт, необходимо полное доверие разработчику.
Cobo Vault
В качестве примера кошельков, которые невозможно подключить к какому-либо стороннему устройству, можно привести девайсы компании Cobo: Cobo Vault Essential и Cobo Vault Pro:
Разница лишь в том, что модель Essential работает только от аккумуляторных батарей типа AAA, а модель Pro и от батарей, и от аккумулятора. Транзакции совершаются при помощи автономных QR-кодов, для этого устройство было оборудовано камерой на тыльной стороне девайса:
Из особенностей устройства можно выделить очень большой, на фоне большинства аппаратных кошельков, сенсорный дисплей, авторизацию пользователя по отпечатку пальца и, наконец-то, открытый исходный код.
Аппаратные холодные кошельки — практика
Отправку транзакции при помощи аппаратного холодного кошелька я буду проводить с кошельком Trezor T. В одном из "родных" интерфейсов Трезóра — приложении Trezor Suite со встроенной функцией работы через сеть Tor.
Сначала нужно создать транзакцию, это действие аналогично созданию транзакции на Online-устройстве и трансферу его на Offline-устройство:
Затем сверим информацию на девайсе с информацией на устройстве, мы подписываем транзакцию, и она в подписанном виде отправляется назад:
Остаётся только транслировать транзакцию в блокчейн, нажав Send:
Вместо эпилога
В конце статьи на такую тему нельзя сделать ничего лучше, как вновь пожелать Вам пользоваться тем благом, которое дал нам Сатоши Накамото, be your own bank...