Фронтранінг — баг чи фіча?
Фронтранінг — це ситуація, за якої учасник ринку використовує ранній доступ до інформації про торгові ордери на свою користь.
У традиційних фінансах фронтранером найчастіше є брокер. Знаючи про розміщення великої заявки клієнта, він робить власну, отримуючи вигоду від очікуваного руху ціни.
У контексті блокчейну фронтранінг трактується інакше. Якщо в традиційних фінансах він залежить від брокера, то у блокчейні ця лазівка закладена у принципі роботи мережі.
У будь-якій децентралізованій мережі є загальнодоступне місце очікування транзакцій (мемпул). Валідатори можуть змінювати порядок, включати та виключати звідти транзакції, віддаючи перевагу більш вигідним для них діям. Так, це неправильно, так — неетично, але не заборонено.
Пригнічення. Фронтранер додає до мемпулу багато великих ордерів, посуваючи обробку транзакції користувача вниз за пріоритетністю. Він готовий оплачувати велику комісію, тому серед інших заявок валідатори обирають його. Зрештою жертва або взагалі не купує актив, або купує його за завищеною ціною.
Зазвичай такий тип атаки використовується під час первинного розміщення токенів (ICO) або купівлі активів зі штучним попитом. Фронтранер створює видимість популярності токена, а потім продає його новим зацікавленим користувачам.
Пригнічення також може бути використане з користю, наприклад, для запобігання шахрайським транзакціям. Теоретично, якщо користувач помітить викрадення коштів, він може додати більш пріоритетні транзакції в мемпул, щоб заблокувати шахрайські. За цей час валідатори можуть виявити незаконну операцію та відмовитися від її виконання.
Сендвіч-атака. Фронтранер поміщає транзакцію користувача у так званий сендвіч, де вона перебуває між двома ордерами. Перший надає підвищену винагороду майнерам, другий — зменшену.
Валідатори обробляють заявку фронтранера, дозволяючи йому купити актив до того, як великий обсяг вплине на вартість. Потім вони виконують транзакцію користувача і ціна токена збільшується. Тоді ранеру залишається продати актив і отримати прибуток.
Крім цього, будь-які оновлення у смартконтрактах, протоколах та в роботі блокчейну також можуть бути тригерами фронтранінгу. Наприклад, перехід на інший алгоритм консенсусу, створення хардфорку тощо.
Крім цього, розробники можуть створити спеціальні смартконтракти, мета яких — запобігти фронтранінгу. Вони потенційно можуть накласти штрафи чи скасувати виконання такої угоди.
У контексті блокчейну фронтранінг трактується інакше. Якщо в традиційних фінансах він залежить від брокера, то у блокчейні ця лазівка закладена у принципі роботи мережі.
У будь-якій децентралізованій мережі є загальнодоступне місце очікування транзакцій (мемпул). Валідатори можуть змінювати порядок, включати та виключати звідти транзакції, віддаючи перевагу більш вигідним для них діям. Так, це неправильно, так — неетично, але не заборонено.
Роль мемпулу в роботі блокчейну. Джерело: cryptor.net
Наприклад, якщо майнер (валідатор у Proof-of-Work блокчейні) помічає великий ордер на купівлю, він може виконати власну заявку і лише потім розпочати обробку транзакції користувача. Ідея полягає у купівлі активу до того, як великий об'єм вплине на його вартість.
Способи фронтранінгових атак
Зміщення. За цього типу атаки зловмисник оплачує вищу комісію, щоб пріоритезувати виконання своєї транзакції.
Пригнічення. Фронтранер додає до мемпулу багато великих ордерів, посуваючи обробку транзакції користувача вниз за пріоритетністю. Він готовий оплачувати велику комісію, тому серед інших заявок валідатори обирають його. Зрештою жертва або взагалі не купує актив, або купує його за завищеною ціною.
Зазвичай такий тип атаки використовується під час первинного розміщення токенів (ICO) або купівлі активів зі штучним попитом. Фронтранер створює видимість популярності токена, а потім продає його новим зацікавленим користувачам.
Пригнічення також може бути використане з користю, наприклад, для запобігання шахрайським транзакціям. Теоретично, якщо користувач помітить викрадення коштів, він може додати більш пріоритетні транзакції в мемпул, щоб заблокувати шахрайські. За цей час валідатори можуть виявити незаконну операцію та відмовитися від її виконання.
Сендвіч-атака. Фронтранер поміщає транзакцію користувача у так званий сендвіч, де вона перебуває між двома ордерами. Перший надає підвищену винагороду майнерам, другий — зменшену.
Валідатори обробляють заявку фронтранера, дозволяючи йому купити актив до того, як великий обсяг вплине на вартість. Потім вони виконують транзакцію користувача і ціна токена збільшується. Тоді ранеру залишається продати актив і отримати прибуток.
Сендвіч-атака у блокчейні. Джерело: securing.pl
Припустимо, що Алекс хоче купити 1000 ETH за ринковою ціною $2200. Фронтранер виявляє цю угоду і, виставляючи більш пріоритетну транзакцію, купує ETH за ціною $2200. Далі Алекс завершує операцію у повному обсязі, підвищуючи вартість ETH до $2250. Скориставшись цим зростанням, фронтранер продає свої активи та заробляє $50 з кожного купленого ETH.
Фактори, що стимулюють фронтранінг
Мета фронтранінгу — отримання прибутку завдяки будь-якій важливій інформації, що впливає на ціну. Це може бути як великий ордер у стакані заявок на біржі, так і транзакція у блокчейні.
Факторами, які стимулюють фронтранінг, є:
- Великі ордери. Великі угоди можуть зумовити значний рух ринку. Фронтранери звертають на це увагу для отримання фінансової вигоди.
- Зміна обсягу в пулі ліквідності. Коли ліквідність додається або видаляється з пулу, це може спричинити зміну ринкової ціни активу.
- Лістинг нових токенів. Поява токена біржі викликає інтерес серед учасників ринку. Кожен із них прагне якнайшвидше купити актив, і саме тут з'являються фронтранери.
Крім цього, будь-які оновлення у смартконтрактах, протоколах та в роботі блокчейну також можуть бути тригерами фронтранінгу. Наприклад, перехід на інший алгоритм консенсусу, створення хардфорку тощо.
Як запобігти фронтранінгу?
Захист від фронтранінгу потребує конкретних заходів як з боку платформ, на яких виконуються транзакції, так і з боку користувачів. Найкращий спосіб для останніх — розподіл угоди на декілька частин. Це зменшує ризик виявлення такого користувача фронтранером.
Розглянемо найпопулярніші заходи для платформ:
- Rollups. Якщо об'єднати декілька транзакцій та обробити їх спільно, фронтранеру буде складніше випередити їх виконання та зрозуміти їхній вплив на вартість активу.
- Докази з нульовим розголошенням (ZKP). Технологія дозволяє одній стороні довести виконання транзакції без розкриття деталей (у контексті фронтранінгу — це обсяг угоди). Для запобігання фронтранінгу можливо задіяти обидві форми ZKP: як zk-STARK, так і zk-SNARK.
- Випадковий порядок транзакцій. Випадкове розташування транзакцій всередині блоку може ускладнити прогнозування їхнього розміщення. Хоча це і зменшує ймовірність фронтранінгу, але також може зменшити винагороду для валідаторів.
Крім цього, розробники можуть створити спеціальні смартконтракти, мета яких — запобігти фронтранінгу. Вони потенційно можуть накласти штрафи чи скасувати виконання такої угоди.
Висновок
Досі не існує ефективного способу запобігання фронтранінгу. Запропоновані вище варіанти є або складними у реалізації, або ускладнюють роботу мережі. Чи зможуть блокчейн-ентузіасти знайти рішення найближчим часом? Невідомо.