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

Примечание: это перевод статьи из моего англоязычного блога на платформе Medium.

Начнем с терминологии

Общепринятого определения термина "наука о данных" ("Data Science") не существует. Здесь я воспользуюсь моим любимым определением за авторством Кэсси Козырьков из Google (Cassie Kozyrkov):

"Наука о данных - это дисциплина, целью которой является извлечение пользы из данных".

Безусловно, это слишком широкое определение, и стоило бы пояснить, как именно из данных "извлекается польза" на практике. Kozyrkov (2018) предлагает следующую классификацию аналитических приложений, исходя из количества решений, которые они позволяют принимать:
  • Описательная аналитика (Descriptive Analytics / Data Mining) - разведочный анализ, предназначенный для обнаружения в данных неизвестных ранее закономерностей и формулировки гипотез в отношении процессов, вызывающих эти закономерности. Здесь мы не принимаем никаких гипотез - мы просто ищем интересные паттерны в имеющихся данных.
  • Статистический вывод (Statistical Inference) - принятие одного или нескольких решений с учетом неопределенности в отношении того, насколько хорошо проанализированные нами данные описывают соответствующую генеральную совокупность.
  • Машинное обучение / искусственный интеллект (Machine Learning / Artificial Intelligence) - создание "рецептов" (моделей и алгоритмов), которые можно повторно использовать для принятия большого количества решений в автоматическом режиме.
Хотя различия между этими видами аналитических приложений не всегда очевидны, приведенная классификация вполне подойдет для наших целей.

Согласно Википедии (см. также статью на русском языке),

"Блокчейн - это постоянно растущий список криптографически связанных между собой записей (блоков)".

Блокчейн-системы обычно реализуются в виде децентрализованных распределенных баз данных, в которые можно только добавлять новые записи, но не изменять предыдущие записи. Традиционно подобные системы использовались в качестве бухгалтерских книг (англ. "ledgers") для ведения учета криптовалютных транзакций (Bitcoin, Ethereum, Dash и др.). Однако в наши дни эта технология находит и множество других приложений

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

Сгенерированные в блокчейн-платформе данные принято называть системными (англ. "on-chain data"). В ходе анализа к подобным данным часто добавляют также внесистемные данные (off-chain data), которые могут происходить из любых сторонних источников (например, псевдонимы и имена владельцев некоторых блокчейн-адресов иногда можно найти на различных публичных форумах и специальных вебсайтах).

Аналогично Chen et al. (2020) мы выделим также аналитические приложения, основанные на блокчейн-данных, но не обязательно являющиеся частью соответствующей блокчейн-системы ("for blockchain application"; например, информационные панели, развернутые на инфраструктуре стороннего поставщика облачных сервисов), и приложения, встроенные непосредственно в саму систему ("in blockchain application"). Приложения второго типа обычно реализовывают с помощью т.н. "умных контрактов" (smart contracts). Попросту говоря, умные контракты - это фрагменты компьютерного кода, имеющие собственный блокчейн-адрес и выполняющие определенные вычисления в ответ на соответствующие триггеры. Для разработки умных контрактов используют языки программирования как общего назначения, так и специализированные (например, Solidity или Vyper).

Наука о данных и технология блокчейн созданы друг для друга

В отличие от традиционных источников данных (например, корпоративных баз данных с единым центром управления), блокчейн-системы обладают рядом преимуществ, важных для разработки аналитических приложений:
  • Высокое качество данных. Все новые блокчейн-записи проходят тщательный процесс валидации, основанный на том или ином механизме принятия коллективного решения (consensus mechanisms). После валидации и добавления в систему, новые записи становятся неизменяемыми (immutable) - никто не может их модифицировать ни под каким предлогом. Блокчейн-данные обычно хорошо структурированы, а их схемы хорошо задокументированы. Это значительно облегчает жизнь аналитика, работающего с такими данными, и делает ее более предсказуемой.
  • Прослеживаемость. Блокчейн-записи содержат всю необходимую информацию, чтобы понять их происхождение и контекст, в котором они были созданы (например, адрес инициатора транзакции, временная отметка транзакции, переведенное количество криптовалюты, адрес получателя и т.д.). Более того, многие публичные блокчейн-системы имеют сопутствующие сайты-обозреватели (explorers), где любой желающий может изучить любую запись когда-либо созданную в соответствующей блокчейн-системе (см., например, сайты для Bitcoin, Ethereum и Ripple).
  • Встроенная анонимность пользователей. Блокчейн-платформы не требуют от пользователей предоставления какой-либо личной информации. Это довольно важный аспект в наши дни, когда право на частную жизнь становится все более проблематичным. С точки зрения специалиста по анализу данных, это помогает также с соблюдением ряда законодательных актов (например, GDPR в Европе), которые требуют анонимизации данных перед их обработкой.
  • Большие объемы данных. Многим алгоритмам машинного обучения необходимы большие объемы данных для обучения хорошо работающих моделей. В случае со "зрелыми" блокчейн-системами это не проблема - объемы данных в них исчисляются гигабайтами

Сбор данных из блокчейн-систем не всегда прост, но есть опции



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

Опция 1 - данные, подготовленные кем-то другим

В рамках программы BigQuery Public Datasets платформа Google Cloud предоставляет доступ ко всем транзакциям в таких популярных блокчейн-системах, как Bitcoin, Bitcoin Cash, Dash, Dogecoin, Ethereum, Ethereum Classic, Litecoin и Zcash. Запросы к этим данным легко выполнять с помощью SQL-команд, а полученные результаты можно сохранить для последующего анализа и построения моделей. Большинство из этих таблиц имеют одинаковую схему, что облегчает повторное использование написанных однажды SQL-запросов. Примеры работы с этими приведены в блоге Евгения Медведева (англ. яз.).

Для исследовательских целей можно воспользоваться также несколькими статичными наборами блокчейн-данных. Вот несколько примеров:
  • Elliptic Dataset: часть графа транзакций Bitcoin, включающая 203796 вершин (транзакций) и 234355 ребер (прямые платежи). Вершины в этом графе имеют метки "незаконная", "законная" и "неизвестно". Этот набор данных был представлен в публичное пользование компанией Elliptic с целью создать интерес в академической среде и в криптовалютных сообществах к разработке более безопасных криптовалютных финансовых систем (Bellei 2019; Weber et al. 2019).
  • Medalla Dataset в BigQuery: предоставлен в публичное пользование компанией Nansen.ai в рамках конкурса Medalla Data Challenge, проведенного в 2020 г. организацией Ethereum Foundation. Этот набор данных содержит различные переменные, характеризующие активность в тестовой блокчейн-системе Ethereum Beacon Chain.
  • CryptoKitties Dataset: включает атрибуты тысяч "цифровых котят" из известной одноименной игры, работающей на платформе Ethereum.
  • Наборы данных, использованные Reid & Harrigan (2012) и Fam & Lee (2017a, 2017b) для обнаружения аномальных транзакций в сети Bitcoin.

Опция 2 - API и ETL-инструменты

Данные в BigQuery Public Datasets покрывают несколько крупных блокчейн-проектов, но что если интересующая исследователя платформа не входит в их число? Хорошие новости: практически все блокчейн-платформы представляют программный доступ к своим данным через соответствующие REST и/или Websocket API. Примеров таких API множество:  Bitcoin, Ethereum, EOS, NEM, NEO, Nxt, Ripple, Stellar, Tezos, TRON, Zilliqa и др.

К счастью, часто существуют также удобные клиентские библиотеки, которые абстрагируют особенности соответствующих API и позволяют аналитикам работать с их любимыми языками - Python или R. Примеры таких Python-библиотек включают bitcoin (сеть Bitcoin), trinity и web3.py (Ethereum), blockcypher (Bitcoin, Litecoin, Dogecoin, Dash), tronpy (TRON), litecoin-utils (Litecoin) и др. Примеры пакетов для R не такие многочисленные, но тоже есть: Rbitcoin (Bitcoin), ether (Ethereum), tronr (TRON).

Помимо API существуют также специальные ETL-инструменты для сбора данных из блокчейн-систем. Одним из ярких примеров здесь является проект с открытым исходным кодом "Blockchain ETL" - коллекция из нескольких Python-скриптов, разработанных компанией Nansen.ai. Кстати, именно эти скрипты используются для загрузки данных в упомянутые выше таблицы BigQuery Public Datasets.

Хотя API и бесплатные ETL-скрипты являются гибкими инструментами, их использование на практике может потребовать от аналитика дополнительных усилий и инженерных знаний (например, для инсталляции и поддержания локальных или развернутых в "облаке" блокчейн-узлов (blockchain nodes), программной среды для выполнения соответствующих скриптов, баз(ы) данных для хранения собранных данных и т.п.). Сопряженные с этим инфраструктурные требования могут также оказаться недешевыми.

Опция 3 - коммерческие решения

Чтобы сберечь время, усилия и затраты на вычислительную инфраструктуру, в ряде случаев логичнее будет воспользоваться коммерческими решениями для сбора блокчейн-данных. Подобные инструменты обычно предоставляют программный доступ к данным через API или SQL-интерфейсы и используют унифицированные схемы данных (см., например, Anyblock AnalyticsBitqueryBlockCypherCoin MetricsCrypto APIsDune AnalyticsFlipside Crypto и др.). Последнее обстоятельство облегчает сравнительный анализ нескольких блокчейн-платформ одновременно и, по крайней мере в теории, позволяет разрабатывать аналитические приложения, совместимыми с разными платформами. 


Мы живем в эпоху описательной блокчейн-аналитики



Блокчейн - молодая индустрия и можно утверждать, что мы еще только начинаем осозновать ценность соответствующих данных. На этой ранней стадии важно иметь возможность беспрепятственно собирать, обобщать и визуализировать данные, т.е. выполнять их описательный анализ. Неудивительно, что в подавляющем большинстве случаев описательная блокчейн-аналитика сегодня имеет отношение к криптовалютам и соблюдению законодательных требований по финансовым операциям. Разработано множество инструментов, помогающих криптовалютным компаниям, финансовым организациям, законодателям и силам правопорядка решать следующие распространенные задачи:
  • отслеживание и визуализация денежных потоков между блокчейн-адресами с целью обнаружения украденных средств, раскрытия ценовых манипуляций, установления личности воров и предотвращения отмывания денег;
  • присвоение меток блокчейн-адресам и привязка их к реальным персонам и организациям (например, "даркнет-рынок", "вымогательство", "мошенничество", "майнинг-пул", "азартная игра", "криптовалютная биржа" и т.д.);
  • уведомления в реальном времени о важных событиях в блокчейн-системе (например, подозрительные транзакции, переводы больших денежных сумм, активность адресов, находящихся под санкциями, и др.);
  • одновременный поиск по несколькими блокчейн-платформам с использованием унифицированной схемы данных;
  • вычисление и визуализация различных метрик, описывающих состояние блокчейн-системы;
  • выполнение произвольных запросов к блокчейн-данным.
Примеры крупных компаний, предлагающих соответствующие коммерческие решения, включают AnChain.ai, Bitfury, CipherTrace, Chainalysis, Coin Metrics, Dune Analytics, Elliptic, Glassnode, Nansen.ai.


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



В академической литературе можно найти множество публикаций, в которых методы машинного обучения применялись для решений задач в отношении блокчейн-систем. В своей детальной обзорной статье Liu et al. (2021) разделяют эти задачи на следующие три категории (похожий подход использован также в работе Chen et al. 2020): 
  • Прогнозирование стоимости криптовалют. Это наиболее популярная категория, что объясняется постоянно растущим интересом к криптовалютам. В большинстве опубликованных работ были предприняты попытки предсказать стоимость Bitcoin и Ethereum - либо в абсолютном выражении, либо в виде направления движения цены (вверх / вниз). Для этого применялись самые разные алгоритмы - от простой логистической регрессии до XGBoost и методов глубокого обучения (см., например, Greaves & Au 2015; Abay et al. 2019; Barry & Crane 2019; Chen et al. 2020). В качестве предикторов обычно использовались сочетания системных (например, количество активных адресов, объем транзакций, метрики графов транзакций и др.) и внесистемных показателей (например, объемы торгов на криптовалютных биржах). В целом алгоритмы, основанные на нейронных сетях (особенно сетях с LSTM-архитектурой), оказались наиболее эффективными, хотя даже в их случае точность полученных моделей лишь незначительно отличалась от простого угадывания.
  • Деанонимизация блокчейн-адресов. Личности владельцев блокчейн-адресов обычно неизвестны. Однако на практике очень полезно иметь возможность отнести тот или иной адрес к некоторой заранее заданной категории, а еще лучше - к реальному владельцу адреса. Это особенно важно в случае с адресами, участвующими в незаконных действиях, таких как отмывание денег, распространение наркотиков, вымогательство, организация финансовых пирамид и даже финансирование терроризма. Эту проблему удалось успешно решить в ряде исследований путем создания либо бинарных классификаторов (например, "законная" / "незаконная" транзакция, как в упомянутой выше статье Weber et al. 2019), либо многоклассовых классификаторов (например, адреса с метками "биржа", "пул", "казино" и "служебный" в работе Liang et al. 2019; см. также Harlev et al. 2018, Yin et al. 2019; Michalski et al. 2020). Соответствующие модели были разработаны с использованием системных блокчейн-данных и различных алгоритмов машинного обучения. Интересно, что в отличие от задачи по прогнозированию стоимости криптовалют алгоритмы, основанные на деревьях решений (в частности, метод случайного леса), часто давали более точные модели, чем нейронные сети (Liu et al. 2021).
  • Выявление аномалий. Блокчейн-платформы часто подвергаются разнообразным вредоносным атакам и используются для мошенничества (Moubarak et al. 2018; Rahouti et al. 2018). Подобные действия потенциально можно обнаружить путем анализа паттернов в транзакциях. Поскольку число аномальных транзакций по определению мало, эту задачу решали с использованием либо эмпирически выведенных правил, либо алгоритмов обучения без учителя, таких как кластеризация по методу k-средних, одноклассовый метод опорных векторов, классификация на основе расстояния Махаланобиса и случайный лес с изоляцией (Camino et al. 2017; Pham and Lee 2017a, 2017b). Как отмечают Liu et al. (2021), в этой области требуются дополнительные исследования, поскольку большинство полученных моделей характеризовалось низкой долей выявленных аномалий. В то же время Tann et al. (2019) удалось разработать высокоточный бинарный классификатор на основе нейронной сети с LSTM-архитектурой для выявления уязвимостей в коде умных контрактов.
Многие исследователи предложили и даже экспериментально протестировали блокчейн-платформы со встроенными алгоритмами машинного обучения для решения таких задач, как ведение электронного учета медицинских записей, отслеживание передвижения товаров в логистических цепочках, повышение безопасности в интернете вещей и т.д. (Salah et al. 2018; Chen et al. 2020). В нескольких статьях приводятся также концептуальные описания блокчейн-платформ для коллективного обучения алгоритмов машинного обучения и распространения полученных моделей (см., например, протоколы "DInEMMo" - Marathe et al. 2018, "DanKu" - Kurtumlus & Daniel 2018; "Decentralized and Collaborative AI on Blockchain" - Harris & Waggoner 2019).

Несмотря на многочисленные экспериментальные разработки, практические реализации подобных блокчейн-платформ пока еще очень редки. Это обусловлено рядом причин, связанных как с данными, так и с инфраструктурой платформ (Salah et al. 2018). Например, задача по деанонимизации блокчейн-адресов требует большого количества размеченных обучающих данных. Однако метки высокого качества обычно доступны лишь для небольшой доли адресов, что затрудняет использование методов обучения с учителем (возможные решения этой проблемы обсуждаются в статье Rodriguez 2019).

Ряд алгоритмов машинного обучения можно внедрить в умные контракты блокчейн-систем с использованием широко используемых форматов представления алгоритмов PMML, PFA и ONNX (Wang 2018). Однако внедрение некоторых более сложных алгоритмов (например, нейронных сетей, созданных с помощью TensorFlow и обученных с применением GPU) - все еще нетривиальная задача.

Затруднения могут быть связаны также с низкой пропускной способностью и высокой стоимостью транзакций в некоторых блокчейн-платформах, отсутствием технических стандартов и протоколов совместимости, а также потребностью в надежных поставщиках внесистемных данных ("оракулах", англ. "oraсles"), которые смогли бы сделать умные контракты более полезными (Salah et al. 2018). 

Тем не менее многие компании утверждают, что они уже используют машинное обучение в своих блокчейн-продуктах (например, Algorithmia, AnChain.ai, Bitfury, Fetch.ai, IBM, IntoTheBlock, SingularityNET и др.). Несомненно, вскоре число таких компаний и продуктов возрастет. Помимо прочих факторов, этот рост будет обеспечен более легкими способами доставки внесистемных данных в умные контракты из сервисов-оракулов - компании Chainlink и Provable уже предлагают соответствующие решения.


Заключение: если вы хотите сделать карьеру в блокчейн-аналитике, начните прямо сейчас

Технология блокчейн способна преобразить многие индустрии и бизнес-процессы. Совет Форбс по Технологиям (Forbes Technology Council) недавно сделал обзор 13-ти направлений, где такие изменения произойдут с наибольшей вероятностью, включая управление правами на интеллектуальную собственность, консолидация данных из различных индустрий, децентрализованные финансовые услуги, управление логистическими сетями, управление паролями пользователей, электронные системы учета медицинской информации и т.д. Все эти изменения потребуют целой "армии" специалистов по анализу данных. Круг интересных и нерешенных задач, над которыми предстоит работать этим специалистам, огромен. Более того, многие из этих задач еще только предстоит сформулировать. Поэтому если вы задумываетесь о том, чтобы сделать карьеру в блокчейн-аналитике, стоит начать прямо сейчас. Многие из упомянутых выше компаний уже нанимают таких специалистов - проверьте разделы "Careers" на их вебсайтах!

1 Комментарии

Юрий написал(а)…
Будущее за майнингом по прогрессивному алгоритму консенсуса Community PoS (совместное доказательство доли)
Новые Старые