Введение
Децентрализованные финансовые приложения (DeFi) полагаются на оракулы – механизмы, доставляющие внешние данные (например, цены активов) в блокчейн-смартконтракты. Без надежных оракулов невозможна работа таких ключевых функций, как выдача займов под залог, расчет депозитов/выплат по деривативам и т.д. При этом сами оракулы давно называют «ахиллесовой пятой» DeFi, ведь уязвимость в цепочке доставки данных способна свести на нет всю гарантируемую смарт-контрактами децентрализацию. Как отмечают эксперты, протоколы безоговорочно доверяют входящим данным: любое значение, предоставленное оракулом, сразу используется для расчётов, что превращает оракул в критическую точку отказа.
Даже пионеры DeFi рано осознали эту проблему. Так, Андре Кронье (создатель Yearn Finance) указывал, что устойчивость DeFi-систем подтачивают проблемы с ценовыми данными и манипуляцией рынков. В 2025 году основатель фирмы Chaos Labs прямо назвал оракулы «одним из самых слабых звеньев DeFi». Чтобы понять масштаб: только за 2022 год атаки, связанные с манипуляцией оракульными ценами, привели к потерям в ~$403 млн на 41 инцидент. Иначе говоря, уязвимость лежит не в коде блокчейна, а «на стыке» с внешним миром, где злоумышленники научились эксплуатировать доверие протоколов к поступающим данным.
Сегодня наиболее распространены ценовые оракулы для курсов токенов. Они берут котировки с бирж и других источников, агрегируют их и публикуют ончейн. Ниже мы подробно рассмотрим архитектуру ведущего оракульного решения Chainlink, разберём типовые уязвимости и проанализируем резонансные инциденты (Fantom/Scream, deUSD/Euler, Mango Markets, bZx и др.). Мы также оценим технические причины атак, их последствия для экосистем, и обсудим современные методы защиты (децентрализация оракулов, модели на основе AMM-кривых, самописные решения, дублирование источников) с рекомендациями для DAO, разработчиков и аудиторов.
Архитектура Chainlink и уязвимые паттерны
Chainlink – крупнейшая децентрализованная оракульная сеть, обеспечивающая ценовыми данными множество DeFi-протоколов. По оценкам, Chainlink сейчас защищает смарт-контракты на сумму ~$45 млрд более чем в 20 разных блокчейнах. Архитектура Chainlink предполагает набор независимых узлов-валидаторов, которые запрашивают цену актива с внешних рынков, а затем отправляют полученные значения в on-chain агрегатор. Агрегатор, в свою очередь, вычисляет итоговый ценовой ориентир – как правило, используя медиану или средневзвешенную цену по объёму (VWAP) из присланных узлами данных. Такой подход призван отфильтровать шум и единичные выбросы: например, если на одной бирже произошёл случайный всплеск цены, медианное значение по десяткам источников сгладит этот эффект. В случае Chainlink для ряда стейблкоинов и менее ликвидных активов используется именно объемно-взвешенная средняя цена (VWAP) по всем доступным рынкам, что повышает устойчивость к манипуляциям краткосрочными сделками.
Преимущества модели Chainlink: Благодаря множеству независимых узлов и источников данных, устраняется единая точка отказа, а риск ошибки снижается за счёт консенсуса узлов. Децентрализованный сбор данных повышает надёжность: данные агрегируются и проверяются несколькими независимыми участниками, что значительно лучше прямого доверия одной бирже или API. Chainlink внедрил протокол Off-Chain Reporting (OCR), где узлы сначала обмениваются данными между собой off-chain, приходят к консенсусу об цене, и лишь после этого отправляют одно сжатое обновление on-chain – это снижает расходы газа и позволяет увеличить число источников без перегрузки блокчейна. Кроме того, заложены механизмы контроля: например, ценовые фиды обновляются только при изменении цены более чем на заданный порог (деятельность деviation threshold), чтобы избежать излишней волатильности или манипуляций. В совокупности эти меры сделали Chainlink отраслевым стандартом: многие DAO доверяют ему безопасность ликвидности на миллиарды долларов.
Уязвимые места и ограничения: Полностью устранить риски не удалось. Во-первых, если базовый рынок актива малоликвиден или подвержен координированной манипуляции, даже децентрализованный оракул будет транслировать “плохие” данные – ведь он честно отражает внешние торги. VWAP-агрегатор устойчив к кратким всплескам, но уязвим, если злоумышленник создаст большой объём фиктивных торгов. Пример – случай со стейблкоином deUSD на платформе Euler: на одном из пулов Curve единичная крупная сделка заняла ~50% суточного объёма торгов, временно подняв цену deUSD выше $1; оракул Chainlink точно зафиксировал эту аномалию в расчёте VWAP, что и привело к проблемам (см. подробности ниже). Во-вторых, сама сеть узлов требует доверия к добросовестности большинства. Хотя случаи злонамеренного сговора валидаторов Chainlink неизвестны, теоретически атака 51% или массовый сбой узлов могут нарушить работу фида. Chainlink планирует решить это внедрением ставки токена LINK и слэшинга (штрафов) для узлов за неверные данные, но на момент обзора эта система только развивается. В-третьих, обновления цены происходят не постоянно, а с определённой частотой или при превышении порога отклонения. В периоды экстремальной волатильности возможны задержки обновлений, и если рынок движется быстрее оракула, у атакующих появляется окно возможностей (например, взять кредит по старой цене до обновления фида).
Наконец, стоит отметить, что Chainlink не охватывает все активы и все сети – на новых или нишевых блокчейнах проекты иногда вынуждены прибегать к самописным оракулам или упрощённым решениям. Классический пример – протокол Scream на Fantom, который до интеграции с Chainlink использовал фиксированные цены для ряда активов, что обернулось катастрофой (см. ниже). Таким образом, даже лучшая на сегодня модель оракулов имеет слабые места: от человеческого фактора (неправильная интеграция или настройка фида) до фундаментальной зависимости от внешних рынков. Chainlink значительно укрепил защиту (по сравнению с единичными централизованными оракулами или прямым использованием цен DEX), но полностью устранить уязвимости ценовых данных невозможно – остаётся “трилемма” между безопасностью, децентрализацией и доступностью данных.
Обзор инцидентов
За последние годы произошло множество атак и сбоев, связанных с оракулами. Рассмотрим несколько знаковых инцидентов – как с использованием Chainlink, так и альтернативных механизмов – чтобы понять, какие паттерны эксплуатировались атакующими.
-
Fantom / Scream (стабильные монеты и stETH) – Весной 2022 г. на блокчейне Fantom популярный лендинговый протокол Scream столкнулся с крупными долгами из-за некорректной цены оракула. В погоне за “надежностью” разработчики Scream жёстко зафиксировали цену некоторых залоговых токенов (в том числе алгоритмического стейблкоина fUSD от Fantom и stablecoin DEI от Deus Finance) ровно на уровне $1. Когда эти «стабильные» токены в реальности потеряли привязку и подешевели на рынке, платформа этого не отразила – для смарт-контракта они по-прежнему стоили $1. Пользователи немедленно воспользовались ситуацией: массово вносили обесценившиеся fUSD/DEI в качестве залога по завышенной цене и выводили взаймы нормальные стабильные монеты (USDC, USDT) и другие активы из протокола. В итоге Scream остался с «мёртвым» долгом примерно на $35 млн – резервов не хватило покрыть обязательства. Кроме того, на Fantom у Scream, вероятно, была неправильно настроена цена для стейкингового дериватива stETH (Lido Staked Ether): судя по отчетам, его котировка также не обновлялась своевременно. Инцидент подорвал доверие: TVL (общая заблокированная стоимость) Scream рухнула с более $1 млрд до ~$38 млн, а команда в экстренном порядке объявила о скорейшей интеграции Chainlink-оракулов для всех активов. Кейс Scream иллюстрирует ошибку конфигурации оракула, фактически отсутствие надёжного источника цены, что привело к прямой возможности арбитража против протокола.
-
deUSD на Euler (инцидент 2025 г., спор Bentley vs. Zeller) – Свежий пример того, как даже децентрализованные оракулы могут вызвать спорные ситуации. В мае 2025 г. на платформе Euler (сеть Avalanche) один из пользователей потерял свыше $500 тысяч из-за принудительной ликвидации, вызванной скачком цены стейблкоина deUSD. Оракул Chainlink для deUSD неожиданно показал цену $1.03 (вместо нормального $1), что трактовалось протоколом как падение обеспечения – позиции, занимавшие deUSD, были ликвидированы. Первоначально это назвали «сбоем Chainlink», однако вскоре выяснилось, что оракул сработал согласно правилам: на децентрализованной бирже Curve прошла крупная сделка, отвязавшая deUSD от доллара (курс временно подскочил выше паритета), и Chainlink корректно зафиксировал этот рыночный факт в агрегированном VWAP-фиде. Возникла дискуссия между Майклом Бентли (сооснователем Euler) и Марком Зеллером (представителем Aave Chan Initiative) относительно виновника ситуации. Бентли намекал, что оракул сработал “ненадёжно”, тогда как Зеллер возразил: протоколы не должны обращаться с волатильными или неликвидными активами так, будто они полностью надёжны – риск лежит на платформе, выбравшей такой залог. По словам Зеллера, Chainlink “выполнил свою работу”, предоставив данные в точном соответствии с рыночной динамикой, а ответственность за потери несёт неправильная оценка рисков со стороны проекта. Данный инцидент высветил конфликт между провайдером оракулов и разработчиками DeFi: где грань между “некачественными данными” и “ошибкой протокола в работе с данными”? В итоге сообщество сошлось во мнении, что deUSD был слишком слабо ликвиден, и Euler стоило ввести ограничения (например, не разрешать брать большой кредит под обеспечение из такого токена, или внедрить лимиты отклонения цены). Случай deUSD/Euler показал, что даже без явного хакера можно получить ущерб, если реальный рынок актива нестабилен – оракул лишь отражает эту нестабильность, а протокол должен уметь ее смягчать.
-
Mango Markets (Solana, октябрь 2022) – Один из самых громких примеров классической манипуляции ценой через оракул. Платформа Mango являлась DeFi-биржей/лендингом на Solana и допустила использование собственного токена управления MNGO в качестве залога. Атакующий (Авраам Айзенберг) заметил, что рынок MNGO слаболиквиден и поддаётся разовому разогреву. Он накопил капитал (~$10 млн USDC) и провёл серию согласованных торгов: с одного аккаунта начал агрессивно покупать MNGO, а с другого продавать, разгоняя цену токена в десятки раз за минуты. Внешние ценовые оракулы (на Solana использовались Pyth и внутренние данные Mango) зафиксировали огромный рост стоимости MNGO. В результате злоумышленник «на бумаге» увеличил стоимость своего залогового аккаунта с $10 млн до ~$400 млн, после чего под этот фальшиво завышенный залог вывел из Mango практически всю ликвидность в стабильных монетах и других токенах. Когда цена MNGO вернулась к нормальным значениям, платформа осталась с невозмещенными долгами на сумму более $100 млн. Примечательно, что Айзенберг затем публично заявил, будто его действия были «легитимной торговой стратегией», а не взломом – мол, код протокола работал как написано, а он просто воспользовался выгодной возможностью. Однако сообщество и регуляторы не согласны: против него были выдвинуты обвинения в рыночной манипуляции (SEC, CFTC и Минюст США квалифицируют это как мошенничество, несмотря на отсутствие “взлома кода”). Mango DAO, чтобы спасти остатки средств, вынужден был пойти на сделку: проголосовал за то, чтобы атакующий вернул примерно половину выведенных активов, оставив себе остальное в качестве “баунти”, и освобождался от юридической ответственности. Этот инцидент стал хрестоматийным примером атаки на оракул через раздувание собственной стоимости: использование собственного governance-токена в качестве залога без надёжного ценового ограничения оказалось фатальной ошибкой дизайна.
Пример динамики цены при атаке на оракул: график пары MNGO/USDC во время эксплойта Mango Markets (октябрь 2022). Видно резкий всплеск курса MNGO почти до $1 (+1182% за считанные минуты), с последующим обвалом ниже исходных значений. Оракул зафиксировал “пиковую” цену, позволив злоумышленнику взять кредиты под переоцененный залог и обналичить их, пока цена не вернулась к норме.
- bZx (Ethereum, 2020) – Первое известное flash loan-ограбление через уязвимость оракула. В феврале 2020 платформу bZx (протокол маржинальной торговли Fulcrum) атаковали, воспользовавшись тем, что для расчёта цен залогов она брала данные напрямую с децентрализованной биржи Uniswap. Атакующий одолжил большое количество ETH с помощью мгновенного кредита (flash loan) и за один блок совершил несколько операций: разогнал цену малоликвидного токена (WBTC) на Uniswap, после чего немедленно открыл на bZx позицию, используя этот токен по завышенной цене, и вывел с платформы ценные активы, вернув флэш-кредит. Все произошло за секунды, пока цена WBTC на Uniswap была искусственно высока – протокол не успел среагировать. Убыток тогда составил относительно скромные ~$350 тыс., но инцидент прозвучал тревожным звонком для всей отрасли. В последующие два года подобные атаки через мгновенные кредиты и манипуляции ценами множились, нанеся суммарно ущерб в сотни миллионов долларов по различным протоколам. Помимо bZx, пострадали проекты Value DeFi, Harvest Finance, Inverse Finance, Cream, Saddle и другие – схемы зачастую схожи (разгон цены низколиквидного токена + взятие кредита под него + вывод ликвидности, оставляя “пустышку” в залоге). Многие из этих атак были возможны из-за отсутствия интеграции с Chainlink или другим надёжным агрегатором – проекты либо полагались на единственный DEX для цен (как bZx), либо не имели ограничений на величину ценовых скачков.
Конечно, перечисленными случаями проблема не исчерпывается. Были и курьёзные эпизоды: например, в 2019 г. протокол Synthetix из-за ошибки оракула получил неверный курс корейской воны, что позволило боту «напечатать» синтетических активов на фантастическую сумму (ошибку оперативно откатили). Однако вышеописанные события – Fantom/Scream, Euler, Mango, bZx – дают репрезентативную выборку сценариев, на которых стоит сосредоточиться при анализе.
Технический анализ причин атак
Рассмотрим, как именно реализуются атаки на оракулы, и где проходит грань между багом, недосмотром и системной уязвимостью. Общий признак всех подобных инцидентов: злоумышленник (или стечение обстоятельств) предоставляют протоколу ложные ценовые сигналы, на основе которых смарт-контракты совершают экономически невыгодные действия (ликвидируют “здоровые” позиции, выпускают лишние средства под недействительный залог, позволяют вывести больше активов, чем положено и т.д.).
С точки зрения реализации можно выделить несколько типовых паттернов:
-
Манипуляция ценой на источнике данных (DEX/oracle feed). В классическом случае атакующий использует крупный капитал (свой или привлечённый через flash loan), чтобы изменить цену актива на рынке, откуда оракул берёт данные. Если оракул привязан к одной DEX, злоумышленник может прокрутить через эту DEX большой объём торгов за короткое время, создав видимость скачка цены. Даже если оракул агрегирует несколько источников, недостаточная ликвидность позволяет совершить такие операции сразу на всех основных площадках (или на наиболее весомых в агрегате), чтобы повлиять на среднюю цену. Именно так действовал атакующий Mango: путем быстрого увеличения торгового объема и цены MNGO на внутренней бирже протокола он добился многократного роста “рыночной” цены. В случае bZx 2020 г. и многих последующих атак на кредитные протоколы схема схожа – атакующий разгоняет курс залогового токена, используя тонкий рынок, после чего берет под этот токен крупный заем и обрушивает цену обратно. Важно отметить: для таких операций идеально подходят flash loans – мгновенные беззалоговые кредиты, которые позволяют получить миллионы на одну транзакцию. Благодаря им атакующие в 2020–2021 гг. совершали молниеносные атаки без собственного начального капитала.
-
Некачественные или неподходящие источники оракула. Иногда проблема кроется не в злонамеренных действиях, а в дизайне протокола. Пример – история Scream, где разработчики фактически отключили обновление цен (зафиксировали курс стабкоинов на $1). Формально никто “не атаковал” Scream – пользователи просто воспользовались ошибочным допущением системы. Это ближе к недосмотру архитектуры: оракул считался тривиальной частью, ему не уделили должного внимания, в результате чего протокол не отражал реальность. Схожим образом, если проект вручную поддерживает ценовой фид (через админа или скрипт) и вовремя не обновит его – могут возникнуть возможности для эксплуатации. Тут граница между багом и уязвимостью размыта: с одной стороны, никакого сбоя кода нет – контракт делает, что ему сказали (как в Mango: контракт честно принял завышенную цену как есть). С другой – упущение разработчиков (непредусмотренность проверки цен на аномалии, выбор неподходящего источника) можно считать логической уязвимостью.
-
Отсутствие ограничений и sanity-check при использовании данных. Многие успешные эксплойты стали возможны, потому что протоколы принимали любую цену от оракула на веру, без дополнительных проверок. Например, если бы в Mango или Scream были встроены элементарные правила типа: “если цена актива X выросла > 2х за час – приостановить заимствования/ликвидации”, атака могла быть смягчена. Такой функционал называют circuit breaker или санити-чек. В анализе от CertiK подчеркивается: для защиты от манипуляций протоколы должны внедрять многослойные меры – мульти-источниковые оракулы, аудит всей цепочки данных, fallback-логика при аномальных отклонениях, мониторинг и аварийное отключение при подозрительной волатильности. Если этого нет, даже небольшая брешь в оракуле превращается в полный компромисс протокола. В примере deUSD/Euler мы видим, что границы допустимого отклонения не были настроены – оракул сообщил +3 цента к цене стейблкоина, и смарт-контракты тут же провели ликвидации, хотя более разумно было бы игнорировать такие отклонения для малоликвидного актива. Таким образом, отсутствие внутренних проверок – это недоработка проекта, усугубляющая уязвимость оракула.
-
Системные уязвимости и рыночные аномалии. Наконец, часть ситуаций лежит за пределами классического понимания “бага”. Например, общесетевые сбои или экстремальные события – внезапный обвал рынка, отключение бирж, форки – могут приводить к сбоям оракулов. В истории DeFi были случаи, когда из-за перегрузки сети оракул не успевал обновить цену, и это позволяло должникам вывести залоги, пока протокол видел устаревшую высокую цену. Иногда сами биржи отдавали некорректные данные (случай Synthetix с неверной ценой sKRW из-за ошибки API). Эти эпизоды показывают системный характер рисков: даже без злоумышленника, техническая сложность инфраструктуры оракулов может приводить к инцидентам. Поэтому грань между “взломом” и “форс-мажором” бывает размыта – любая уязвимость в экосистеме (будь то баг оракула, сбой сети или человеческая ошибка) бьет по DeFi-протоколу напрямую.
Важно подчеркнуть: в большинстве атак на оракулы код смарт-контрактов не нарушается – злоумышленники эксплуатируют экономическую логику. Это отличает такие инциденты от типичных багов (переполнений, reentrancy и т.д.). Протокол “теряет деньги” не потому, что кто-то взломал приватный ключ или получил прямой доступ к средствам, а потому, что он сам добровольно отдал средства, полагаясь на неправильные входные данные. В этом смысле oracle-exploit – это финансовая атака, зачастую требующая глубокого понимания рынка. Например, атака Mango была столь же операцией на бирже, сколь и хакерством. Айзенберг (Mango) и другие атакующие даже утверждали, что не делают ничего незаконного. Однако регуляторы все чаще трактуют такие манипуляции как мошенничество и преследуют их наряду с традиционными взломами. Это подтверждает, что суть проблемы – в подрыве доверия к системе: если можно исказить цены, DeFi не может считаться надежной финансовой инфраструктурой.
Последствия для экосистем
Атаки и сбои ценовых оракулов наносят ущерб не только отдельным жертвам, но и экосистеме в целом. Рассмотрим последствия описанных выше инцидентов:
-
Прямые финансовые потери и пострадавшие стороны. В каждом случае находилась сторона, понесшая материальный урон. В Scream это были, по сути, вкладчики протокола – их ликвидность ушла в руки эксплуататоров, оставив “дыру” в балансе платформы ~$35 млн. В итоге Scream оказался подкапитализирован: пользователи с fUSD/DEI не могли вывести свои депозиты, а другие кредиторы получили лишь частичные выплаты. В случае Mango пострадали держатели депозитов и контрагенты по сделкам – протокол потерял ~$100+ млн ликвидности, многие пользователи оказались с обесцененными токенами MNGO. Атакующий вернул около половины, но вторую оставил себе как “награду”, то есть прямой ущерб для DAO и пользователей составил десятки миллионов. В истории Euler/deUSD непосредственным пострадавшим стал конкретный трейдер, чей залог принудительно ликвидировали на полмиллиона долларов – неприятность локальная, но для этого пользователя деньги утраченны безвозвратно. В bZx 2020 команда покрыла убыток ~$350k из резервов, то есть ущерб лег на инвесторов/разработчиков. Подобные паттерны повторялись и в других случаях: например, в Inverse Finance (июнь 2022) атака на оракул стоила протоколу ~$1.2 млн, а в Harvest Finance (2020) – около $34 млн, причём во втором случае часть средств попытались вернуть добровольно, но большинство пользователей понесли потери.
-
Реакция проектов и сообществ (DAO). Столкнувшись с последствиями, DeFi-сообщества реагировали по-разному. Некоторые протоколы были вынуждены признать поражение и свернуть деятельность (особенно в ранние годы, когда не было фондов для компенсаций) – к счастью, Scream и Mango избежали полного закрытия. Часто прибегают к экстренным голосованиям DAO: так, Mango провёл голосование, утвердившее “сделку” с хакером о частичном возврате средств и покрытии остального ущерба из казны DAO. В случае Scream команда обратилась за помощью к Fantom Foundation; та, по сообщениям, выделила средства на запуск бота-ликвидатора, чтобы как можно быстрее погасить часть задолженностей и восстановить платежеспособность протокола. Euler Finance после инцидента deUSD объявила, что проведет анализ и, вероятно, ужесточит критерии листинга стейблкоинов с низкой ликвидностью, хотя о компенсации речи не шло (т.к. протокол формально работал правильно). Позитивный пример – большой взлом Euler в марте 2023 (не связанный с оракулом, но показательный): команда в итоге договорилась с хакером о возврате ~90% украденных $200 млн и полностью компенсировала пользователей. Это свидетельствует о взрослении отрасли: проекты стремятся не бросать пользователей с убытками. Тем не менее, в большинстве случаев oracle-атаки рассматриваются как рисковая деятельность пользователя: если ты берешь кредит под экзотический залог, будь готов потерять деньги. Поэтому компенсации – скорее исключение (Mango – уникальный случай, где DAO имел средства и рычаги договориться с хакером).
-
Влияние на TVL, токены и доверие. Инциденты с оракулами часто подрывают репутацию протоколов и ведут к оттоку ликвидности. Мы уже упоминали обвал TVL Scream с $1.1 млрд до ~$38 млн (-96%) – фактически, протокол перестал быть значимым игроком на Fantom после той ошибки. Токен управления Scream (SCREAM) тоже просел в цене, а новые запуски на Fantom стали с недоверием относиться к рискам. Mango Markets после октябрьского взлома так и не вернул прежний объем торгов – доверие было подорвано, многие пользователи ушли, а сам случай бросил тень на весь Solana-DeFi, показав уязвимость локальных оракулов. Стоит отметить, что каждый крупный инцидент усиливает внимание к проблеме: после случаев bZx в 2020 почти все протоколы отказались от цен с одиночных DEX в пользу агрегаторов (Chainlink и аналоги). После Mango 2022 многие платформы пересмотрели список принимаемых в залог токенов, исключив собственные governance-токены или малоликвидные активы, либо снизив по ним плечи. Инцидент deUSD 2025 вызвал оживлённую дискуссию в Crypto Twitter и на форумах: некоторые обвинили Chainlink в “глюке”, другие защищали его. В итоге для отрасли это стало уроком о необходимости дополнительного контроля поверх оракула. В целом, повторяющиеся oracle-эксплойты негативно влияют на восприятие DeFi со стороны институциональных игроков: риск “ложной ликвидации” или манипуляции ценами отпугивает консервативный капитал. С другой стороны, каждый инцидент – это стимул совершенствовать защиту, о чём поговорим далее.
-
Компенсации и страховые механизмы. В последние годы появились децентрализованные страховые протоколы (Nexus Mutual, InsurAce и др.), предлагающие полисы от сбоев смарт-контрактов. Однако компенсации именно по oracle-атакам – сложный вопрос, т.к. формально код не багнут. Иногда DAO сами создают компенсационные фонды: например, после взлома Compound (не oracle, но показательно) сообщество выпустило токены для возмещения пострадавшим. В случаях с оракулами подобных практик мало – скорее, делают выводы для будущего, чем возмещают прошлое. Таким образом, прямое финансовое возмещение редко покрывает все убытки пользователей, поэтому репутационные потери для протокола зачастую даже важнее разового ущерба.
Текущие подходы к митигации и предложения по улучшению
Проблема надёжных оракулов находится в центре внимания сообщества, и за последние годы выработан ряд подходов для снижения рисков. Ниже перечислены как уже применяемые методы, так и перспективные идеи, способные улучшить ситуацию:
-
Децентрализация и диверсификация оракулов. Один из принципов – не полагаться на единый источник. Даже использующийся сегодня Chainlink можно подстраховать: некоторые протоколы берут данные сразу из двух оракулов (например, Chainlink + Band, или Chainlink + собственный DEX-TWAP) и сравнивают их. Если расхождение превышает порог – срабатывает аларм, приостанавливаются критические операции. Такое дублирование повышает устойчивость: атакеру пришлось бы одновременно взломать/обмануть оба канала. Также развивается мультисигнальный подход: например, Compound v3 использует цены нескольких бирж и Chainlink, а MakerDAO долгое время опирался на собственный коллектив оракулов (группа из 20+ фидеров, передающих данные, с агрегированием медианы). Эксперты рекомендуют агрегировать данные из нескольких независимых источников, чтобы исключить изолированные аномалии. В идеале – сочетать данные CEX и DEX, разные методики (VWAP, TWAP, спот-цена) и разных провайдеров. Чем более разнородные источники, тем сложнее одновременная манипуляция.
-
“Curve-like” модели и встроенные ценовые механизмы. Инновационный подход – отказаться от внешних оракулов, заложив ценообразование внутрь самого протокола. Например, новые алгоритмические стабилизационные протоколы и AMM-пулы реализуют принцип, при котором цена актива вычисляется на основе балансов в пуле ликвидности (формула AMM) и автоматически поддерживается арбитражерами. Проще говоря, протокол сам выступает маркет-мейкером, и его смарт-контракт знает цену из собственного состояния. Классический AMM (Uniswap, Curve) можно рассматривать как on-chain оракул – и действительно, Uniswap v2 предоставлял функцию TWAP (средневзвешенной по времени цены) прямо из контракта, что активно использовалось проектами. Curve Finance пошёл дальше: в своём новом лендинговом протоколе crvUSD применяется механизм LLAMMA, который непрерывно ликвидирует и восстанавливает позиции за счёт внутренняя AMM-кривой между залогом и стабильной монетой. Это по сути oracle-less модель: внешняя цена нужна лишь опосредованно (для арбитража), а сам протокол видит цену через коэффициент баланса в пуле. Такие кривые цены устойчивее к мгновенным выбросам – чтобы их обмануть, нужно внести огромный капитал и понести существенные потери на проскальзывании. Однако “кривые” оракулы применимы не для всех случаев – в основном для пар со предсказуемой привязкой (стейблкоин-стейблкоин, корзины активов). Тем не менее, проекты экспериментируют: например, некоторые стейблкоины используют Curve-пулы для определения курса при отклонении от паритета. Идея в том, чтобы максимально перенести формирование цены в on-chain среду, где ее проще контролировать и где атака требует реальных затрат (арбитраж быстро возвращает цену к честной).
-
Самописные оракулы с узкой специализацией. В ряде случаев протоколы, недовольные существующими решениями, разрабатывают свои оракулы, настроенные под конкретные задачи. Пример – Keep3r Network от Андре Кронье: в ней реализован оракул, использующий экстремально длительные скользящие средние (например, суточная средняя цена токена). Такая инерционная модель полностью устраняет кратковременные всплески – манипулятору пришлось бы поддерживать фальшивую цену целые сутки, что практически невозможно. Обратная сторона – медлительность реакции; такой оракул годится не для всех финансовых приложений (скорее для неспешных операций вроде ребалансировок). Другой пример – проекты, работающие только со специфическими активами. Они могут агрегировать данные “вручную”: например, протоколы деривативов иногда берут цену из фьючерсной биржи + индексы волатильности, и делают собственный расчет цены актива на смарт-контракте. Если команда обладает экспертизой, собственный оракул даёт гибкость (можно задать любую логику: усреднение, отсечение выбросов, пауза при аномалиях и т.д.). Однако создание оракула – сложная и опасная затея: нужен круглосуточный мониторинг, защита от сбоев, экономический анализ. Поэтому большинство всё же предпочитает аутсорсить эту задачу таким сетям, как Chainlink, вместо того чтобы “изобретать колесо”. Оптимальный подход – гибридный: взять проверенный внешний оракул, но обернуть его собственной прослойкой проверок и логики.
-
Дублирование и аварийные лимиты. Как упоминалось, дублирование источников – мощный прием. Помимо этого, протоколы вводят пределы на изменения цены: например, если цена стейблкоина отклоняется > X% от $1 – приостанавливать определенные операции (ликвидации, минт новых токенов). MakerDAO имеет механизм Oracles Security Module (OSM) – задержка поступления нового ценового значения на 1 час, что даёт время заметить что-то неладное и, в крайнем случае, вручную остановить систему прежде, чем “плохая” цена повлияет на казну. Другие протоколы рассматривают введение ценовых диапазонов: например, не доверять оракулу, если он показал цену вне интервала [мин;макс], заданного по историческим данным или экспертно. Конечно, слишком жёсткие ограничения могут помешать сработать честным ликвидациям во время реального краха рынка. Поэтому тут нужен баланс: circuit breaker должен использоваться как крайняя мера при явно ненормальных показателях. В целом, тенденция такая: проекты добавляют в смарт-контракты функции “pause” и “guarded launch”, позволяющие при внезапных аномалиях быстро остановить торги/заимствования и созвать команду/DAO для разбирательств.
-
Сети оракулов 2.0 и новые протоколы. Появляются и совершенно новые решения проблемы оракулов. Например, протокол Pyth Network (популярный в Solana экосистеме, а теперь и на Ethereum L2) предлагает высокочастотные ценовые обновления напрямую от бирж и маркет-мейкеров. У Pyth цена публикуется в ончейн-среду не постоянно, а по подписке (consumer pull model) – это позволяет иметь сотни источников, но ставит задачу доверия к самим паблишерам. Тем не менее, Pyth уже используется для второстепенных фидов (на тот же Mango, к слову, фид MNGO шел через Pyth). Другой проект – API3 (Airnode) – продвигает идею первичных оракулов: когда сами поставщики данных (биржи, агрегаторы) размещают свои API на блокчейне, минуя посредников. Это снижает количество звеньев, потенциально повышая надёжность (но тут вопрос, насколько сами поставщики децентрализованы – чаще всего нет). MakerDAO в 2023 году выделила свой oracle-подразделение в отдельную компанию Chronicle Labs, которая намерена коммерциализировать наработки Maker (оракулы для DAI) и предоставить их другим протоколам. Их упор – на верифицируемость: использование криптографических доказательств правильности данных, чтобы не приходилось слепо доверять узлам. Chainlink не стоит на месте – в roadmap у них Proof-of-Reserve (специальные оракулы для подтверждения резервов стейблкоинов и wrapped-активов), активное развитие межсетевого протокола CCIP (для передачи данных и сообщений между блокчейнами) и упомянутая система staking+slashing, чтобы узлы были экономически мотивированы не халатно относиться к работе. Все это снижает вероятность случайных сбоев и медленных реакций.
Подводя итог, современные подходы к митигации можно свести к простой мысли: избыточность и проверки. Никто больше не полагается на единичный показатель. Чем больше независимых подтверждений получает протокол о том, что цена верна, тем безопаснее. Это достигается комбинацией технологий (разные оракулы, встроенные AMM, задержки, мониторинг). Полностью убрать оракулы (как централизованные сущности) из DeFi пока не удалось, но ряд проектов экспериментирует с “oracle-less” концепциями, где возможно. В остальных случаях задача – сделать системы стойкими к неправильным данным (resilient to oracle failures). К этому призывают аудиторы и исследователи безопасности: аудит смарт-контрактов теперь обязательно включает раздел “Oracle & Price Feed Analysis”, где проверяется, учтены ли описанные выше меры. Некоторые DAO нанимают специальные Risk Officer или команды, следящие за качеством оракулов и рыночной конъюнктурой, чтобы вовремя предлагать изменения параметров (например, снижение LTV для опасных активов). Митигация oracle-рисков стала коллективным делом сообщества, где участвуют и разработчики инфраструктуры (Chainlink и др.), и сами протоколы, и даже пользователи (которые могут голосовать за соответствующие пропосалы в DAO).
Выводы и рекомендации
Оракулы остаются одним из ключевых системных рисков DeFi. Несмотря на прогресс в технологиях (таких как Chainlink) и горькие уроки прошлых атак, полностью устранить угрозу манипуляции данными невозможно. Каждый новый эксплойт подтверждает: доверие к внешней информации – уязвимость по умолчанию. В то же время, без оракулов немыслимо большинство DeFi-приложений. Это своеобразный “орокульный трилемма”: нужно обеспечить безопасность, децентрализацию и актуальность данных одновременно, что крайне сложно. Ниже суммируем основные выводы и дадим рекомендации разным участникам экосистемы:
-
Для DAO и управляющих сообществ: при листинге новых залоговых активов или запуске продукта учитывайте oracle-risks наравне с техническими рисками. Требуйте от команд обоснования: откуда берётся цена, что будет при экстремальных рынках, не сможет ли злоумышленник этим сыграть. Желательно иметь комитет по рискам, который мониторит здоровые параметры протокола (например, ежедневные отчёты о отклонении цен, объёмах торгов базовых активов и т.д.). В решениях управления закладывайте консерватизм: не принимайте в залог токены с низкой ликвидностью или собственные governance-токены, без крайней необходимости. Если принимаете – ставьте очень низкое максимальное кредитное плечо (LTV) и высокие штрафы при ликвидации. Рассмотрите возможность страхования от экстремальных случаев (через DeFi-страховки либо создание резервного фонда).
-
Для команд разработчиков DeFi-протоколов: на этапе дизайна архитектуры уделите особое внимание модулю оракула. Используйте несколько источников цены, по возможности – независимых. Внедряйте sanity-check логику: любые необычные изменения цены должны хотя бы логироваться, а лучше – временно блокировать чувствительные действия до дополнительной проверки. Планируйте систему управления такими паузами (в идеале – через мультисиг или быстрое голосование DAO, чтобы не было единоличного контроля, но и не затягивалось решение). Обязательно покройте тестами и симуляциями сценарии oracle-failure: что если цена придёт = 0? = 100x внезапно? Проверьте, нет ли где-то в коде предположения о границах цен, которое может вызвать сбой (переполнение, деление на ноль и т.п.). Привлекайте аудиторов с экспертизой в экономической безопасности, не ограничивайтесь только проверкой кода. И, конечно, интегрируйте проверенные решения: Chainlink или аналоги там, где возможно, вместо самодельных костылей. Если пишете свой оракул – проведите отдельный аудит этого компонента. Учтите опыт других: публичные пост-мортемы (Scream, Mango, Inverse и т.д.) – бесценный источник информации о том, чего не стоит делать.
-
Для аудиторов и исследователей безопасности: развивайте методики анализа оракульных рисков. При аудите смарт-контрактов всегда проверяйте: какой оракул используется, есть ли fallback, что происходит при экстремальных значениях. Рекомендуйте заказчикам внедрять описанные выше best practices (мультифиды, лимиты, паузы, мониторинг). Особое внимание уделяйте тестированию с флеш-кредитами и манипуляциями цен – сейчас существуют инструменты для симулирования подобных атак, используйте их. Пишите публичные отчеты и кейсы: сообщество должно учиться на ошибках. Помните, что безопасность DeFi – это не только формальная верификация, но и оценка экономической устойчивости. Если протокол идеален в коде, но у него заложена финансовая дырка через оракул – это такой же критичный баг, и аудит должен на это указывать.
-
Будущие угрозы и развитие: по мере роста DeFi мы можем ожидать появления новых видов атак на оракулы. Например, атаки на сами сети оракулов (DDoS на узлы Chainlink, попытки подкупа валидаторов) – пока их не было, но в теории крупные игроки могут пробовать. Также появление все большего числа реальных активов on-chain (Real World Assets) потребует оракулов для курсов, процентных ставок, индексов – здесь риски еще выше, т.к. манипуляции могут исходить из офлайн-мир (подделка отчетности, сговор оценщиков). DAO, входящие в RWA, должны быть особо осторожны в выборе источников данных и юридических гарантий. Ещё одна зона внимания – кросс-чейн оракулы и мосты: данные, передаваемые между сетями, по сути выполняют роль оракула состояния другой цепи. В истории уже были взломы мостов на сотни миллионов, и компрометация кросс-чейн сообщения может аналогично привести к неверным данным (пример: взлом моста может передать ложную информацию о заверенной сумме средств). Развитие стандартов вроде Chainlink CCIP и LayerZero направлено на решение этой проблемы, но аудиторам стоит рассматривать мосты также с точки зрения oracle-risk.
Вывод: оракулы – жизненно важный компонент DeFi, и обращаться с ними надо соответственно. Нельзя рассматривать оракул как «черный ящик» или данность: это такая же часть протокола, которая должна проектироваться, тестироваться и защищаться на всех уровнях. Лучшей стратегией будет принцип Defense in Depth: даже если один слой данных скомпрометирован, другой поймает проблему. DeFi-сообщество уже многое усвоило: переход на агрегаторы вроде Chainlink, отказ от отдельных уязвимых практик. Однако успех отрасли в будущем во многом зависит от способности решить «оракульную проблему». Необходимо продолжать исследования, делиться знаниями и инвестировать в новые технологии оракулов. Только так децентрализованные финансы смогут обеспечить и автономность, и доверие – от кода смарт-контрактов до данных, на которых этот код основывается. Повышенное внимание к оракулам – залог того, что истории вроде Scream или Mango не повторятся, или по крайней мере будут вовремя локализованы, не подрывая доверие ко всей экосистеме. Каждый участник – от разработчика до инвестора DAO – несёт часть ответственности за это, и вооружившись лучшими практиками, DeFi-сообщество сможет превратить оракулы из “слабого звена” в прочный фундамент новой финансовой архитектуры.
Источники: Использованы открытые аналитические отчёты, в том числе CertiK, исследования Chainalysis, материалы CryptoSlate, Unchained и других изданий для описания конкретных инцидентов, а также официальные комментарии участников (Marc Zeller, Andre Cronje и др.).
评论 (0)