Ф'ючерси
Сотні безстрокових контрактів
TradFi
Золото
Одна платформа для світових активів
Опціони
Hot
Торгівля ванільними опціонами європейського зразка
Єдиний рахунок
Максимізуйте ефективність вашого капіталу
Демо торгівля
Вступ до ф'ючерсної торгівлі
Підготуйтеся до ф’ючерсної торгівлі
Ф'ючерсні події
Заробляйте, беручи участь в подіях
Демо торгівля
Використовуйте віртуальні кошти для безризикової торгівлі
Запуск
CandyDrop
Збирайте цукерки, щоб заробити аірдропи
Launchpool
Швидкий стейкінг, заробляйте нові токени
HODLer Airdrop
Утримуйте GT і отримуйте масові аірдропи безкоштовно
Launchpad
Будьте першими в наступному великому проекту токенів
Alpha Поінти
Ончейн-торгівля та аірдропи
Ф'ючерсні бали
Заробляйте фʼючерсні бали та отримуйте аірдроп-винагороди
Інвестиції
Simple Earn
Заробляйте відсотки за допомогою неактивних токенів
Автоінвестування
Автоматичне інвестування на регулярній основі
Подвійні інвестиції
Прибуток від волатильності ринку
Soft Staking
Earn rewards with flexible staking
Криптопозика
0 Fees
Заставте одну криптовалюту, щоб позичити іншу
Центр кредитування
Єдиний центр кредитування
Центр багатства VIP
Преміальні плани зростання капіталу
Управління приватним капіталом
Розподіл преміальних активів
Квантовий фонд
Квантові стратегії найвищого рівня
Стейкінг
Стейкайте криптовалюту, щоб заробляти на продуктах PoS
Розумне кредитне плече
Кредитне плече без ліквідації
Випуск GUSD
Мінтинг GUSD для прибутку RWA
Глибокий аналіз: атака на маніпуляцію NAV через швидкі позики Morpho після розв'язки USR
Написано: шпинат шпинат
22 березня 2026 року протокол Resolv зазнав витоку приватного ключа, і зловмисник без зусиль створив 80 мільйонів беззаставних USR, що спричинило різке падіння USR з $1 до $0.025.
Наслідки цієї катастрофи торкнулися не лише власників USR, а й більш розумних людей, які на платформі Morpho здійснили складну маніпуляцію NAV сейфу.
Ця стаття покроково розгляне логіку цієї атаки.
Перед розглядом атаки потрібно зрозуміти структуру Morpho, інакше подальше пояснення буде незрозумілим.
Морфо складається з двох рівнів:
Базовий рівень:
Morpho Blue (також званий Morpho Core). Це максимально спрощений, незмінний протокол кредитування. Його філософія — “без дозволу” — будь-хто може створювати ринки кредитування, вносити, позичати, ліквідувати.
Кожен ринок визначається п’ятьма параметрами: актив для кредитування, актив застави, лінія ліквідації (LLTV), адреса оракула, модель відсоткової ставки.
Між ринками повна ізоляція: проблеми одного не впливають на інші.
Верхній рівень:
MetaMorpho Vault (скриня). Це ERC-4626 стандарту сейф, що функціонує як “фондовий продукт”.
Користувачі вносять USDC у сейф, а адміністратор (Curator) розподіляє ці кошти між різними ринками Morpho Blue для отримання відсотків.
Користувачі володіють частками сейфу (shares), вартість яких зростає з накопиченням відсотків.
Ключова формула — чиста вартість на акцію (NAV / Price Per Share): кожна акція = загальні активи / загальна кількість випущених часток.
Загальні активи — це сума всіх позицій у всіх ринках (включно з позиками, оскільки це “заборгованість”). Загальна кількість часток — це кількість випущених часток сейфу. З накопиченням відсотків активи зростають, але кількість часток залишається незмінною, тому NAV зростає — і це основа вашого заробітку.
Це перший ключовий момент атаки.
У Morpho Blue функція supply() має параметр onBehalf. Це задумано для зручності — наприклад, автоматизовані стратегічні контракти можуть вносити кошти за користувача.
Але ця функція є без дозволу: будь-хто може вказати будь-яку адресу як onBehalf, включно з адресою сейфу.
Офіційна документація Morpho попереджає: “Попередження: будь-хто може вносити від імені сейфу, тому виклик updateWithdrawQueue, який очікує порожній ринок, може бути зірваний через front-run.”
Якщо ви внесли 10 000 USDC від імені сейфу, позиція сейфу в цьому ринку збільшується на 10 000, і активи (totalAssets) зростають на цю суму. Але кількість часток (totalSupply) не змінюється — оскільки ніхто не вносив нові кошти через deposit().
Результат: NAV на акцію підвищується.
Зазвичай це означає “пожертвувати” коштами — ви власноруч збільшуєте прибутки всіх акціонерів, ідіоти так роблять. Але за певних умов це можна використати.
Після втрати прив’язки USR, деякі адміністратори сейфів терміново встановили обмеження Supply Cap для ринку USR/USDC на 0, тобто заборонили додавати кошти. Звучить, ніби проблема вирішена?
Проблема в тому, що Supply Cap — це обмеження на рівні сейфу, а не Morpho Blue.
Адміністратор сейфу контролює внутрішню функцію _supplyMorpho().
Але supply(onBehalf=vault) безпосередньо взаємодіє з контрактом Morpho Blue Core, обходячи всі логіки сейфу: чергу внесків, обмеження Supply Cap, перевірки прав розподілювача — все ігнорується.
Метафора: адміністратор сейфу закрив передні двері (Cap=0), але зловмисник через задні двері Morpho Core може безперешкодно внести кошти.
Це другий ключовий момент.
Оракул ринку USR/USDC встановлений як фіксований 1:1. Тобто незалежно від того, наскільки знизилася ціна USR на зовнішньому ринку, у Morpho 1 USR завжди дорівнює 1 USDC.
Чому адміністратор сейфу використовує фіксований оракул? Тому що USR — “стабільна монета”, і за нормальних умов ціни коливаються мало. Фіксований оракул запобігає “фальшивим ліквідаціям” через короткострокову нестачу ліквідності.
Але коли USR справді втратило прив’язку, фіксований оракул стає катастрофою — позичальники можуть використовувати дешевий USR як заставу і отримати значну суму USDC, а протокол про це не дізнається.
Механізм обробки безнадійних кредитів у Morpho тут повністю виходить з ладу — реальне відображення (V1.0) і механізм рівномірного розподілу (V1.1) передбачають, що протокол може ідентифікувати безнадійні кредити.
Якщо оракул зафіксований, він не дає можливості це зробити.
Зараз усі умови зібрані. Нижче — атомарні операції, що виконуються в одному транзакції:
(тут, на жаль, оригінал не містить конкретних кроків, тому пропущено)
Це найчастіше ігнорується питання. Прибуток атаки — це “штучне збільшення totalAssets з подальшим розподілом приросту пропорційно часткам”. Якщо зловмисник не використовує flash loan, він володіє 0% часток — навіть якщо totalAssets зросте, всі прибутки отримають інші, і він нічого не заробить.
Зайняті 12 300 USDC — це не просто так. Ці гроші походять із реальної ліквідності інших здорових ринків сейфу.
При знятті коштів сейф витягує USDC у порядку черги з різних ринків. USDC у ринку USR вже позичили, і грошей там немає. Тому кошти беруться з інших ринків — наприклад, wETH/USDC, cbBTC/USDC тощо.
Ця атака — не один вразливий момент, а сукупність трьох проблем у дизайні:
(тут, на жаль, оригінал не деталізує, тому пропущено)
Заключення
Мінімалістична філософія Morpho — без дозволу, незмінність, мінімальне управління — у більшості випадків є перевагою. Але ця подія показує, що такий підхід має свою ціну: відповідальність перекладається на вищий рівень.
Протокол не виконує перевірку оракулів, і адміністратор має самостійно піклуватися про безпеку. Не обмежуючи supply(onBehalf), потрібно додатково захищати сейфи.
Для вкладників важливо “обрати правильного Curator”, а не просто “обрати Morpho”. Протокол — це інструмент, і його безпека залежить від того, хто і як його використовує.