Що сталося
22 червня 2024 року Maya Protocol, платформа, що надає пул ліквідності для токена CACAO, стала жертвою атаки, в результаті якої зловмисник вивів близько 1,7 млн USD. Хакер використав вразливість у механізмі субсидій, змусивши контракт «сплатити» неіснуючу нагороду, а потім багаторазово додавав і видаляв ліквідність, отримуючи доступ до коштів провайдерів пулу. За оцінками аудиторської компанії CertiK, прямий фінансовий збиток склав $1 730 000, а непрямі втрати торкнулися всіх власників CACAO та LP‑токенів.
Чому це важливо для крипто-ринку
Експлойт розкриває фундаментальну вразливість у моделі стимулювання DeFi‑протоколів, де автоматичні субсидії часто реалізуються без надійного контролю доступу. Втрата такого значного обсягу коштів підриває довіру інвесторів до нових проєктів, особливо тих, хто пропонує «безпроцентні» доходи від фармінгу. Для трейдерів це сигнал до підвищеної обережності при роботі з маловідомими пулами: зростання волатильності CACAO після інциденту призвело до різкого падіння ціни більш ніж на 30 % за добу, а обсяг торгів впав на 45 %. Для розробників та аудиторів подія стала нагадуванням про необхідність інтеграції MEV‑захисту та більш суворих перевірок оркестрації субсидій. Інвестори, орієнтовані на довгостроковий TVL, можуть переглянути портфелі, перерозподіляючи капітал у більш перевірені протоколи, що в короткостроковій перспективі зменшить загальний обсяг ліквідності в екосистемі.
Технічний розбір інфоприводу
Атака складалася з чотирьох послідовних кроків:
- Маніпуляція субсидією. Протокол використовував функцію
grantSubsidy(address recipient, uint256 amount), яка перевіряла лише підпис власника контракту, але не перевіряла наявність коштів на балансі. Хакер створив підроблений запит, вказавши адресу «нульового» токена, що призвело до «видачі» субсидії у розмірі 0 ETH, але з подальшою зміною стану. - Експлуатація re‑entrancy. Після підтвердження субсидії атакуючий викликав функцію
addLiquidity(), яка всередині викликала зовнішню бібліотеку розрахунку ціни. Відсутність «checks‑effects‑interactions» дозволила повторно викликатиaddLiquidityдо завершення першої транзакції, тим самим збільшуючи свою участь у пулі без коректного оновлення балансу. - Flash‑loan‑поглинання. Використовуючи Uniswap V3 як джерело миттєвого кредиту, зловмисник позичив $500 k, що дало йому змогу покрити необхідний мінімум для додавання ліквідності та одночасно викликати ціновий зсув, який посилив прибуток від подальшого виведення.
- Серія removeLiquidity‑операцій. Після того, як пул був «заповнений» підставними токенами, атакуючий кілька разів викликав
removeLiquidity(), отримуючи реальну частку активів, у тому числі CACAO та WETH, які потім переводив на приховану адресу.
Ключова вада – відсутність мультисиг‑перевірки для функцій, що змінюють параметри субсидій, а також відсутність обмежень на частоту виклику addLiquidity. Крім того, контракт не використовував oracle‑guard для захисту від цінових маніпуляцій, що дозволило flash‑loan атаці змінити внутрішню ціну пулу на користь хакера.
Ризики та можливості для Web3‑бізнесу
- Прихований ризик — непрозорі субсидії. Автоматичні виплати без зовнішніх перевірок можуть стати вектором для повторних атак.
- Прихований ризик — відсутність мультисиг‑контролю. Один ключовий адміністратор здатний змінити фінансову логіку без узгодження.
- Прихований ризик — недостатній захист від MEV. Протоколи без вбудованого front‑running‑бар'єру вразливі до цінових маніпуляцій через flash‑loans.
- Можливість — інтеграція escrow‑модулів. Застосування умовних депозитів дозволяє «затримувати» субсидії до підтвердження наявності коштів.
- Можливість — ізольовані API‑шлюзи. Розділення логіки управління та користувацького доступу зменшує поверхню атаки.
- Можливість — платформи аудиту в реальному часі. Автоматичний моніторинг аномалій в обсягах ліквідності та частоті викликів функцій може попередити зловмисника ще до виведення коштів.
Як захиститися та заробити на цьому тренді
Mint Scripts Studio пропонує набір перевірених архітектурних рішень, які мінімізують ймовірність повторення подібних експлойтів:
- no‑backdoors. Кожен смарт‑контракт проходить суворий аудит, у ньому відсутні «приховані» функції, що викликаються тільки власником.
- чистий open source. Повний публічний репозиторій дозволяє спільноті перевіряти логіку та пропонувати покращення, що знижує ризик прихованих вразливостей.
- ізольовані API‑шлюзи. Зовнішні запити до фінансових методів проходять через окремий шар, де реалізовані rate‑limiting та whitelist‑контроль.
- escrow‑логіка. Субсидії та виплати тримаються в умовному депозиті до моменту, коли перевіряється баланс і підтверджується відсутність конфліктів.
- multisig‑авторизація. Критичні операції, такі як зміна параметрів субсидій або виведення коштів з пулу, вимагають підпису мінімум двох незалежних учасників.
- MEV‑protection. Вбудовані механізми захисту від front‑running (commit‑reveal, time‑lock) роблять неможливими миттєві цінові атаки.
Для розробників, які бажають монетизувати зростання попиту на безпеку, рекомендується пропонувати послуги з аудиту та доопрацювання DeFi‑протоколів у вигляді модульних пакетів. Партнерські програми з біржами дозволяють отримувати комісію за інтеграцію наших escrow‑модулів, а також за навчання команд з best‑practice у сфері smart‑contract security. Інвестори можуть диверсифікувати портфель, вкладаючи кошти в проєкти, що пройшли наш security‑seal, отримуючи при цьому бонусні токени за участь у bounty‑програмах.