Всем привет, на связи команда Neutrality Watch — Михаил Гуревич, Евгений Безмен и Петр Корчагин. Мы магистранты онлайн-магистратуры по ИИ AI Talent Hub — образовательного проекта, созданного ИТМО и Napoleon IT. Недавно мы выиграли грант от крупнейшего сервиса стейкинга криптовалют в экосистеме Ethereum с долей рынка около 30% — Lido Finance. Что нас объединило, какие события предшествовали участию в грантовом конкурсе и как мы нашли новое применение искусственного интеллекта в мире блокчейна, читайте в данной статье.  

Могучие рейнджеры — объединяемся

Источник

Знакомство нашей команды произошло в рамках ITMO.Bootcamp и хакатона Data Product Hack, которые организовала крупнейшая онлайн-магистратура по искусственному интеллекту в России — AI Talent Hub. Несмотря на то, что изначально мы попали в разные команды, именно тогда между нами проскочила некая «искра», пламя которой мы нынче активно раздуваем. 

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

Поиск проекта был недолгим. Уже спустя 3 месяца учебы, в декабре, нам выпал шанс вновь поработать в команде. В этот момент Lido Finance объявили RFP-запрос на создание системы, которая могла бы мониторить цензуру в блокчейне Ethereum и предоставлять возможность Lido оценивать вклад собственных валидаторов в этот процесс. 

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

Пост, с которого все началось

Автостопом по блокчейну

Источник 

В сентябре 2022 года произошло знаковое событие в мире блокчейна — The Merge. Сеть Ethereum перешла с proof-of-work (PoW) на proof-of-stake (PoS). Именно в этот момент сеть стала намного энергоэффективнее, а на вторичный рынок выплеснулась волна полуубитых видеокарт. Теперь у майнеров исчезла необходимость использовать такие же объемы, которые были раньше. Да и майнеров, как таковых, уже не стало.

Различия PoW и PoS

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

И тут в дело вступает цензура со стороны государственных регуляторов. Казалось бы, откуда в децентрализованной и негосударственной структуре, коей является блокчейн, взяться цензуре со стороны какого-либо государства. Оказывается, цензура вполне реальна. В нашем проекте мы рассматривали цензуру со стороны OFAC — Управления по контролю за иностранными активами США. 

Источник

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

Когда провалидировал транзакцию из списка OFAC Источник
Когда провалидировал транзакцию из списка OFAC Источник

Как результат, не все валидаторы охотно включают в блоки транзакции, за которые к ним могут нагрянуть силовые структуры.

Рубрика «Ээээээксперименты»

Источник

Итак, разобравшись с предысторией и описав проблему поверхностно, окунемся в проект с головой. В декабре мы подняли свою ноду Ethereum и начали потихоньку собирать данные для анализа. У нас была гипотеза, что задачу можно решить статистически, посмотрев на такие параметры транзакций, как количество priority fee — награды, которую получают валидаторы за включение транзакций в блоки.

Распределение транзакций в зависимости от задержки и размера награды
Распределение транзакций в зависимости от задержки и размера награды

Но оказалось, что не все так просто, как кажется. Мы обнаружили существование транзакций, которые, как и цензурируемые, имеют высокую задержку перед попаданием в блок, но не затрагивают адреса из списка OFAC. В дело вступила банальная невнимательность людей: какие-то транзакции не могли быть исполнены из-за невалидного кода внутри них, какие-то были отправлены без наличия достаточного количества криптовалюты для проведения транзакции, какие-то были неверно пронумерованы и зависали в блокчейне до появления транзакций с валидным номером, а какие-то были «нормальными», но тормозились предыдущими транзакциями. Это привело нас к необходимости собирать дополнительную информацию о транзакциях, чтобы отследить подобные случаи человеческой неосторожности.

И тут на помощь пришло оно. Великое и могучее машинное обучение в лице CatBoost. Мы проверили следующую гипотезу — сможем ли мы обучить классификатор на нецензурируемых транзакциях так, чтобы он научился предсказывать, попадет ли транзакция в следующий блок или нет, а потом передать классификатору цензурируемые транзакции и получить расхождение в метриках. Удивительно, но это сработало. Классификатор обучился так, что на нецензурируемых транзакциях он выдавал recall примерно 0.95, в то время как добавление цензурируемых транзакций в валидационную выборку снижало recall почти в 2 раза. Мы наконец-то получили критерий цензуры, которого нам не хватало для дальнейшей работы.

Пилите, Шура, пилите

Источник

Обретя возможность различать (в некотором приближении) подвергнутые цензуре транзакции из списка OFAC от не подвергнутых, мы приступили к разработке сервиса и созданию метрик. Шел конец января, а нам нужно было придумать метрики, которые могли бы быть использованы как сигналы о том, что в блокчейне что-то не в порядке и цензура набирает обороты.

Мы придумали следующие метрики:

Метрика

Описание

Average Censorship Latency

Разница между средней задержкой попадания в блокчейн между транзакциями, затрагивающими адреса из списка OFAC, и транзакциями, их не затрагивающими

Average Censorship Latency for censored transactions

Разница между средней задержкой попадания в блокчейн между транзакциями, затрагивающими адреса из списка OFAC, и транзакциями, их не затрагивающими, обусловленная непосредственно цензурой (т.е. в расчет брались только транзакции, которые, по мнению нашего классификатора, были зацензурированы хотя бы один раз)

Non-OFAC and OFAC Compliance Ratio 

Два числа, показывающие отношение числа Non-OFAC / OFAC compliant транзакций (т.е. затрагивающие / не затрагивающие адреса из спика), которые свалидировал определенный валидатор Lido, к общему числу таких транзакций, свалидированных во всей сети Ethereum за определенный срок

Censorship Resistance Index

Отношение Non-OFAC Compliance Ratio  к OFAC Compliance Ratio, показывающее баланс между долями валидации для каждого валидатора Lido

Lido/Non-Lido Censorship Resistance Index

Отношение Non-OFAC Compliance Ratio  к OFAC Compliance Ratio в целом по Lido и по остальным пулам

Мы решили, что для визуализации этих метрик нам отлично подойдет React, в то время как их подсчет можно производить на python и отдавать через FastAPI.

В течение всего февраля мы огромными темпами пилили наше детище. И вот, к началу марта, мы, наконец, довели наш проект до MVP, отправили решение ребятам из Lido и ждали результатов. Ждать пришлось целый месяц: вместе с нашим решением было прислано еще три, и Lido никак не могли решить, какое из них лучше подходит для их целей. В итоге мы выступили на community call, где проекты были вынесены на голосование, и… барабанная дробь… МЫ ПОБЕДИЛИ. 

Пост с заветными результатами RFP Источник 
Пост с заветными результатами RFP Источник 

Нашему счастью не было предела! Однако в глубине души мы понимали, что это только начало, и проект слишком сырой, чтобы существовать без нашего участия. Это понимали и в Lido, поэтому сразу же нам было сделано предложение долгосрочного сотрудничества — мы согласились продолжить работу над сервисом.

В ближайшие полгода мы собираемся:

  • Сделать мониторинг для нашего приложения, чтобы можно было отслеживать ключевые метрики его работы

  • Сделать наше приложение стабильным и достигнуть uptime в 96%

  • Добавить сравнение с пулами-конкурентами

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

  • Сделать реверсивный анализ и подсчет метрик до момента The Merge (на данный момент у нас есть данные только с начала февраля 2023 года)

  • Предоставить API для выгрузки открытого датасета

Недавно к нашей команде присоединился четвертый участник, обладающий невероятным уровнем экспертности в области MEV данных. Мы уже начали думать, каким следующим проектом мы займемся вместе.

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

Или если вы хотите делать такие же крутые проекты, то поступайте в магистратуру AI Talent Hub ai.itmo.ru

Ссылка на сайт нашего проекта

Ссылка на репозиторий 

Комментарии (2)


  1. smeyanoff
    18.05.2023 09:17

    Молодцы! Очень круто!!


  1. NapoleonIT
    18.05.2023 09:17

    Супер, поздравляем!