Front-running

Front-running

Введение

Информация в финансовом мире всегда была наиболее сильной стороной для участников рынка. Если вы обладаете какой-то информацией, это означает, что вы можете получить прибыль. Попробуйте представить себе, что вы можете засечь момент, когда компания Blackrock покупает какой-то актив, и у вас есть примерно 30 секунд, чтобы что-то сделать (например, сбросить цену), разве это не мошенничество? Конечно, да, это называется внутренней информацией, и она запрещена. Но прежде чем погрузиться в эту тему, позвольте мне представить некоторые ключевые моменты.

Mempool

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

Схема:

Front-running

Но транзакции могут ожидать в пуле памяти некоторое время. Время ожидания зависит от разных факторов:

  • Пропускная способность сети ограничена
  • Лимит транзакционного газа
  • Стоимость сделки

Взгляд в будущее

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

Это наблюдение может дать вам информацию о будущем состоянии блокчейна. Это можно сравнить с инсайдерской информацией на обычном рынке.

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

Давайте рассмотрим пример с блокчейном, в частности с децентрализованной биржей. Трейдер может отправить актив x на DeX и получить актив y. Но для этого пара x-y должна существовать, и должна быть достаточная ликвидность.

Front-running

Но если существует открытый пул ликвидности и у вас достаточно активов, то вы можете влиять на цену так, как вам удобно. Если у вас есть внутренняя информация о том, что трейдер A хочет поменять свой актив x на актив y, вы можете манипулировать ценой, предоставляя ликвидность в этом пуле в обратном направлении. Но, конечно, возникает вопрос, как получить эту информацию? Ответ - пул памяти.

Схема очень проста:

Front-running

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

  • Сканирование mempool, пока не появится транзакция, удовлетворяющая нашим требованиям (тип актива, тип DeX, количество актива, лимит газа)
  • Для изменения пропорций ликвидности отправьте нашу сделку с более высоким лимитом газа. Txn с более высоким лимитом газа более привлекательны для валидаторов, поэтому валидаторы сначала хватают нашу транзакцию с более высоким лимитом газа.
  • Затем мы отправляем транзакцию с обычным лимитом газа, чтобы вернуть наши активы обратно, и вуаля, есть сэндвич.
Front-running

Кто находится в опасной зоне?

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

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

Методы предотвращения атак

  • Разделить транзакцию с большой суммой на транзакции с меньшей суммой (недостаток: вы потратите больше бензина)
  • Настройка низкого проскальзывания (недостаток: время выполнения сделки будет выше)
  • Использование скрытых mempools или приватных транзакций (недостаток: для отправки скрытых транзакций необходимо использовать некоторые централизованные сервисы или быть программистом)

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

Заключение

Чтобы полностью исключить этот тип атаки, транзакции должны висеть в mempool меньше, чем сейчас. Я думаю, что это должно быть 1-2 секунды или меньше. Я назвал лучшие практики, позволяющие избежать этого типа атак, но всегда есть некоторые недостатки. По моему искреннему мнению, блокчейн все еще остается для энтузиастов, которые знают, что делают. Здесь очень много ловушек, и чтобы их избежать, нужно постоянно развиваться.

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

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

Глоссарий

DeX - Decentralized exchange - смарт-контракт, позволяющий менять активы.

Txn - транзакция.

Mempool - пул памяти

Contact us:

Телеграм - Дмитрий / Ярослав

Почта - cmo@futuremarkt.com

Наш Behance

Начать дискуссию