Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Всем привет, на связи команда 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). Именно в этот момент сеть стала намного энергоэффективнее, а на вторичный рынок выплеснулась волна полуубитых видеокарт. Теперь у майнеров исчезла необходимость использовать такие же объемы, которые были раньше. Да и майнеров, как таковых, уже не стало.
Если упростить, то теперь в блокчейне появилась новая роль — валидатор, основа всей системы блокчейна. К валидаторам поступают блоки, состоящие из транзакций, и они обеспечивают их корректность, после чего голосуют за внесение этого блока в блокчейн (а значит и за исполнение транзакций, в нем содержащихся).
И тут в дело вступает цензура со стороны государственных регуляторов. Казалось бы, откуда в децентрализованной и негосударственной структуре, коей является блокчейн, взяться цензуре со стороны какого-либо государства. Оказывается, цензура вполне реальна. В нашем проекте мы рассматривали цензуру со стороны 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, где проекты были вынесены на голосование, и… барабанная дробь… МЫ ПОБЕДИЛИ.
Нашему счастью не было предела! Однако в глубине души мы понимали, что это только начало, и проект слишком сырой, чтобы существовать без нашего участия. Это понимали и в Lido, поэтому сразу же нам было сделано предложение долгосрочного сотрудничества — мы согласились продолжить работу над сервисом.
В ближайшие полгода мы собираемся:
Сделать мониторинг для нашего приложения, чтобы можно было отслеживать ключевые метрики его работы
Сделать наше приложение стабильным и достигнуть uptime в 96%
Добавить сравнение с пулами-конкурентами
Улучшить графики с метриками, добавив интерактивность, например, возможность выделять только требуемые участки времени и оценивать метрики на них
Сделать реверсивный анализ и подсчет метрик до момента The Merge (на данный момент у нас есть данные только с начала февраля 2023 года)
Предоставить API для выгрузки открытого датасета
Недавно к нашей команде присоединился четвертый участник, обладающий невероятным уровнем экспертности в области MEV данных. Мы уже начали думать, каким следующим проектом мы займемся вместе.
Если вы хотите присоединиться к нашему проекту и помочь идеями, или хотите стать нашим партнером и поддержать проект, чтобы проработать будущий функционал для реализации, то пишите нам в Телеграм @petrovitch_sharp
Или если вы хотите делать такие же крутые проекты, то поступайте в магистратуру AI Talent Hub ai.itmo.ru
Ссылка на сайт нашего проекта: https://eth.neutralitywatch.com/
Ссылка на репозиторий: https://github.com/mikgur/Ethereum-censorability-monitor