DeFi
Криптооракулы: инфраструктура, от которой зависит каждый DeFi-протокол
Кредитному DeFi-протоколу нужно знать текущую цену вашего залога, прежде чем он сможет ликвидировать вашу позицию. Блокчейны не могут получить эти данные самостоятельно. Именно этот пробел заполняют оракулы, и именно здесь произошли одни из крупнейших эксплойтов в истории DeFi.
Key takeaways
- Блокчейн — это детерминированная система.
- Оракул — это офчейн-сервис, который собирает внешние данные, подписывает их и отправляет в блокчейн в виде транзакции.
- Доминирующий ответ на проблему доверия — децентрализованная сеть оракулов.
- Некоторые протоколы предпочитают вообще не полагаться на внешние сети оракулов, а вместо этого считывают цену напрямую с он-чейн AMM.
- Эксплойты оракулов обошлись экосистеме DeFi в сотни миллионов долларов.
Кредитному DeFi-протоколу нужно знать текущую цену вашего залога, прежде чем он сможет ликвидировать вашу позицию. Блокчейны не могут получить эти данные самостоятельно. Именно этот пробел заполняют оракулы, и именно здесь произошли одни из крупнейших эксплойтов в истории DeFi.
Почему блокчейны не могут «видеть» внешний мир
Блокчейн — это детерминированная система. Каждый узел, выполняющий один и тот же код с одинаковыми входными данными, должен получить одинаковый результат. Если бы смарт-контракт мог отправить HTTP-запрос к API цен, разные узлы могли бы получить разные ответы в разное время, что нарушило бы консенсус. Поэтому блокчейн изолирован по своей конструкции: он может видеть только те данные, которые уже записаны в саму цепочку.
Это создаёт проблему для любого протокола, которому требуется информация из реального мира. Кредитному протоколу нужна цена залога заёмщика, чтобы понимать, когда запускать ликвидацию. Рынку прогнозов нужен исход события. Кросс-чейн мосту нужно знать, был ли депозит подтверждён в исходной цепочке. Ни один из этих данных не существует нативно в целевом блокчейне.
Что делает оракул
Оракул — это офчейн-сервис, который собирает внешние данные, подписывает их и отправляет в блокчейн в виде транзакции. Смарт-контракт читает эту транзакцию как источник истины. Основная проблема оракулов не техническая — отправить цену в цепочку тривиально. Проблема в доверии: как узнать, что данные точны, и как не допустить, чтобы оператор оракула манипулировал ими ради собственной выгоды за счёт пользователей протокола?
Единственный централизованный оракул, управляемый одной стороной, решает техническую проблему, но создаёт единую точку отказа и огромный конфликт интересов. Если оператор оракула может манипулировать сообщаемой ценой, он может занимать под завышенный залог или инициировать несправедливые ликвидации у честных заёмщиков и забирать штрафную комиссию.
Децентрализованные сети оракулов
Доминирующий ответ на проблему доверия — децентрализованная сеть оракулов. Множество независимых операторов узлов получают одни и те же данные из нескольких источников, агрегируют свои ответы (обычно вычисляя медиану) и отправляют консенсусное значение в цепочку он-чейн. Чтобы манипулировать результатом, потребовалось бы одновременно скомпрометировать большинство независимых узлов, что дорого и легко обнаруживается.
Chainlink, запущенный в 2019 году, стал самой широко используемой децентрализованной сетью оракулов. Он управляет набором контрактов «price feed» в Ethereum и многих других цепочках, каждый из которых поддерживается десятками независимых операторов узлов, стейкающих LINK в качестве залога против недобросовестного поведения. Фиды обновляются по «сердцебиению» (обычно каждый час) и всякий раз, когда цена отклоняется больше порогового значения (обычно 0,5%). Протоколы, включая Aave, token/" class="twl-coinlink">Compound и Synthetix, полагаются на фиды Chainlink в своей основной логике ликвидации. Данные о сети Chainlink отслеживаются на публичных эксплорерах и на собственной панели дата-фидов протокола.
Другие подходы включают network/" class="twl-coinlink">Pyth Network, который агрегирует данные напрямую от институциональных трейдинговых фирм и публикует фиды с чрезвычайно низкой задержкой, предназначенные для протоколов бессрочных фьючерсов, а также Band Protocol, который следует модели с несколькими узлами, похожей на Chainlink, но изначально построен на цепочках Cosmos. Панель DeFi Llama отслеживает общую заблокированную стоимость (TVL) в протоколах, использующих эти фиды, что даёт представление о том, что поставлено на карту, если фид будет скомпрометирован.
Цена он-чейн против цены оракула: TWAP
Некоторые протоколы предпочитают вообще не полагаться на внешние сети оракулов, а вместо этого считывают цену напрямую с он-чейн AMM. Uniswap V2 представил фид средневзвешенной по времени цены (TWAP), который мог читать внешний контракт: средняя цена за настраиваемый недавний период. Поскольку атакующему пришлось бы сдвигать цену и удерживать её на протяжении всего периода усреднения — дорогостоящая и заметная операция, — TWAP достаточно устойчив к манипуляциям через флэш-займы.
Недостаток — задержка. TWAP, усредняющий за тридцать минут, будет отставать от быстро движущегося рынка на тридцать минут, из-за чего кредитный протокол может использовать устаревшие цены залога во время флэш-краха. Протоколам приходится выбирать между актуальностью и устойчивостью к манипуляциям.
Эксплойты манипуляции оракулами
Эксплойты оракулов обошлись экосистеме DeFi в сотни миллионов долларов. Самый распространённый паттерн использует флэш-займ: занять крупную сумму в рамках одной транзакции, использовать её, чтобы сдвинуть цену на низколиквидном AMM, который кредитный протокол использует в качестве оракула, занять под завышенный залог и вернуть флэш-займ — всё это до того, как транзакция будет отменена. Поскольку всё происходит атомарно в рамках одного блока, у цены нет времени вернуться к норме. Атака прибыльна, если заём протокола превышает то, что атакующий может занять на открытом рынке.
Эксплойт Mango Markets в октябре 2022 года использовал вариант этого подхода, манипулируя ценой оракула токена MNGO, чтобы занять почти $116 миллионов у самого протокола Mango. Позднее атакующий подал предложение по управлению, предлагая вернуть большую часть средств в обмен на иммунитет от преследования — предложение, которое держатели токена протокола проголосовали принять.
Для протоколов в BNB Chain, Avalanche и Arbitrum, проблема оракулов приобрела кросс-чейн измерение. Мост, позволяющий пользователям перемещать ETH из Ethereum в Arbitrum, должен подтвердить, что депозит был сделан в Ethereum. Эта верификация сама по себе является проблемой оракула: целевая цепочка не может напрямую видеть состояние исходной цепочки.
Оптимистичные мосты предполагают, что перевод действителен, и предоставляют окно для оспаривания. ZK-мосты используют криптографические доказательства для подтверждения состояния исходной цепочки с математическими гарантиями. Последние более безопасны, но вычислительно затратны, поэтому большинство мостов в промышленной эксплуатации всё ещё используют ту или иную форму мультиподписи или аттестации комитетом, вновь вводя те предположения о доверии, которые децентрализованные сети оракулов были призваны устранить.
На что обращать внимание при оценке DeFi-протокола
Прежде чем взаимодействовать с любым кредитным или деривативным протоколом, стоит разобраться в устройстве его оракула. Ключевые вопросы: использует ли он децентрализованный фид или единственный источник? Каково минимальное число отчётов оракула, необходимых для обновления цены? Есть ли предохранитель, приостанавливающий заимствования, если цена движется аномально? Проходил ли код аудит у фирмы с опытом в области векторов атак на оракулы? methodology/”>странице методологии.
Часто задаваемые вопросы
Что такое блокчейн-оракул простыми словами?
Оракул — это сервис, который приносит внешние данные (например, текущую цену) в блокчейн, чтобы смарт-контракты могли их использовать. Блокчейн не может самостоятельно получать внешние данные, поэтому оракул выступает в роли проверенного посредника между внешним миром и цепочкой.
Почему смарт-контракт не может просто обратиться к API цен?
Блокчейны детерминированы: каждый узел, выполняющий один и тот же код, должен получить одинаковый результат. Вызов API вернул бы разные ответы в разное время или разным узлам, нарушив консенсус. Данные должны быть отправлены в цепочку в виде транзакции, прежде чем контракт сможет их прочитать.
Что такое атака на оракул через флэш-займ?
Флэш-займ позволяет атакующему занять огромную сумму в рамках одной транзакции без залога. Если протокол использует цену на небольшом AMM в качестве своего оракула, атакующий может использовать флэш-займ, чтобы сдвинуть эту цену, эксплуатировать протокол по манипулированной цене и вернуть заём — всё в рамках одного блока транзакций, не оставляя следов долга.
Является ли Chainlink единственной сетью оракулов?
Нет. Chainlink наиболее широко используется, но есть альтернативы: Pyth Network (оптимизирован для низкой задержки, используется протоколами бессрочных контрактов), Band Protocol (экосистема Cosmos) и Redstone (использующий pull-модель для экономии газа). Он-чейн TWAP от Uniswap также используется в качестве оракула некоторыми протоколами.
Источники
- Chainlink: что такое блокчейн-оракул? (документация Chainlink Labs)
- Разбивка TVL по оракулам — DeFi Llama
- Разбор эксплойта Mango Markets (Rekt News, октябрь 2022)
Эта статья предназначена исключительно для информационных и образовательных целей. Она не является финансовой консультацией или рекомендацией использовать какой-либо DeFi-протокол. Риск смарт-контрактов, риск манипуляции оракулами и регуляторная неопределённость применимы ко всем децентрализованным протоколам. Проведите собственное исследование перед внесением средств.


