1204 subscribers

Хранение криптовалюты. Обзор MetaMask. Часть 1

236 full reads

На момент подготовки статьи почти 90% криптовалюты хранил на биржевых счетах. Но последние новости мотивируют серьёзнее задуматься о безопасности своей крипты. Например, проблемы с аккаунтами Binance в США, когда у пользователей заморожены активы, а биржа говорит что-то в стиле «виноваты сами». Соскамившаяся турецкая биржа Thodex, в результате чего тысячи пользователей потеряли доступ к своим активам. Или хакерский взлом Hotbit, который затронул меня лично – есть аккаунт на бирже, к которому теперь нет доступа, а есть ожидание починят или нет.

На этом фоне вывод части активов с бирж и распределение по криптокошелькам видится мне актуальным. Существует много видов кошельков, и они делятся по способу хранения крипты, месту установки, для одной валюты или мультимонетные и пр. Рассмотрим и протестируем один из самых популярных – MetaMask. Он имеет ряд свойств, в том числе является расширением в браузер на компе, поддерживает сети Ethereum и BinanceSmartChain (BSC), легко интегрируется с DeFi площадками.

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

О кошельке

Официальный сайт - https://metamask.io

MetaMask был создан в 2016 году компанией ConsenSys как Ethereum-кошелёк, предназначенный для хранения монет ETH и токенов стандарта ERC. С осени 2020 в кошельке стала доступна сеть BSC, то есть появилась возможность хранить и оперировать монетами BNB и токенами валют построенных на BinanceSmartChain.

Изначально кошелёк представлял собой только расширение (плагин) в браузеры на компьютере, с осени 2020 появилась мобильная версия для Android и IOS.

Важную роль в популяризации МетаМаска сыграло развитие DeFi сектора. Возможность подключать кошелёк напрямую к DeFi площадкам (Uniswap, Compound, PancakeSwap, AlphaFinanceLab и др.) способствовала увеличению числа пользователей MetaMask. В октябре 2020 года кошелёк преодолел отметку в 1 млн активных пользователей в месяц, а по состоянию на апрель 2021, число ежемесячных активных пользователей кошелька превысило 5 млн человек.

Как работает

МетаМаск – это некастодиальный онлайн криптокошелёк.

Хранение крипты где-либо означает, что её единицы (монеты/токены) хранятся в блокчейне этой криптовалюты в виде записей в блоке – имеют адреса. Эти адреса публичны, то есть доступны к просмотру всем. Но совершать операции с активами на адресе можно только с помощью закрытого/приватного ключа (private key). «Некастодиальный» означает, что закрытый ключ от адреса с криптой хранится только у пользователя, а не на стороннем сервисе. Для сравнения, биржа Binance является кастодиальным хранилищем крипты, так как приватные ключи хранятся на ней, и если сайт биржи «ляжет», то мы не сможем получить доступ к своим средствам.

Онлайн означает, что кошелёк не устанавливается как специальная программа на компьютер, а является расширением в браузере. Таким образом,

МетаМаск – это расширение, которое позволяет хранить и управлять своими средствами в блокчейнах Ethereum и BinanceSmartChain.

С технической точки зрения кошелёк – это лёгкая нода (узел) в сети Ethereum. (Подробнее о нодах можно прочитать в статье «Ноды в блокчейне»). При создании кошелька генерируется закрытый ключ (private key), который представляет собой длинный случайный набор цифр и букв. Закрытый ключ зашифровывается в связке с паролем, который придумываем в момент создания. Где физически, хранится private key не разобрался, но предполагаю, что в браузере. Когда мы подтверждаем транзакции вводом пароля, то обращаемся к этому ключу.

Закрытый ключ генерирует открытый ключ (public key), с помощью которого создаётся публичный адрес кошелька.

Адрес кошелька – это адрес учётной записи (используют также синонимы «адрес счёта» или «адрес аккаунта»). Адрес является публичным – мы предоставляем его чтобы нам перечислили средства, при подключении к DeFi площадкам, для операций на них и пр. Грубо можно сказать, что адрес кошелька пользователя это его «псевдоним» или уникальный идентификатор в сети.

💡Поскольку каждая транзакция записана в блокчейн, то информация о транзакциях в сети общедоступна. Зная адрес кошелька, можно видеть его баланс и проведённые через этот адрес транзакции. Отслеживать эти данные можно с помощью обозревателя блоков соответствующей сети. Для Ethereum популярным обозревателем является https://etherscan.io, для BSC – https://bscscan.com.

SEED-фраза

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

Именно по SEED-фразе можно будет восстанавливать кошелёк, например, переносить с одного устройства на другое или в другой браузер, или запустить один кошелёк на нескольких компьютерах. Подробнее про это ниже.

Создание кошелька

Мне нравится работать через комп, поэтому буду использовать классическую версию МетаМаск в виде расширения в браузер. Есть вариант установить в Chrome, Firefox, Brave и Edge. С официального сайта скачиваю расширение в Chrome:

Рис 1. Скачиваю расширение MetaMask в Chrome
Рис 1. Скачиваю расширение MetaMask в Chrome

Далее создаю кошелёк. Во время создания будет предложено придумать пароль и записать в надёжное место свою SEED-фразу:

Рис 2. Создание кошелька (учётной записи) в MetaMask
Рис 2. Создание кошелька (учётной записи) в MetaMask

SEED-фразу можно записать и позже – она хранится в «Настройках» - «Безопасность», понадобится ввести пароль, чтобы её увидеть. Но МетаМаск рекомендует сделать это сразу.

Создание учётных записей и восстановление кошелька

Рассмотрю восстановление/импорт всего кошелька по SEED-фразе и восстановление отдельных учётных записей с использованием закрытого ключа.

Учётные записи

В современном виде МетаМаска учётная запись называется «счёт», поэтому далее буду использовать это название. При создании кошелька мы получаем счёт, у которого есть уникальный публичный адрес, закрытый ключ и к нему привязана уникальная SEED-фраза.

Теперь мы можем создавать в кошельке дополнительные счёта. При этом у каждого из них будет уникальный адрес, уникальный закрытый ключ и общая для всех SEED-фраза. Выбираем «Создать счёт», даём ему имя и готово. Для примера создал в кошельке два дополнительных счёта:

Рис 3. Создание дополнительных счетов (учётных записей) в кошельке
Рис 3. Создание дополнительных счетов (учётных записей) в кошельке

Положил на все счета немного BNB (подробно о том, как настраивать сеть BSC и вводить средства будет ниже). Разные суммы, чтобы визуально легко отличить:

  • 0,01 BNB на основной Account 1,
  • 0,015 BNB на «Счёт тест»,
  • 0,012 BNB на «Счёт тест 2».

Убедившись, что сохранил SEED -фразу, удаляю расширение MetaMask (соответственно и кошелёк) из браузера и для пущей уверенности перезагружаю комп 😂

Восстановление кошелька по SEED -фразе

Заново скачиваю c официального сайта расширение в Chrome, как показано на Рис 1. Далее МетаМаск предлагает или установить новый кошелёк или импортировать существующий по SEED-фразе. Выбираю импорт, вставляю SEED-фразу, придумываю пароль (использовал старый, чтобы не забыть) и кошелёк восстанавливается. После восстановления изначально видно только первый основной счёт – Account 1:

Рис 4. Восстановление кошелька по SEED-фразе
Рис 4. Восстановление кошелька по SEED-фразе

Теперь восстановим два дополнительных счёта. Для этого выполняем шаги, которые описаны на Рис 3 – нажимаем «Создать счёт», присваиваем ему имя и счёт восстанавливается. При восстановлении обратил внимание на следующие нюансы:

  • счета восстанавливаются в том порядке, в котором создавались;
  • можно изменить имя восстанавливаемого счёта, например вместо «Счёт тест» назвать «Счёт 123». Тогда название изменится, но адрес, ключ и сумма будут соответствовать ранее созданному счёту «Счёт тест». Чтобы избежать путаницы я сохранил старые имена.
  • для восстановления не надо использовать кнопку «Импортировать счёт» – она нужна для восстановления по закрытому ключу в другом кошельке, то есть в кошельке с другой SEED-фразой. Можно восстановить счёт через эту кнопку, вставив закрытый ключ, но тогда после нажатия «Создать счёт» этот счёт восстановится ещё раз и будут две одинаковые копии.

Восстановление по закрытому ключу

Закрытый ключ можно экспортировать из кошелька, то есть сохранить где-нибудь – он лежит в «Реквизиты счёта»-«Экспортировать закрытый ключ».

Помним, что у каждого счёта свой закрытый ключ, поэтому по закрытому ключу можно восстановить только соответствующий ему счёт. Допустим, есть два компьютера (назовём их Mac и Asus) на обоих установлен кошелёк МетаМаск, у каждого из которых своя уникальная SEED-фраза и набор счетов. Эксперименты по созданию счетов проводились на Asus. Теперь добавим учётную запись «Счёт тест» из кошелька на Asus в кошелёк на Mac.

В МетаМаск на Mac нажимаем «Импортировать счёт», вставляем его закрытый ключ и счёт появляется в списке счетов этого кошелька:

Рис 5. Импорт счёта (учётной записи) по закрытому ключу
Рис 5. Импорт счёта (учётной записи) по закрытому ключу

Кошелёк автоматически присвоил счёту имя «Account 3», восстановив его адрес и средства по его уникальному закрытому ключу. Чтобы избежать путаницы, переименовываю его в привычный «Счёт тест». На рисунке видим, что рядом с ним стоит пометка «импортированный».

Резюмирую – с помощью SEED-фразы можем восстановить весь кошелёк со всеми счетами, с помощью закрытого ключа только соответствующий ему счёт.

Подключение к сети Binance Smart Chain (BSC)

МетаМаск изначально создавался как Ethereum-кошелёк. Теперь он совместим и с блокчейном Ethereum и с блокчейном Binance Smart Chain (BSC). Также есть несколько тестовых сетей для разработчиков и возможность вручную добавить свою сеть. Нас как пользователей интересуют Ethereum и BSC. Во второй части статьи буду тестировать функции кошелька, и помня о высоких комиссиях в сети эфира, тестировать буду в BSC – механика действий аналогичная, зато комиссии в десятки раз меньше.

После создания кошелька для использования доступна только сеть Ethereum, а BSC необходимо установить вручную. Есть инструкция на русском в статье от Академии Binance, по которой установка делается в пару шагов: выбираем «Сети», нажимаем «Пользовательский RPC» и заполняем данные согласно инструкции:

Рис 6. Настройка BSC
Рис 6. Настройка BSC

«Имя сети» можно задать произвольно, это не повлияет на её работу.

Заключение

В следущей части «Хранение криптовалюты. Обзор MetaMask. Часть 2» рассмотрим возможности МетаМаск. Протестируем ввод/вывод средств, покупку, обмен криптовалюты в кошельке через децентрализованные площадки и подключение к DeFi платформам на примере PancakeSwap – подключимся и застейкаем немного CAKE в сиропе.

08.05.2021

У нас есть Телеграм-канал, где публикуем анонсы новых статей выходящих на Дзене и наблюдения, которые показались интересными, но вышли за тему еженедельной статьи.

Подписывайтесь на каналы и читайте про криптовалюты.