Публикуем перевод статьи известного анонимного разработчика под ником Dexaran. Статья посвящена уязвимостям и отрицательным факторам использования оффлайн десктопных кошельков для криптовалюты. В ней наглядно показана разница в технологии хранения и доступа к криптовалюте между полноценным Core кошельком и «облегченной» версией десктопного кошелька.

Тезис: С тех пор, как появился Ethereum, десктопные кошельки криптовалют можно считать устаревшими. Наступает время WEB 3.0 и десктопные кошельки становятся не нужны, потому, что они не поддерживают дополнительный функционал безопасности, который есть в веб кошельках с исходным кодом. Разработка десктопных кошельков криптовалют — это тупиковое направление и пустая трата времени. 

Миф: десктопный кошелек криптовалют безопасней веб кошелька

В самом начале появления технологии блокчейн, были оффлайн кошельки Bitcoin Core и вебсайты, которые предлагали услуги «веб кошелька». Эти десктопные кошельки криптовалют представляли собой полностью весь блокчейн монеты, который хранился у пользователя на компьютере. Такие кошельки позволяли создавать адрес, а также подписывать и отправлять транзакции в сеть.

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

Как воруют криптовалюту из веб-кошелька MyEtherWallet

Ситуация изменилась, когда появился Ethereum. Узлы сети Ethereum отличаются от узлов Bitcoin Core. Это позволило создавать веб кошельки криптовалют, которые не хранят приватные ключи пользователей. Например такие сервисы, как ClassicEtherWallet, MyEtherWallet и MyCrypto.В результате стало не важно: используете вы веб-кошелек или десктопный кошелек для хранения криптовалюты, ваши приватные ключи принадлежат только вам. Иными словами, вы и только вы полностью контролируете адрес кошелька и средства на нем.

Техническая реализация: узлы RPC

Биткоин был самой первой криптовалютой и в его функциональной структуре отсутствуют очень важные компоненты. Простой пример: Узлу нужно подтверждать транзакции и передавать их в сеть. У пользователя есть два варианта:

  1. Скачать весь блокчейн себе на компьютер и самому стать полной нодой
  2. Доверить свои приватные ключи другой ноде, которая будет обновлять блокчейн и подтверждать транзакции.

Вопрос: Что может делать узел сети, которому вы доверите ваш приватный ключ?

Ответ: Подписывать транзакции от вашего имени и отправлять средства туда, куда захочет владелец ноды.

Ethereum — это следующее поколение блокчейн, и в нем реализована функция RPC (Удаленный Вызов Процедуры). В частности, узлы могут передавать абстрактную транзакцию, когда она будет подписана. Для этого узлу не нужно знать приватный ключ, который подписал эту транзакцию. Это означает, что для того, чтобы подписать транзакцию, пользователю не нужно скачивать весь блокчейн. Он даже может быть не подключен к интернету в этот момент. Это то, что называется Web3.js в протоколе Ethereum. После этого, пользователь может отправить эту транзакцию на любой узел и попросить его передать ее дальше в сеть, не рискуя при этом потерять свои средства или скомпрометировать приватные ключи от криптовалютного кошелька.

Вопрос: Что может делать узел сети, которому вы отправите транзакцию, подписанную вашим приватным ключом?

Ответ: Только отправить транзакцию в сеть, причем сделать это только один раз.

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

Это позволяет создавать такие кошельки криптовалют с открытым исходным кодом, как ClassicEtherWallet, который не сохраняет приватные ключи пользователей. Такое невозможно в данный момент в сети Bitcoin Core из за ограничений в ней узлов RPC. Сеть Ethereum позволяет пользователю создать аккаунт и полноправно распоряжаться приватным ключом.

Десктопные кошельки предлагают более расширенный функционал, чем веб кошельки

Это утверждение было верным в самом начале появления Ethereum. В то время был криптовалютный кошелек Mist, который представляет собой инструмент взаимодействия с блокчейном и позволяет создавать и выполнять смарт-контракты. В кошельке Mist есть несколько очень важных функций, которых нет, например в MyEtherWallet и MyCrypto.

Тем не менее, нам удалось достичь значительного прогресса в разработке кошелька ClassicEtherWallet, в течение нескольких последних месяцев:

  • Развертывание контрактов с параметрами конструктора (критично для разработчиков контрактов)
  • Система Сообщений
  • Функция шифрования кошельков, которая позволяет зашифровать уже выпущенный ключ в файл key-store (Важное обновление безопасности)
  • Развертывание контрактов совместимых с ClassicMask/MetaMask
  • Поддержка типа массива для вызова контрактов (критично для разработчиков)
  • Реализован автоматический поиск известных адресов контрактов, для автоматизированной загрузки ABI
  • Реализован функционал «фоновой ноды» (межблокчейновый сервис)

Сейчас криптовалютный кошелек ClassicEtherWallet имеет более продвинутый функционал, в сравнении со всеми десктопными кошельками, которые существуют на данный момент. Он также поддерживает интерчейн функцию, что вобще недоступно дестопным криптовалютным кошелькам (если вы конечно, не скачаете на компьютер четыре блокчейна одновременно).

В следующем обновлении (3.11.3) криптовалютный кошелек ClassicEtherWallet будет представлять собой полноценный набор инструментов для работы со смарт-контрактами, который поможет решить любый проблемы, с которыми сталкиваются разработчики.

Вы можете использовать веб кошелек для «холодного хранения»

CEW, MEW и MyCrypto — это бесплатные кошельки для криптовалют с открытым исходным кодом, которые могут работать в любом окружении. Пользователь может скачать копию исходного кода кошелька на компьютер и запускать его локально. Также можно подключить. ClassicEtherWallet к узлу (Geth или Parity). Именно так и работает десктопный кошелек.

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

 

1 КОММЕНТАРИЙ

  1. Мне работать с кошельком eo.finance реально понравилось, да и с выводом пока никаких проблем – все работает отлично.

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here