В начале августа один из наших специалистов по обработке данных принял участие в соревновании по машинному обучению, чтобы определить извлечение MEV. Соревнование проводилось компанией MEVAlphaLeak, целью которой было:

«Создайте модель для прогнозирования транзакций [MEV] и их стоимости».

По истечении крайнего срока подачи конкурсный комитет повторно продублировал модели на будущих данных, при этом следя за переобучением.

И вот, мы заняли 3-е место!

Публичные результаты не фильтруются с помощью этих элементов управления, поэтому в ранних таблицах лидеров мы были на 10-м месте. Это означает, что 7 работ с более высокими оценками были на самом деле переобучены, но не мы!

Еще один случай, когда слова «лучше всего подходили в прошлом» и «негибки в будущем».

Конкурс оценили

  • AUC (площадь под кривой). AUC - это способ показать, насколько эффективна модель при классификации чего-либо. В этом случае это означает прогнозирование транзакций, которые могут выполняться в обратном порядке, то есть любого txn, который создает несправедливую возможность после выполнения.
  • Потеря журнала. Этот показатель отражает степень, в которой прогнозируемые вероятности расходятся с ярлыками классов. Таким образом, это абсолютный показатель качества, который стимулирует создание хорошо откалиброванных вероятностных заявлений.
  • И MSE, который указывает, насколько прогноз модели был близок к фактическим значениям.

Что такое MEV?

От Coindesk:

Для« майнинговых сетей быстро становится доступной новая выручка. Майнеры, получившие название извлеченная ценность (MEV), могут использовать свое место в качестве арбитров в том, как блоки упаковываются для предварительных прибыльных сделок. MEV в настоящее время популярен среди трейдеров децентрализованного финансирования (DeFi), которые повышают цены на газ, чтобы обеспечить себе место в блоке. Многие майнинговые пулы Ethereum в настоящее время внедряют программное обеспечение MEV, чтобы собрать этот неиспользованный источник дохода ».

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

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

Дьявол (MEV) кроется в деталях (данных)

Каждая строка набора обучающих данных содержит следующие столбцы:

  • txHash Хеш транзакции
  • txData Вся основная информация о вводе и выводе транзакций.
  • txTrace внутренние вызовы выполненной транзакции.
  • Label0 Отметьте, можно ли выполнить эту транзакцию в обратном порядке.
  • Label1 Количество ETH, отправленное майнерам в качестве взятки через MEV-пакеты в связи с этой транзакцией.

Label0 и Label1 - целевые переменные, txHash - это идентификатор, а txData и txTrace имеют фактические данные транзакции.

После преобразования txTrace и txData в более читаемый формат нам нужно извлечь из них функции. После проверки показателей ковариации мы решили использовать:

from »,« to »,« gas »,« gasPrice »,« input »,« nonce »,« blockNumber »,

«Значение», «расход газа», «выход»

Выборочная корреляция между некоторыми переменными

Сначала мы очистили данные

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

Затем мы построили нашу модель

Мы посмотрели на соотношение классов в Label0. Почти 83% имеют пометку Ложь.

Затем изучили частоту классов в Label0, в которых значение газа не отсутствует или не имеет значения NAN. Теперь Label0 на 90% помечается как False.

Это оказалось весьма полезным, особенно в алгоритме на основе дерева решений.

При внимательном рассмотрении txTrace мы видим, что он раскрывает глубину транзакции. Так что длина трассировки - это хорошая характеристика.

Мы также сделали функции для

  • количество вызовов делегатов в трассировке,
  • количество статических вызовов в трассировке, и
  • количество битов в одноразовом номере

Функции, производные от Credmark: «call_lens», «делегировать», «статика», «nonce_bits».

Какова была наша стратегия?

Сейчас мы подготовили несколько моделей.

Мы экспериментировали с тремя типами моделей: искусственные нейронные сети, опорные векторные машины и древовидные алгоритмы. ANN и SVM показали низкую производительность при сопоставлении с нашим древовидным алгоритмом, который имеет превосходную категоризацию, поэтому мы продолжили эту стратегию.

Продолжая использовать наш древовидный алгоритм, мы классифицируем транзакции. Здесь мы предпочитаем фреймворк LightBGM, потому что он работает лучше, чем xgboost, и может обрабатывать большие наборы данных.

Значения в полях данных значительно больше, чем 64-битные целые числа, что является предпочтительным методом преобразования данных по модулю в 64-битные. Мы обнаружили 200 коллизий (искажение данных) при использовании этого метода. Это оказалось приемлемой неточностью и очень небольшой потерей информации по сравнению с общей длиной данных (82 КБ).

Используя эти базовые стратегии, мы получили AUC (площадь под кривой) 97,8. Это уже выше базовой модели, но мы могли бы сделать лучше.

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

После кодирования данных с помощью значения частоты наш AUC улучшился до 98,4.

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

  • Мы увеличили коэффициент регуляризации и использовали регуляризацию l1.
  • Мы уменьшили детализацию и глубину.

После этого мы получили AUC 98,58.

Теперь мы использовали наше старое наложение, чтобы создать взвешенный ансамбль из 5 обученных моделей:

  • LightGBM,
  • Логистическая регрессия,
  • Случайный лес,
  • K-Ближайшие соседи и
  • AdaBoost.

Наш окончательный AUC составил 98,79 по нашему набору данных проверки. Мы заняли 3-е место в таблице лидеров.

Что это значит для продвижения Credmark?

Однако основная причина заключалась в том, что мы хотели проверить, сможем ли мы подтвердить одно из наших основных предположений:

Если мы сможем абстрагироваться от ухищрений данных блокчейна, сможем ли мы включить в состав гораздо более крупное сообщество данных?

Наш инженер по обработке данных никогда не слышал о MEV, но смог занять 3-е место из 50. Насколько нам известно, это подтверждает наше предположение.

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

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

Https://discord.gg/smtnSHZq

Вот код нашего решения:

Https://github.com/credmark/research-resources/tree/main/MEV-Competition

Исследовательская группа под названием Flashbots произвела массу исследований и инструментов по теме MEV.