March 3

ТЗ на Mev  bot (sandwich) ERC-20

1. Назначение
1.1 Область действия
1.2 Ссылки
1.3 Краткий обзор

2 Общее описание
2.1 Взаимодействие продукта (с другими продуктами и компонентами)
2.2 Функции продукта
2.3 Ограничения
2.4 Допущения и зависимости


3 Математические вычисления (формула вычисления прибыли)
3.1 Интерфейсы пользователя
3.2 Интерфейсы аппаратного обеспечения
3.3 Интерфейсы программного обеспечения
3.4 Интерфейсы взаимодействия
3.5 Требования к производительности
3.6 Нефункциональные требования (надежность, доступность, безопасность и пр.)

1. Назначение

Целью MEV bot является мониторинг транзакций в сети и создание собственных транзакций до или после транзакции пользователя, чтобы манипулировать ценой или другими параметрами транзакции в свою пользу. Метод "sandwich" заключается в создании ботом двух транзакций: первой, которая покупает активы по низкой цене (опережая пользователя путем увеличения газа), и второй, которая продает их по более высокой цене, извлекая прибыль из разницы в цене.

1.1 Область действия

DEX, Uniswap v2, v3 (v4 в перспективе), возможно рассмотреть другие децентрализованные биржи или даркпулы.

1.2 Ссылки

Ссылка на смарт-контракт MEV Bot с Github

Ссылка на фреймворк для создания MEV Bot с Github, написанного на Rust

1.3 Краткий обзор

Обзор на Ютубе

2. Общее описание

  1. MEV bot мониторит транзакции в сети и ищет подходящие возможности для извлечения прибыли.
  2. Когда бот обнаруживает подходящую транзакцию, он создает две собственные транзакции: первую, которая покупает активы по низкой цене, и вторую, которая продает их по более высокой цене.
  3. Первая транзакция выполняется до транзакции пользователя(жертвы), а вторая - после, что позволяет боту извлечь прибыль из разницы в цене.
  4. Таким образом, MEV bot манипулирует порядком транзакций в блоке, чтобы извлечь прибыль за счет пользователей(жертвы) сети.

2.1 Взаимодействие продукта (с другими продуктами и компонентами)

Mev bot должен взаимодействовать с мемпулом и CMS, который через API будет отправлять команды боту.

Если на этапе тестирования создание CMS будет нецелесообразным - можно отказаться от её разработки.

2.2 Функции продукта

  1. Мониторинг транзакций: MEV bot должен отслеживать транзакции в сети и искать подходящие возможности для извлечения прибыли.
  2. Стратегия торговли: MEV bot должен использовать определенную стратегию торговли, такую как sandwich торговля, для извлечения прибыли.
  3. Анализ рынка: MEV bot должен анализировать рыночные данные и тренды, чтобы оптимизировать свою стратегию торговли.
  4. Безопасность: MEV bot должен обеспечивать высокий уровень безопасности, включая защиту от несанкционированного доступа и манипуляций.
  5. Интеграция с системами: MEV bot должен взаимодействовать с криптовалютными биржами или другими децентрализованными финансовыми системами, где он может выполнять операции.
  6. API интерфейс: MEV bot должен предоставлять API интерфейс для взаимодействия с ним программным образом.
  7. Отчетность: MEV bot должен предоставлять отчеты о своей деятельности, включая статистику по транзакциям, прибыли и другим параметрам (на этапе тестирования подойдут логи транзакций).
  8. Масштабируемость: MEV bot должен быть масштабируемым и способным обрабатывать большие объемы транзакций и данных.
  9. Настройка: MEV bot должен предоставлять возможности для настройки параметров и стратегий торговли в соответствии с потребностями.
  10. Сканирование и добавление токенов: MEV Bot должен иметь возможность сканировать токены на DEX и автоматически добавлять их в список отслеживаемых токенов для использования в sandwich атаках. Бот должен учитывать ликвидность токенов, объем торговли и другие факторы, чтобы выбирать наиболее подходящие токены для торговли. Кроме того, бот должен периодически обновлять список отслеживаемых токенов, чтобы учесть изменения на рынке и максимизировать прибыль.

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

2.3 Ограничения

  1. Ограничение на максимальную сумму комиссии: MEV bot должен иметь ограничение на максимальную сумму комиссии, которую он может заплатить за одну сделку, чтобы минимизировать риск потерь.
  2. Ограничение на минимальную прибыль: MEV bot должен иметь ограничение на минимальную прибыль, которую он должен получить от каждой сделки, чтобы избежать излишнего риска.
  3. Ограничение на типы токенов: MEV bot должен иметь ограничение на типы токенов, которые он может использовать в своих сделках, чтобы избежать риска, связанного с низкой ликвидностью или другими факторами.

2.4 Допущения и зависимости

Допускается зависимость от любых API если они не замедляют скорость транзакций и способствуют работоспособности MEV bot.

3 Математические вычисления (формула вычисления прибыли)

Коэффициент ценообразования

A*B = k

Где А (количество токена) умноженного на B (количество эфира)

Стоимость монеты от пула ликвидности

B/A * (actual price of B in usdt e.x ETH, SOL...)

Где B (текущая стоимость эфира) деленая на A (текущая стоимость токена) и умноженная на текущую стоимость эфира.

Калькуляция ликвидности после покупки

A2 = (K / Bn)

Актуальная стоимость токена после покупки мистера Х

(Pn = Bn / An) * (actual price of B in usdt e.x ETH, SOL...)

Формула атаки

((Gas price in gwei + 0.01)*gas used ) / 1 000 000 000 = trans_fee_front

Даём комиссию на 0.001 больше чем мистер Х и покупаем вперед

((Gas price in gwei - 0.01)*gas used ) / 1 000 000 000 = trans_fee_sell

Даем комиссию меньше чем мистер Х, и продаем сразу после его транзакции

Условия выбора токенов для совершения атаки

Ликвидность > 10000$

Объем в день > 500$

Количество покупок и продаж за 24ч = sum > 10, где sell min 10% (sum)

Время жизни пары > 5 days

В блоке должно быть только 2 наших транзакции и 1 транзакция Мистера X

Цена на основе пула ликвидности (B/A)*price(b) in usdt

Величина транзакции относительно ликвидности:

1% если ликвидность <= 300.000

0.70 если ликвидность <= 1.000.000

0.50 если ликвидность > 1.000.000

Симуляция. Если от пула 1.9кк, купить на 20к фронтом и продать. Получается без комиссий 796 долларов, при условии, что мистер икс купил после нас тоже на 20к. Погрешность до 0.3% видимо за счет комиссий унику и поставщикам ликвидности. Погрешность константы тоже существует при изменении пула ликвидности 0.0001%. можно пренебречь.

Алгоритм атаки

1. Находим потенциальную транзакцию исходя из условий
2. A1*B1 = k
3. A2= k/(B2), (B2= B1+BUY1), где B1 покупка наша фронт
4. Pold = известно
5. P1 = B2/A2
6. deltaP1,2 = Pold / P1
7. A3=k/(B3) (B3=B2+BUY2), где B2 покупка Мистера Х
8. P2 = B3/A2
9. DeltaP2,3 = P1/P2
10. Продажа
11. B3=(k/A3) (A3=A2+SELL1), где A3 пулл монет после нашей продажи
12. B3-B2=С с – количество USD/ETH после продажи
13. bruttoProfit=C-B1
14. bruttoProfit-(fee1+fee2)= nettoprofit
15. nettoprofit > 0 success
16. nettoprofit < 0 fail and repeat from step 1

3.1 Интерфейсы пользователя

Интерфейс пользователя для MEV bot может совмещать в себе CMS и dashboard с отчётностью по эффективности MEV bot. (На этапе тестирования не требуется)

3.2. Интерфейсы аппаратного обеспечения

На усмотрение разработчика.

3.3 Интерфейсы программного обеспечения

На усмотрение разработчика.

3.4 Интерфейсы взаимодействия

На усмотрение разработчика.

3.5 Требования к производительности

  1. Скорость обработки транзакций: MEV Bot должен быть способен быстро обрабатывать большое количество транзакций, чтобы вовремя реагировать на изменения рынка и выполнять торговые операции в реальном времени.
  2. Время отклика: MEV Bot должен иметь минимальное время отклика на изменения рынка, чтобы эффективно использовать sandwich атаки и максимизировать прибыль.
  3. Масштабируемость: MEV Bot должен быть масштабируемым, чтобы обеспечивать эффективную работу при увеличении объема транзакций и данных.
  4. Надежность: MEV Bot должен быть надежным и обеспечивать стабильную работу без сбоев и ошибок, которые могут привести к потере прибыли или другим негативным последствиям.
  5. Эффективность использования ресурсов: MEV Bot должен эффективно использовать ресурсы системы, такие как память, процессорное время и пропускную способность сети, для обеспечения максимальной производительности.
  6. Адаптивность: MEV Bot должен быть адаптивным и способным изменять свою стратегию в зависимости от изменений рынка и других факторов, чтобы максимизировать прибыль и минимизировать риски.
  7. Тестирование производительности: MEV Bot должен проходить тестирование производительности, чтобы оценить его эффективность и выявить возможные проблемы перед его эксплуатацией.

3.6 Нефункциональные требования

На усмотрение разработчика