Главная » Хабрахабр » [Из песочницы] Анализ блокчейн, или почему сломался миксер?

[Из песочницы] Анализ блокчейн, или почему сломался миксер?

По материалам моего доклада на конференции «Цифровая трансформация» в Москве 16 апреля 2018 г

Не только какие там алгоритмы, криптография, платформы и криптовалюты. Мне интересно, как работает блокчейн. Если вы в этом сомневаетесь, посмотрите на этот граф распродажи токенов Aragon: Для меня блокчейн — не только технология, но и новый вид жизни, новая вселенная.

Без этого взаимодействия блокчейн и криптовалюты не имели бы никакого смысла и ценности. Все эти адреса, смарт-контракты, токены постоянно взаимодействуют друг с другом, и за ними стоят действия людей, организаций и роботов.

Как работают бизнесы в блокчейн, что там делают люди и роботы — эти вопросы заставили меня заняться исследованием блокчейна.

Проблема и пути решения

Можно прочитать абсолютно любую информацию о блоках, адресах и транзакциях. Блокчейн сеть, а мы говорим именно о публичных блокчейн сетях, вообще-то, полностью открыт. Кроме того, любой полный узел блокчейна скачивает на локальный диск все блоки с начала времен с полной информацией внутри, так как это требуется для проверки правильности транзакций, и боже упаси, майнинга. Для программистов для этого существуют интерфейсы API ( например, Web3 [1] ), а для простых смертных — блокчейн-исследователи, например Etherscan [2]. То есть любой узел блокчейна — это его полная копия, да ещё и с интерфейсами для доступа и подробной документацией.

Блокчейн против. Вроде бы есть всё для анализа, но не тут-то было. В блоках хранятся записи о транзакциях и мета информация для обеспечения целостности и связности. Вспомним, что значит это слово блокчейн на русском: цепочка блоков. Никаких индексов, кроме перечисленных, на узле нет. Чтобы что-то найти в блокчейне надо знать номер блока или хеш транзакции, или в крайнем случае адрес.

Он показывает то же, что доступно через API, только в виде веб-страниц. Etherscan тоже немногим лучше. Вы видите блокчейн через узенькое окошечко, ограниченное этими сущностями. И также, чтобы найти что-то, вы должны знать заранее или адрес, или хэш транзакции, или номер блока. Это как изучать вселенную с микроскопом, для анализа «в большом» существующие инструменты совершенно не подходят.

Чтобы пофилософствовать, я даже нарисовал такую диаграмму, где видна суть проблемы:

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

Информация в основном или чисто технического плана для понимающих (вида «Etherscan»), или беллетристика про проекты ICO [3], DAO [4], имеющая явное субъективное смещение, и не проверяемое математическими методами. Про блокчейн такого пока сказать нельзя.

Блокчейн непрозрачен в целом, хотя и вся информация широко доступна, значит будем над этим работать!

Технические средства для аналитики блокчейн

Блокчейн сетей много, и также много разных платформ, на которых они построены. Сначала поймём масштабы проблемы. Надо с чего-то начинать и я выбрал сеть Ethereum Foundation по нескольким причинам:

  1. Много участников
  2. Капитализация всех валют сети, включая токены, возможно наибольшая из всех
  3. Смарт-контракты [5] и DAO [4], расширяющие возможный анализ и делая его намного более содержательным и полезным

Даже выбрав одну сеть, мы получаем довольно много данных (по состоянию на 15 июня 2018 года):

Количество переводов криптовалют, всего

267 млн

Переводов криптовалюты в день, в среднем

750 тыс

Количество действующих адресов

44 млн

Количество смарт-контрактов

6.8 млн

Количество выпущенных токенов

48 тыс

Вызовов смарт-контрактов в день, в среднем

690 тыс

Примерный объем сжатых данных для полной ноды

117 GBytes

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

  1. Информация из блокчейна должна попадать в базу данных как можно быстрее, как только создан новый блок. Мы хотим видеть текущую информацию, а не архив;
  2. Получать отчеты мы хотим быстро, в течении секунды или быстрее, чтобы не терять интереса задавать много вопросов.

До этого я не использовал эту систему, и мне помогали разбираться ребята из Altinity [7], за что им отдельное спасибо. Выбор пал на базу данных Clickhouse [6], проект с открытым кодом от компании Яндекс.

Общая структура системы выглядит следующим образом:

Процесс запускается как только новый блок попадает на узел сети и работает постоянно. Исходные данные читаются из полного узла сети Ethereum процессом ETL ( Extract — Transform — Load ), который разбирает данные внутри блока и записывает в несколько таблиц в базе данных Clickhouse.

С правой стороны диаграммы пользователи данных, на настоящий момент:

  1. средство аналитики SuperSet [8]. С помощью него можно делать классные диаграммы и быстро комбинировать запросы для получения ответов на вопросы анализа;
  2. Python Jupiter [9] для более полного анализа средства машинного обучения и применения статистических алгоритмов;
  3. Веб-сайт Bloxy и API [10] для публичного использования информации.

Некоторое время заняло индексирование базы Ethereum, все-таки там уже почти 6 миллионов блоков, и каждый надо считать из узла и обработать, но эта работа позади, и мы, наконец, можем насладиться всей мощью аналитической базы данных, тем более что данные просто м-м-м какие вкусные!

Токены

Токены — это криптовалюты, которую каждый может выпустить используя смарт контракт определенного вида. Начнём с токенов, поскольку это самое популярное применение смарт контрактов сети Ethereum, можно сказать, цель и смысл её создания. Основной стандарт токена — ERC20 [11], но как мы сейчас увидим, им всё не ограничивается.

Теперь, имея базу для аналитики и SuperSet, мы можем посмотреть, какие токены выпускаются, как они используются, и что сейчас популярно:

Круговая диаграмма показывает, что токены ERC20 имеют подавляющее распространение по сравнению с другими видами. Данные приведены для всего времени существования Ethereum. На самом деле в день создается иногда несколько сотен новых токенов, читай крипто-валют, но не все попадают на этот график, а только те, что активно используются. График количества активно используемых токенов при переводов имеет стабильный рост до сих пор, и это означает, что энтузиазм ICO не спадает, а даже наоборот.

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

На этом графике есть две аномалии: пик переводов токенов ERC20 в ноябре 2017 года и менее выраженный «горбик» роста перевода токенов стандарта ERC721 в декабре.

Этот способ привлечения клиентов ICO использовался и до и после много раз, но масштаб разброса за 1 день бесплатных «монет» рекордный! Ноябрьский пик связан с токеном InsPromo, который разбрасывали почти миллиону адресов «просто так», это была рекламная акция типа «airdrop» [12].

На графике виден быстрый рост оборота Crypto Kitties и снижения транзакций остальных токенов, видимо люди забыли что есть какие-то другие токены. Декабрьский интерес к токену ERC721 полностью связан с игрой CryptoKitties, люди с большим энтузиазмом покупали и выращивали цифровых кошечек.

Крипто-Звери и не только

Если стандарт ERC20 дал возможность выпускать всем измеряемую в определенной величине крипто-валюту, то ERC721 дал всем возможность обозначать права собственности любого объекта, виртуального, реального или даже интеллектуального мира. Токены ERC721 [14] появились, по сути, с появления именно крипто-кошек [13], хотя их потенциальное использование гораздо шире.

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

В декабре 2017 года виден большой рост, на 100% от игры Crypto Kitties. Верхний график показывает количество транзакций всех токенов ERC721. Интерес к игре продержался весь декабрь, потом постепенно спал.

На декабрь был один только Crypto Kitties, а в феврале их уже несколько десятков. На нижнем графике показано количество разных токенов стандарта ERC721 в обороте, читай проектов, на этой технологии. Слева показаны названия токенов, чем больше количество транзакций, тем крупнее шрифт, до сих пор котята с символом CK на первом месте.

Зачем нам миксер?

Один из ярких примеров — «миксер» из тысячи ботов, работающий в сети Ethereum. Анализ блокчейна целиком дает возможность находить закономерности и аномалии, которые не видны на микроуровне транзакций, адресов и блоков.

Начнем с поиска аномалии в распределении адресов по количеству получателей и отправителей крипто-валюты:

Размер круга — количество таких адресов. По горизонтальной оси — количество адресов, с которых переводились деньги на адрес, по вертикали — количество адресов, на которых переводились с адреса.

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

И таких адресов несколько миллионов! Но в декабре 2017 года круг с двумя отправителями и тремя получателями аномально вырос в размере. Чтобы разобраться в ситуации выберем один из таких адресов из жатого круга и построим граф переводов:

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

Объём работы этого огромного робота мы оценили, отделив транзакции этих адресов от остальных транзакций в сети:

Нужно, конечно, учитывать, что он переводит валюту внутри себя и внешний оборот его не столь значителен, не более 17 млн эфира ( на сегодняшний день 10 млрд долларов ). По объему переводов миксер ( оранжевые столбцы ) в отдельные месяцы превышает все остальные переводы в сети ( зеленые столбцы ) в несколько раз.

Максимум его деятельности приходится на начало 2018 года, когда каждая четвертая транзакция перевода Ethereum была инициирована этим роботом, как видно из синего графика доли транзакций миксера в общем количестве: Транзакции миксера занимали существенную часть пропускной способности сети Etehereum на протяжении многих месяцев.

Так как мы не знаем причин его использования, мы можем только догадываться о причинах его жизни и внезапной смерти. Но вот внезапно в конце февраля 2018 года он перестал работать. А может быть он не умер, а изменил алгоритм и просто ушёл с наших радаров?

Я верю в блокчейн

Бизнесы, люди и сообщества выигрывают от его использования. Я верю в блокчейн. По каким законам он развивается, какие есть внутренние аномалии, тренды, спады и подъёмы. Чтобы его использовать, надо понимать как он работает как явление.

Обычные пользователи будут лучше понимать что именно они делают, в чём участвуют, быть более защищёнными и счастливыми. Более прозрачный блокчейн позволит бизнесам вести эффективную деятельность с открытыми глазами.

Успех развития этой технологии полностью зависит от восприятия её обществом, и в этом процессе важна прозрачность. В конце концов блокчейн — это не столько сети, платформы, блоки и транзакции, сколько люди и сообщества.

Литература

[1] Web 3: A platform for decentralized apps

[2] Etherscan

[3] ICO

[4] DAO

[5] Смарт-контракты сети Ethereum

[6] Yandex Clickhouse

[7] Altinity

[8] SuperSet

[9] Python Jupyter

[10] Bloxy

[11] ERC20

A Detailed Guide to Free Cryptocurrency [12] WTF is an Airdrop?

[13] CryptoKitties

[14] ERC721 standard


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

Trekz Air — как на самом деле звучат наушники с костной проводимостью

Осенний привет хабровчанам! Большая аудиотека пополняется благодаря стриминговым сервисам. По жизни я — меломан, и провожу с музыкой непростительно много времени — по 8-12 часов в день. Всё сокровенное храню на плеере, используя наушники с большим количеством излучателей: TBA04, NuForce ...

[Перевод] Делаем проект по машинному обучению на Python. Часть 3

Перевод A Complete Machine Learning Walk-Through in Python: Part Three В этой статье мы постараемся разобраться, как созданная нами модель делает прогнозы и что она может рассказать о решаемой нами задаче. Многим не нравится, что модели машинного обучения представляют собой ...