Атака на оракул: чому обмінник може успадкувати чужий збій курсу

iEXExchanger
Атака на оракул: чому обмінник може успадкувати чужий збій курсу

Маніпуляція оракулом — рідкісна, але дорога атака: зловмисник на секунди спотворює ціну через флеш-кредит, а платить за це обмінник із незахищеним джерелом курсу. Розповідаємо, як це працює і як обрати надійний агрегатор.

Маніпуляція оракулом — це коли зловмисник на кілька секунд підсовує блокчейну спотворену ціну активу, не зламуючи біржу і не крадучи ключі. Для обмінника, який бере курс із вразливого джерела, це означає, що клієнт може купити монети за ціною, якої насправді ніколи не існувало.

Що таке оракул і чому на ньому тримається курс обмінника

Блокчейн сам по собі не знає, скільки коштує біткоїн просто зараз — він бачить лише те, що записано у власних блоках. Оракул — це зовнішнє джерело, яке щокілька секунд приносить контракту ціну з бірж і повідомляє: «зараз стільки-то». Обмінник, що автоматизує курси через BestChange чи подібний сервіс, робить те саме — тягне цифру ззовні і показує її клієнту. Якщо джерело принесло неправильне число, ні блокчейн, ні ваш скрипт цього не помітять.

Як проходить атака на оракул на практиці

Класична схема за один блок

Атакувальник бере флеш-кредит — позику на величезну суму, яка існує рівно в межах однієї транзакції і має бути повернена в ній же, інакше вся операція відкотиться. На ці гроші він різко зсуває ціну в тонкому пулі ліквідності, скуповуючи майже весь обсяг однієї пари на невеликій децентралізованій біржі. Оракул, що бере котирування саме з цього пулу, на частку секунди показує спотворену ціну — в рази вищу або нижчу за реальну. Атакувальник встигає провести операцію за цією ціною і повернути кредит — усе в одній транзакції.

Що в цю мить бачить обмінник

Якщо ваше джерело курсу підключене напряму до такого пулу або до оракула без захисту від різких стрибків, на екрані клієнта на пару секунд може майнути аномальний курс. Клієнт-бот, який пильно стежить за котируваннями, здатен упіймати цю мить і обміняти велику суму за ціною, якої не було ні до, ні після атаки. Різниця ляже на обмінник.

Чому це стосується і обмінника, а не лише DeFi-протоколу

Здається, що маніпуляція оракулом — проблема кредитних протоколів і DEX, а обмінник просто показує ціну і не ризикує ліквідністю в пулі. Але ризик не зникає, він зміщується: обмінник бере на себе ціновий ризик у проміжку між показом курсу клієнту і фактичним закриттям угоди. Що брудніше і швидше джерело даних, то ширше вікно для того, щоб упіймати вас на застарілій цифрі.

Як обрати джерело курсу, стійке до маніпуляцій

  • Дивіться на глибину ліквідності джерела — котирування з тонкого пулу DEX маніпулювати значно дешевше, ніж ціну, усереднену по десятку великих бірж.
  • Обирайте агрегатори з медіанною або середньозваженою ціною по кількох майданчиках, а не котирування з однієї пари.
  • Перевіряйте захист за часом — TWAP, тобто ціну, усереднену за кілька хвилин, а не миттєвий знімок.
  • Встановлюйте ліміт на відхилення: якщо новий курс відрізняється від попереднього більш ніж на розумний відсоток за секунди, скрипт має призупинити угоду.
  • Тримайте ручний або напівавтоматичний стоп — можливість на кілька хвилин заморозити обмін по конкретній парі.

Часті помилки при підключенні агрегаторів курсів

Найчастіша помилка — тягнути курс з єдиного джерела, бо так простіше налаштувати автоматизацію. Друга — довіряти API без перевірки на різкі стрибки. Третя, менш очевидна — забувати, що екзотичні пари з низькою ліквідністю маніпулювати найдешевше, і саме на них варто тримати найжорсткіші ліміти, а не найм'якіші.

Висновок

Атака на оракул — не абстрактна загроза зі світу DeFi, а конкретний ризик для будь-кого, хто автоматизує курс через зовнішнє джерело. Повністю виключити його не можна, але можна різко звузити вікно вразливості: кілька джерел, усереднення за часом, ліміти на стрибки і ручний стоп-кран. Налаштувати курси обмінника через перевірену автоматизацію із захистом від аномальних стрибків можна на платформі iEXExchanger.

Запитання та відповіді

Часті питання на тему статті

Що таке маніпуляція оракулом простими словами?

Це коли зловмисник на кілька секунд спотворює ціну активу, яку бачить блокчейн чи скрипт, зазвичай за допомогою флеш-кредиту. Джерело даних у цей момент повідомляє неправильну цифру, і будь-хто, хто автоматично довіряє їй, ризикує провести угоду за фантомним курсом.

Як флеш-кредит допомагає спотворити курс?

Флеш-кредит дає величезну суму в межах однієї транзакції без застави за умови, що вона буде повернена в цій самій транзакції. На ці гроші атакувальник різко зсуває ціну в тонкому пулі ліквідності, а оракул, що читає котирування саме з цього пулу, на частку секунди показує спотворене значення.

Чи може атака на оракул торкнутися звичайного обмінника, а не лише DeFi-протоколу?

Так, якщо обмінник бере курс напряму з вразливого джерела — наприклад, з тонкого пулу чи оракула без захисту від стрибків. У момент атаки клієнт здатен обміняти велику суму за ціною, якої не існувало ні до, ні після, а різницю покриє сам обмінник.

Як захиститися від маніпуляції курсом при автоматизації обмінника?

Використовуйте кілька незалежних джерел курсу, надавайте перевагу усередненій за часом ціні (TWAP), встановлюйте ліміт на різке відхилення і тримайте ручний стоп для призупинення обміну по підозрілій парі на пару хвилин.