{"id":14275,"url":"\/distributions\/14275\/click?bit=1&hash=bccbaeb320d3784aa2d1badbee38ca8d11406e8938daaca7e74be177682eb28b","title":"\u041d\u0430 \u0447\u0451\u043c \u0437\u0430\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0434\u0430\u0432\u0446\u044b \u0430\u0432\u0442\u043e?","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"f72066c6-8459-501b-aea6-770cd3ac60a6"}

Взгляд венчурного инвестора на Блокчейн | 14: охотимся на смарт-контракты

Найти, распознать, проникнуть внутрь, поковырять палочкой. На примере случайно выбранного взаимозаменяемого токена.

Как взаимодействовать со смарт-контрактами

Для того, чтобы взаимодействовать с любым смарт-контрактом в сети Ethereum, нужны следующие подготовительные действия:

  1. Вы должны создать свой кошелек и получить адрес. Самый популярный вариант — MetaMask.
  2. Вы должны выбрать какой-то веб-интерфейс взаимодействия с блокчейном. Таких много, например, Remix.
  3. Вы должны знать адрес смарт-контракта.
  4. Вы должны иметь интерфейс этого смарт-контракта (ABI). Это текстовый файл, в котором перечислены все переменные и функции смарт-контракта, чтобы веб-сайт знал, какие вызовы можно делать.

Пробуем на примере токена QASH

Самое простое – это попробовать на практике. Я взял произвольный токен (поискал по запросу «самые крупные ICO 2018 года»). Первый токен, который я нашел, называется QASH. Заходим на Coinmarketcap и читаем, что это такое. Там даже есть ссылка на их Whitepaper. Можете посмотреть – какой-то инструмент ликвидности. Там же смотрим рыночную капитализацию – почти 26 млн. долл. Неплохо, неужели не сдулся с 2018 года?

Теперь заходим на Etherscan. Ура, там про токен QASH есть много информации.

Нас интересует справа сверху: Contract. Это адрес контракта – кликаем на него. Чуть ниже будет меню:

Видите галочку напротив слова Contract? Бинго! Там есть не только бинарный код и ABI-интерфейс этого смарт-контракта, но даже его исходный код. Вот как выглядит ABI:

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

Запоминаем, отсюда нам будут нужны две вещи – этот самый ABI и еще адрес смарт-контракта.

Теперь надо как-то связаться с блокчейном

Идем в Remix. Выбираем там первую вкладку, создаем новый файл, называем его test.abi. Копируем в него ABI-текстовку с Etherscan.

Потом идем в третью сверху вкладку. В списке «Environment» выбираем «injected Web3». Это значит, что вы просите Remix обратиться к вашему кошельку в веб-браузере (у меня MetaMask) и через него взаимодействовать с сетью. Если вы предварительно установили кошелек, то он попросит разрешение на соединение. Разрешите его – и вуаля, вы готовы к взаимодействию со смарт-контрактом.

Видите, в той же вкладке чуть ниже текст «At Address»? Скопируйте туда адрес смарт-контракта из Etherscan. Все готово, нажимайте на «At Address».

Все, теперь снизу появился раскрывающийся список функций и переменных этого смарт-контракта (снизу слева скриншота). Нажимайте на него – и можете увидеть его функции.

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

Изучаем функции смарт-контракта

Нажимаем на кнопки «Name» и «totalSupply». Убеждаемся, что имя контракта правильное – QASH. А totalSupply – это сколько всего таких токенов может быть выпущено – 1,000 трлн штук. Сколько, сколько?? Ах да, есть же еще параметр decimals. Нажимаем на кнопку - пишет число 6. Значит каждый токен делится на 1 млн. частей. Поэтому берем totalSupply и откидываем последние 6 нулей. Получается 1 млрд. токенов в обороте.

Раз стоит он 0.074 долл., а рыночная капитализация 26 млн. долл., то выпущено должно быть что-то около 350 млн токенов. Остальное вероятно не принадлежит никому (ну или принадлежит собственнику смарт-контракта).

Там есть функция balanceOf() – она показывает баланс любого адреса. Находим на том же Etherscan адрес собственника этого контракта (ContractCreator). Вбиваем этот адрес в функцию – смотрим. Выдала большое число, примерно 32.5% от totalSupply. Странно, в обороте всего явно меньше, чем 67.5%.

Обратимся к секции Holders на Coinmarketcap:

Вот и разгадка. Еще 33% токенов числятся «мертвыми». То есть их скорее всего сожгли в процессе работы со смарт-контрактом. Видимо, за этим стоит какая-то внешняя логика. Например, их могли сжечь при переносе на другой блокчейн (тут сжигаем 1 токен – там создаем 1 токен взамен). Это можно изучить глубже, но я этим не занимался. Смотрим секцию Holders дальше.

Скорее жив или скорее мертв?

Если исключить сгоревшие и непроданные (№ 1,2), то получается что топ-10 собственников владеют 220 млн. токенов из 350 млн в обороте. Или примерно 63%. А всего собственников почти 13 тысяч. При этом активных за сутки всего лишь 24 адреса. Такое чувство, что какие-то ребята пересылают друг другу токены, таким образом создается оборот и поддерживается рыночная капитализация. При этом, судя по всему, активные и есть те же крупнейшие стейкхолдеры (правда, я этого не проверял). Похоже, что токен все-таки скорее мертв.

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

Эта методика применима к любому контракту

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

Итак, я показал вам, как можно "поохотиться" на какой-нибудь смарт-контракт. Оказывается (и для меня это было открытием), все не так уж сложно. Главное знать, где и что искать. В следующей статье я хочу наконец коснуться популярной темы NFT (non-fungible token), описать как он устроен и сравнить его с FT (fungible token), коим, например, является QASH. Следите за блогом, не пропустите следующую серию!

0
Комментарии
-3 комментариев
Раскрывать всегда