
Работа с кошельком MEW в “холодном” режиме
Работа с криптоактивами сопряжена с опасностью их потери в результате возможного взлома электронного кошелька или кражи ключевых данных.
Это обычно происходит в результате похищения приватных ключей и паролей от кошельков, находящихся на компьютере, подключенном к интернету.
Чтобы обезопасить себя от троянских атак, онлайн-взлома с помощью эксполойтов и прочих сетевых атак, лучше использовать кошельки на компьютерах, которые никогда не подключаются к интернету. Холодные кошельки, никогда не подключающиеся к интернету значительно труднее взломать, не имея доступа к компьютеру, не подключенному к сети.
В статье «Использование кошелька Electrum для холодного хранения биткоинов» уже рассматривался способ использования в холодном режиме кошелька Electrum для работы с биткоинами.
В данной статье рассматривается работа с монетами Ethereum, токенами стандарта ERC20 (а также другими криптовалютами, включая MATIC, ELLA, CLO, UBQ, EGEM и много других) в кошельке MEW (MyEtherWallet) в «холодном» режиме.
Использование MyEtherWallet в качестве холодного кошелька
Для работы с кошельком MEW в холодном режиме нужно иметь два компьютера, которые используются следующим образом:
- На компьютере, подключенном к сети, производится генерация транзакций и отправка их в сеть после подписи на защищенном кошельке.
- На защищенном компьютере подписываются транзакции для отправки их в сеть с помощью кошелька, подключенного к интернету.
Благодаря такому способу работы вся важная информация (private key, keystore file, mnemonic phrase) находится в безопасном месте и не подвергается риску утраты в результате сетевой атаки.
Об особенностях использования холодного кошелька MyEtherWallet
В качестве оффлайн-кошелька MyEtherWallet используется браузерное приложение, которое скачивается с Github.
В качестве онлайн-кошелька используется кошелек MEW, доступный через меню Send Offline Helper в онлайн-версии MyEtherWallet.
Работа в холодном режиме поддерживается в MyEtherWallet до версии 5.8.7, к сожалению, новые релизы MEW не предусматривают его использования как Cold Wallet.
В обоих случаях используется браузерный кошелек MyEtherWallet, который работает в виде страницы интернет-сайта. На ней используются команды по технологии Progressive Web App (PWA), интерпертируемые на языке программирования Javascript, команды которого выполняются в браузере как на виртуальной машине. Это позволяет использовать MEW практически в любой операционной системе с современным браузером.
На устройстве, не подключенном к интернету, веб-версия кошелька работает как оболочка, подписывающая транзакции, предварительно созданные на онлайн-wallet, которые затем снова переносят на онлайн-кошелек и запускаются в сеть.
Рассмотрим подробнее порядок работы с кошельком MEW в холодном режиме.
Создание транзакции в онлайн-кошельке MyEtherWallet
Для создания кода транзакции, которая будет безопасно подписана в оффлайн-режиме, нужно произвести следующие действия на онлайн-компьютере:
- Зайти на сайт MyEtherWallet, внизу главной страницы (футере) выбрать ссылку Send Offline Helper:
- Перейти по ссылке Send Offline Helper:
Здесь есть пункты, необходимые для работы с MEW в холодном режиме:
-
- Select Network (выбор сети) – для выбора ноды, с которой будет осуществляться синхронизация сети.
!!!ВАЖНО!!!
Кроме Ethereum, в MEW можно работать с сетями блокчейнов криптовалют ROP, RIN, AKA, ATH, CLO, EGEM, ELLA, ESN, ETC, ETHO, EXP, GOERLI, GO, ILT, KOV, META, MIX, MUSIC, POA, PIRL, REOSC, RSK, RSKTEST, TOMO, UBQ, WEB, TT, SUM, DXN, PHT.
Скриншот подменю пункта Select Network:
-
- Generate information (сгенерировать информацию) – для ввода адреса кошелька, с которого будет производится транзакция;
Скриншот подменю пункта Generate information:
-
- Signed Transaction (подписанная транзакция) – для загрузки в онлайн-wallet json-файла с информацией о транзакции, подписанной в оффлайн-кошельке;
Скриншот подменю пункта Signed Transaction:
-
- Transaction Details (детали транзакции) – используется для просмотра детальной информации о транзакции (адреса получателя и отправителя, nonce, сумма транзакции, дата, информация об используемой сети (блокчейне), лимит на использование газа, размер комиссии и другое). Здесь также находится кнопка Send для отправки транзакции в сеть;
Скриншот подменю пункта Transaction Details:
-
- Transaction status (статус транзакции) – для просмотра статуса транзакции на кошельке, работающем на устройстве, подключенном к сети.
Скриншот подменю пункта Transaction Details:
Выбрать в меню Select Network нужную сеть (для работы с монетами ETH или токенами ERC20 – оставить сеть ETH);
В подменю Generate information заполнить адрес, с которого будет выполняться транзакция (адрес отправителя). После заполнения этого поля кошелек автоматически сгенерирует значения gas price и nonce для транзакции, а также другие ее детали;
Скриншот подменю Generate information при заполнении поля адресной формы:
Записать значение nonce транзакции, экспортировать JSON-файл и скопировать его на USB-флеш для переноса на компьютер с холодным кошельком MEW;
Скриншот операции копирования JSON-файла транзакции, сгенерированной на онлайн-кошельке MyEtherWallet:
Внутри JSON-файла находится следующая информация о созданной транзакции:
{“address”:”0x5d9ea22f9672c4a132b41506635959bf26436dc9″,”gasPrice”:”6400000000″,”nonce”:477,”chainID”:1,”networkName”:”Ethereum”,”blockNumber”:9008916,”timestamp”:1574844087860}
Если при запуске MEW возникают ошибки, связанные с тем, что нет подключения к интернету типа Failed to fetch, Network Error, Something went wrong with our service workers, нужно проверить наличие сети, а также отсутствие блокировки браузера антивирусом или брандмауэром.
Скриншот ошибок, возникающих при отсутствии подключения MyEtherWallet к интернету:
Создание браузерного «холодного» кошелька MyEtherWallet
Для создания холодного кошелька на оффлайн машине, туда нужно с помощью USB-флешки перенести архив MEW (последняя версия – 5.8.9, поддерживает работу после Merge), предварительно скачанный с Github.
Скриншот страницы Github с последней версией кошелька MEW:
Скачанный архив (в данном случае MyEtherWallet-v5.2.4.zip) разархивируется на защищенном компьютере в папку кошелька, например, MyEtherWallet.
Чтобы запустить интерфейс для работы с оффлайн-кошельком, открывают в любом браузере файл index.html:
Сразу после запуска появится окно с приветствием:
После нажатия на кнопку Onwards появится страница, на которой можно создать новый кошелек через меню Create A New Wallet или открыть доступ к кошельку с помощью ссылки Access My Wallet:
Открыть новый кошелек можно с помощью мобильного приложения MEWconnect, ключевой файл или мнемоническую фразу.
Получить доступ к уже имеющемуся кошельку можно через мобильное приложение MEWconnect, аппаратный кошелек, расширение в браузере или через ключевой файл, приватный ключ/мнемоническую фразу (подпункт Software):
При холодном использовании кошелька можно не бояться последнего пункта, так как приватные ключи не могут быть украдены с компьютера, не подключенного в сеть. Через меню Software можно получить доступ к кошельку, созданному в других программах, что очень удобно, особенно в случае прекращения разработчиками работы над ними.
При нажатии на ссылку Software появляется окно с предупреждением, что доступ к кошельку таким образом безопасен только в оффлайн режиме:
Для открытия доступа с помощью ключевого файла используется строка Keystore File (создание нового кошелька и ключей для него происходит аналогично).
В качестве примера расмотрим открытие доступа к кошельку, ключ для которого был создан в официальном кошельке Mist.
Для справки: развитие Mist сообществом Ethereum прекращено, последняя версия выпущена еще в 2018 году.
В подменю Software выбираем строку Keystore File и нажимаем Continue:
Выбираем приватный ключ и нажимаем кнопку «Открыть»:
Вводим пароль для кошелька:
После ввода пароля получаем доступ ко всем функциям кошелька в оконном интерфейсе:
При этом появится сообщение об ошибках, связанных с тем, что нет подключения к интернету такого вида:
Это сообщение можно проигнорировать, нажав на кнопку Cancel.
Кроме того, из-за отсутствия подключения к сети, на оффлайн-кошельке не будет видно баланса монет ETH или токенов на нужном адресе.
Чтобы проконтролировать состояние (баланс) конкретного кошелька, можно использовать эксплореры типа etherscan.io или ethplorer.io на онлайн-машине.
Для подписи транзакции, созданной в онлайн кошельке, нажимают кнопку Send Transaction:
После этого, в левой колонке выбирают строку Send Offline:
Внизу страницы оффлайн-кошелька нажимают кнопку Import JSON и открывают файл, перенесенный на флешке с онлайн-компьютера:
После этого заполняют поля с суммой транзакции (Amount), адрес получателя (To Address)
Нужно внимательно проверить все поля, в том числе значение Nonce, которое создал кошелек на онлайн-машине.
После заполнения всех полей кнопка генерации транзакции станет активной:
После нажатия на кнопку Generate Transaction появится окно с информацией о подписи транзакции (красная строка)
Эту же информацию можно скопировать в подписанном JSON-файле (кнопка Download JSON):
При нажатии на кнопку сохраняется файл вида signedTransactionObject-1574857487881.json, который нужно перенести на онлайн-кошелек с помощью флешки.
Передача подписанной транзакции в сеть на онлайн-кошельке MEW
Для передачи в сеть подписанной транзакции, подписанной в оффлайн-кошельке MEW, производят следующие действия:
- Подключают USB-флеш с подписанным JSON-файлом с информацией о транзакции к онлайн-компьютеру.
- Запускают онлайн-кошелек MEW через ссылку Send Offline Helper.
- В подменю Signed Transaction кнопкой Upload Json File импортируют нужный JSON-файл:
- В меню Transaction Details проверяют все детали транзакции:
- Нажимают кнопку Send и отслеживают транзакцию в любом эксплорере или в онлайн-кошельке MyEtherWallet в подменю Transaction Status:
Детали этой же транзакции в эксплорере etherscan.io:
Отправка ERC токенов с помомщью MEW-кошелька в холодном режиме выполняется аналогичным образом. Для получения доступа к кастомным токенам в MEW web-интерфейсе на оффлайн компьютере предварительно их нужно сначала прописать в программе. Этот процесс описывается в статье Отправка ERC-токенов в MEW в холодном режиме.

