Skip to content
RiverCore
П'ятигодинний збій Pyth Network залишив DeFi без орієнтирів
Pyth Network outageDeFi oracleoracle failurePyth Network price feed outage impactDeFi infrastructure oracle downtime risks

П'ятигодинний збій Pyth Network залишив DeFi без орієнтирів

23 тра 20267 хв. читанняJames O'Brien

У авіадиспетчерів є приказка: коли радар виходить з ладу, ви не садите літаки — ви тримаєте їх у черзі. DeFi такої розкоші не має. Коли оракул перестає працювати, літаки продовжують летіти, ліквідації продовжують спрацьовувати, а кредитні ринки продовжують оцінювати заставу за останнім застарілим числом у кеші. У четвер радар Pyth Network не працював понад п'ять годин, і решта неба стала дуже непередбачуваною.

Що сталося

Pyth Network повідомила про серйозний збій у четвер, який зачепив як основні Price Feeds, так і Sponsored Feeds, як повідомляє Coinpedia, а тривалість збою перевищила п'ять годин. Інцидент торкнувся двох рівнів інфраструктури, добре відомих більшості DeFi-інженерів: Pythnet та Hermes. Саме вони є рейками, якими реальні цінові дані Pyth надходять до протоколів-споживачів на різних блокчейнах.

Врешті-решт Pyth повідомила, що визначила першопричину, а валідатори координують перезапуск з метою відновлення Core Feeds та Sponsored Feeds до 12:30 UTC. Сторінка статусу на status.pyth.network оновлювалася в реальному часі — це мінімум, якого варто очікувати від постачальника оракулів під час збою. Повний звіт про інцидент очікується після повного відновлення роботи.

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

І це сталося не у вакуумі. Polymarket, що вважається найбільшим у світі ринком прогнозів, того ж дня зазнав активного експлойту: з його контракту UMA CTF Adapter на Polygon було виведено понад $660 000. Два непов'язаних інциденти — одна погана після обіду для диспетчерської.

Технічна анатомія

Щоб зрозуміти, чому п'ятигодинний збій є такою великою проблемою, потрібно розібратися, чим насправді є Pythnet. Pythnet — це спеціально побудований appchain, який агрегує цінові дані першої сторони від бірж і маркет-мейкерів, обробляє їх через логіку агрегації Pyth і формує підписані оновлення цін. Hermes — це офчейн веб-сервіс, який дозволяє споживачам отримувати ці підписані оновлення і публікувати їх у потрібному цільовому ланцюжку — будь то Solana, EVM-ролап або щось більш екзотичне. Якщо будь-який з цих компонентів зупиняється, вся pull-oracle модель зупиняється разом із ним.

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

Кожен, хто писав адаптер оракула, знає нудну частину: параметр maxAge. Встановіть його занадто жорстко — і ваш протокол зупиниться в ту ж секунду, як фіди сповільняться. Встановіть занадто м'яко — і ви приймаєте ціни з абсолютно іншого ринкового режиму. Під час п'ятигодинного збою на волатильному активі жодне налаштування не є комфортним. Інтеграції на боці Solana зокрема мають тенденцію активно покладатися на Pyth, враховуючи походження Pyth саме з цього ланцюжка (документація Solana пояснює, як ончейн-акаунти кешують дані оракулів).

Суть полягає в тому, що валідаторам довелося координувати перезапуск. Це формулювання має значення. Воно передбачає відновлення на рівні консенсусу, а не гарячу заміну єдиного несправного сервісу, що відповідає природі Pythnet як власного валідованого ланцюжка. Координовані перезапуски не є рідкістю в appchain-просторі, але вони повільні за своєю природою і ставлять кожен протокол нижче по потоку на паузу, поки оператори вирішують свої проблеми.

Хто постраждає

Найбільш вразливі команди — ті, що керують автоматизованими системами, які сприймають оракул як комунальну послугу на кшталт електрики, а не як залежність із власним SLA. Перш за все — майданчики з безстроковими контрактами, які маркують позиції та запускають ліквідації на основі цін Pyth. Якщо протокол призупинив нові ліквідації під час збою — добре. Якщо він продовжував їх виконувати на основі застарілих цін, навіть короткочасно, скарги користувачів надійдуть наступного тижня.

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

Структуровані продукти, опціонні сховища та все, що виконує автоматичне ребалансування, формують третій рівень. Ці системи часто працюють на кіперах у стилі cron, які не вміють коректно відступати, коли ціни відсутні. Вони або відмовляють голосно — що прийнятно, або відмовляють тихо й накопичують перекос — ось де все і руйнується.

А ще є Polymarket, у якого був свій поганий день з абсолютно не пов'язаних причин: він втратив понад $660 000 через експлойт UMA CTF Adapter на Polygon. Технічно два події не пов'язані. Але той факт, що збій оракула та експлойт ринку прогнозів потрапили в один новинний цикл, підкреслює те, що індустрія постійно намагається уникнути: DeFi-інфраструктура є крихкою способами, які не визнаються в маркетингових матеріалах.

План дій для крипто та DeFi

Три речі, які варто зробити цього тижня, якщо ви пишете код, що взаємодіє з ціновим оракулом.

По-перше, проведіть аудит перевірок застарілості. Відкрийте контракт адаптера, знайдіть параметр maxAge або аналогічний, і запитайте себе, чи мало це значення сенс на спокійному ринку і чи все ще має сенс, коли базовий оракул бере п'ятигодинну перерву. Задокументуйте відповідь. Якщо режим відмови вашого протоколу при збої оракула — «продовжувати роботу з останньою відомою ціною», це архітектурне рішення, а не поведінка за замовчуванням, і воно має бути затверджено кимось, хто може нести за нього відповідальність.

По-друге, побудуйте резервний шлях. Конфігурації з кількома оракулами непопулярні, тому що вони операційно незручні, але витрати на інтеграцію другорядного фіду та розумного правила узгодження значно нижчі за витрати від одного поганого каскаду ліквідацій. Chainlink, Redstone, API3 — яким би не було друге джерело, напишіть адаптер зараз, поки нічого не горить.

По-третє, ставтесь до сторінки статусу оракула як до виробничої залежності. Підключіть Slack або PagerDuty до status.pyth.network та аналогів. Якщо ваш протокол може призупинити нові ризикові операції протягом хвилин після погіршення стану оракула — ви вже виграли. Більшість команд дізнаються про це з Twitter, а це вже запізно. Читачі, орієнтовані на стандарти, також можуть переглянути документацію Ethereum щодо патернів автоматичних вимикачів і контрактів, які можна призупиняти, що роблять таку коректну деградацію можливою.

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

Ключові висновки

  • Рівні Pythnet та Hermes мережі Pyth Network не працювали понад п'ять годин, вивівши з ладу як Core Price Feeds, так і Sponsored Feeds.
  • Валідаторам довелося координувати перезапуск із цільовим часом відновлення 12:30 UTC, а повний звіт про інцидент ще очікується.
  • Polymarket того ж дня втратив понад $660 000 через окремий експлойт UMA CTF Adapter на Polygon, підкресливши, наскільки тонкими є запаси безпеки DeFi.
  • Pull-оракули відмовляють інакше, ніж push-оракули, а параметр maxAge є межею між безпечною паузою та небезпечною застарілістю.
  • Захищена позиція для команд протоколів — це резервний мультиоракул плюс автоматичне призупинення, прив'язане до сторінок статусу постачальників, а не моніторинг Twitter.

Часті запитання

Q: Що саме вийшло з ладу під час збою Pyth Network?

Рівні інфраструктури Pythnet та Hermes компанії Pyth перестали надавати надійні цінові дані понад на п'ять годин, вивівши з ладу як Core Price Feeds, так і Sponsored Feeds. Саме вони є рейками, якими реальні ціни Pyth надходять до DeFi-протоколів на різних блокчейнах.

Q: Як збій Pyth вплинув на DeFi-протоколи?

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

Q: Чи пов'язаний збій Pyth з експлойтом Polymarket?

Ні, ці два інциденти не пов'язані. Polymarket втратив понад $660 000 через окремий експлойт контракту UMA CTF Adapter на Polygon, який трапився в той самий день, що й збій Pyth, і посилив відчуття поганого дня для всієї DeFi-інфраструктури.

JO
James O'Brien
RiverCore Analyst · Dublin, Ireland
ПОДІЛИТИСЯ
// RELATED ARTICLES
ГоловнаРішенняПроєктиПро насКонтакт
Новини06
Дублін, Ірландія · ЄСGMT+1
LinkedIn
🇺🇦UK