crypto-folio

Понятно, практично, по делу

Сравнения и выбор·12 октября 2026 г.·10 мин

Протоколы оракулов в DeFi: критерии выбора и надежность

Оракул может быть децентрализованным, быстро обновлять данные и использовать несколько источников. Но ни один из этих признаков сам по себе не гарантирует, что цена будет пригодна для конкретного смарт-контракта.

Протоколы оракулов в DeFi: критерии выбора и надежность

Протоколы оракулов в DeFi: критерии выбора и надёжность

Для лендинга ошибка в оценке залога может обернуться безнадёжным долгом. Для деривативной площадки задержка обновления способна повлиять на ликвидации. А если протокол берёт цену из одного тонкого пула, флэш-займ может превратить этот пул в инструмент атаки.

Поэтому протоколы оракулов в DeFi стоит сравнивать не по одному обещанию о скорости или защищённости. Важны архитектура доставки данных, состав источников, правила обновления и поведение системы, когда рынок движется резко или часть инфраструктуры перестаёт работать.

Архитектурный выбор: Push против Pull

Смарт-контракт не может сам открыть сайт биржи и проверить цену. Оракул собирает внешние данные, формирует ценовое сообщение и делает его доступным приложению в блокчейне. Это можно организовать по Push- или Pull-модели.

В Push-модели оператор или сеть оракула публикует обновление в блокчейне. Частота зависит от настроек фида: обновление может запускаться по расписанию, то есть Heartbeat, и при отклонении цены от заданного порога, Deviation Threshold. Поэтому публикация возможна и тогда, когда цена не менялась существенно: наступило время очередного Heartbeat. Газ за транзакцию публикации обычно оплачивает её отправитель, а не каждый пользователь протокола. При этом расходы на работу фидов могут быть частью общей экономики интеграции, и их нельзя свести к правилу «платят только за изменение цены».

В Pull-модели данные готовятся вне блокчейна, а обновление запрашивается для конкретного действия. Пользователь или приложение передаёт подписанное сообщение, а контракт проверяет его и использует цену в той же транзакции. Такая схема может сократить число отдельных публикаций ончейн, но требует правильно встроить проверку данных в каждое чувствительное к цене действие. Если интеграция не проверяет свежесть сообщения или допускает неподходящий источник, сама архитектура проблему не решит.

Chainlink использует Push-фиды и предлагает также Data Streams, работающие по Pull-модели. Pyth известен доставкой подписанных ценовых сообщений, которые приложение может запросить при выполнении операции. RedStone предлагает разные варианты доставки, поэтому его не стоит без оговорок записывать в одну колонку: конкретная схема зависит от выбранного продукта и интеграции.

ПараметрPush-модельPull-модель
Как данные попадают в контрактОракул публикует обновления ончейнПриложение передаёт сообщение с данными при запросе
Когда происходит обновлениеПо Heartbeat и/или при достижении порога отклоненияКогда приложение запрашивает данные для операции
Где возникают расходыНа публикации и поддержке фида; газ транзакции платит её отправительНа передаче и проверке сообщения в контексте операции
Что нужно проверить в интеграцииЧастоту обновлений, пороги, доступность и поведение при устаревшем фидеПроверку подписи, срок актуальности и корректную обработку сообщения
Где модель может быть удобнаВ приложениях, которым нужна доступная ончейн-котировкаВ приложениях, где обновление удобно привязать к конкретной операции

Выбор оракула для смарт-контракта начинается не с рейтинга поставщиков, а с вопроса, как именно приложение использует цену. Если лендингу нужна котировка для расчёта стоимости залога и ликвидации, важны стабильная доступность фида, понятные правила обновления и корректная реакция на устаревшие данные. Если площадка обрабатывает деривативные операции, может быть важна возможность получить актуальное сообщение непосредственно перед исполнением транзакции.

При этом нельзя считать, что Push автоматически означает надёжность, а Pull автоматически означает скорость. В каждой модели есть настройки и допущения, от которых зависит результат. И именно интеграция определяет, что произойдёт, если цена не обновилась вовремя.

Архитектура доставки отвечает на вопрос, как цена попадает в контракт. Надёжность зависит ещё и от того, что контракт делает с этой ценой.

Безопасность и защита от манипуляций через флэш-займы

Один из очевидных источников риска появляется, когда контракт принимает цену из одного пула с ограниченной ликвидностью. Внутри одной транзакции злоумышленник может использовать заёмный капитал, резко изменить соотношение активов в пуле и попытаться заставить приложение принять искажённую цену. Если контракт использует её для расчёта залога, выдачи кредита или ликвидации, ошибка оракула становится ошибкой самого протокола.

Здесь важно различать оракул и источник цены. Контракт может получать данные через сложную инфраструктуру, но если в основе оценки лежит недостаточно репрезентативный рынок, многоступенчатая доставка не сделает котировку безопасной. И наоборот, несколько независимых источников помогают только тогда, когда агрегация действительно учитывает расхождения между ними, а не просто собирает похожие данные из связанных рынков.

TWAP, средневзвешенная по времени цена, усложняет кратковременную манипуляцию: атакующему нужно поддерживать искажённое значение в течение выбранного периода. Но это не универсальная защита. Результат зависит от глубины рынка, длины окна усреднения и свойств актива. Для малоликвидного токена или резкого рыночного движения даже усреднённая цена может отставать от актуальной или оставаться уязвимой.

При оценке безопасности полезно выяснить, как устроены:

  • Источники данных. Это независимые рынки и участники или несколько каналов, фактически опирающихся на одну и ту же ликвидность?
  • Агрегация. Как система обращается с выбросами и сильным расхождением между источниками?
  • Свежесть данных. Как контракт определяет, что цена устарела, и что делает после этого?
  • Специальные активы. Как оцениваются ликвидные стейкинг-токены и другие активы, чья цена может отходить от базового актива?
  • Аварийный режим. Можно ли приостановить операции или ограничить их, если фид ведёт себя необычно?

Последний пункт часто выпадает из обсуждения, хотя оракул работает внутри более крупной системы. Автоматическая пауза, лимиты на заём и консервативная логика ликвидаций не заменяют качественные данные. Зато они могут ограничить ущерб, когда данные внезапно перестали отражать рынок.

Единой общепринятой оценки потерь DeFi именно от атак на оракулы нет. Суммы зависят от того, какие инциденты относят к этой категории, как разделяют сбои источника, ошибки интеграции и манипуляции рынком. Поэтому точное число без прозрачного определения методики даёт ложное ощущение сопоставимости. Для выбора инфраструктуры полезнее разбирать конкретные сценарии: откуда взялась неверная цена, как долго она сохранялась и какие ограничения не сработали.

Chainlink, Pyth и Chronicle часто ставят рядом как конкурирующие решения. Но сравнивать их только по общей сумме защищаемых активов или заявленной скорости недостаточно. У проектов различаются модели доставки, наборы интеграций и области, для которых их выбирают.

Chainlink широко используется в DeFi, в том числе в кредитных приложениях. Его привычные ценовые фиды работают по Push-модели. При оценке конкретного фида важны состав источников, Heartbeat и порог отклонения: слово «Chainlink» само по себе не сообщает, как именно настроена цена для конкретного актива и сети. Chainlink Data Streams, в свою очередь, используют Pull-модель. Их нельзя представлять как Push-фиды только потому, что оба продукта принадлежат одной экосистеме.

Pyth строит доставку на ценовых сообщениях от участников рынков, включая биржи и маркет-мейкеров. Такой подход часто рассматривают для приложений, которым важны частые обновления и работа с деривативами. Но характеристики продукта нельзя автоматически переносить на все сети и интеграции: следует проверять доступность нужного рынка, условия использования данных и то, как контракт проверяет сообщение.

Chronicle связан с экосистемой Maker/Sky и использует собственную модель доставки данных. Для протокола, уже встроенного в эту экосистему, глубина интеграции может быть важнее широты списка поддерживаемых приложений. Но и здесь нужно смотреть на конкретный фид и сценарий: название поставщика не отвечает за архитектурные решения приложения.

ПротоколМодель и особенностиЧто имеет смысл оценивать
ChainlinkPush-фиды; Data Streams используют Pull-подходНастройки нужного фида, источники, доступность в сети и условия интеграции
PythЦеновые сообщения от участников рынка, доставка по запросу приложенияПокрытие нужного рынка, актуальность сообщения и обработку данных контрактом
ChronicleИнфраструктура с заметной связью с экосистемой Maker/SkyСоответствие нужной экосистеме и устройство конкретного фида
RedStoneНесколько вариантов доставки и продуктовКакая именно модель используется и кто отвечает за доставку в выбранной схеме

TVS, или Total Value Secured, может дать представление о масштабе использования, но это не универсальная мера надёжности. Значения из разных источников могут считаться по разным правилам, а заявленная самим проектом оценка и внешняя оценка не обязательно прямо сопоставимы. Без подтверждённой методики не стоит объяснять расхождение конкретными причинами или делать вид, будто один показатель даёт исчерпывающий ответ.

Практический выбор проще сформулировать так: сначала определить, какие данные нужны контракту и с какой задержкой он может их принимать, затем изучить конкретную интеграцию. Для кредитного рынка одни требования предъявляются к доступности и поведению при устаревшем фиде. Для деривативов на первом плане могут оказаться частота обновления, путь доставки сообщения и правила исполнения ликвидаций. Универсального победителя здесь нет.

Почему оракулы теряют точность

Сбой оракула не всегда означает, что кто-то взломал сеть поставщика. Иногда проблема начинается с того, что цена обновляется реже, чем меняется рынок. Иногда источник недостаточно ликвиден. В других случаях контракт продолжает работать со старым значением, хотя должен был отказаться от операции или перейти в ограниченный режим.

Во время резких рыночных движений это особенно заметно. Фид может обновляться по Heartbeat, но интервал окажется слишком длинным для конкретного актива. Порог отклонения тоже имеет значение: если он установлен так, что обновление происходит лишь после значительного движения, контракт некоторое время будет видеть цену, от которой рынок уже ушёл. Слишком частые обновления, в свою очередь, могут увеличить нагрузку на инфраструктуру и расходы на публикацию.

Отдельный класс проблем связан с активами, цена которых обычно следует за базовым токеном, но не обязана совпадать с ним в каждый момент. Ликвидный стейкинг-токен, например, может торговаться с премией или дисконтом к ETH. Если приложение считает его равным ETH без подходящей логики оценки, ошибка возникает не в передаче цены, а в трактовке актива.

При разборе инцидента полезно пройти по цепочке от конца к началу:

1. Какую операцию выполнил контракт: выдал кредит, оценил залог или ликвидировал позицию?

2. Какую цену он использовал и насколько свежими были данные?

3. Из каких источников сформировалась эта котировка?

4. Проверял ли контракт отклонение, возраст сообщения и доступность альтернативного сценария?

5. Были ли лимиты, пауза или другие ограничения, способные остановить операции до исправления ситуации?

Такой разбор помогает отделить сбой поставщика от ошибки проектирования. В реальном приложении это различие важно: смена оракула не исправит контракт, который не проверяет свежесть цены или неверно оценивает сложный актив.

Задержка и стоимость газа в DeFi-инфраструктуре

Сравнение скорости обновления цен оракулов имеет смысл только при одинаковом понимании задержки. Одно дело, сколько времени занимает получение сообщения вне блокчейна, другое, когда транзакция с этим сообщением включится в блок и как быстро контракт завершит операцию. Показатель задержки продукта сам по себе не гарантирует, что пользователь увидит тот же результат в конкретной сети.

По этой причине нельзя напрямую противопоставлять заявленную скорость Pyth Lazer, RedStone Bolt и Chainlink Data Streams без уточнения условий измерения. Data Streams используют Pull-модель, хотя Chainlink также предлагает Push-фиды. Для практического сравнения нужно смотреть, что именно измеряется: время формирования данных, их доставки приложению, проверки подписи или исполнения транзакции.

С газом действует похожее правило. В Push-модели публикации создают ончейн-транзакции, расходы на которые обычно несёт отправитель. В Pull-модели данные могут передаваться вместе с пользовательской операцией, поэтому отдельная публикация может не требоваться. Но это не означает, что Pull всегда обходится дешевле: стоимость зависит от сети, частоты запросов, размера сообщения, способа проверки и того, кто платит за транзакцию. В L2 эти параметры тоже меняются в зависимости от конкретной сети и текущей нагрузки.

Для проектирования важен не абстрактный счёт за один фид, а полная стоимость выбранной схемы. Сколько активов надо поддерживать? Как часто приложение обращается к цене? Кто оплачивает обновление и проверку? Что происходит, если пользователь передал устаревшее сообщение? Ответы на эти вопросы позволяют сравнить варианты без попытки вывести универсальную цену для всех DeFi-протоколов.

Скорость тоже нужно соотносить с продуктом. Для кредитования сверхбыстрые данные не обязательно дадут ощутимое преимущество, если логика протокола обновляет параметры реже. Для деривативной площадки задержка может сильнее влиять на исполнение и ликвидации, однако даже там важны глубина рынка, механика транзакций и защита от неблагоприятного исполнения. Оракул не может отменить разницу между ценой сообщения и ценой, по которой операция фактически прошла.

Перед интеграцией

Перед тем как подключать оракул, стоит обсуждать не только имя поставщика и заявленную скорость, но и конкретный путь данных. Откуда приходит цена, как она агрегируется, как проверяется её актуальность и кто оплачивает публикацию или передачу сообщения? Отдельно нужно выяснить, что делает приложение при отсутствии обновления, расхождении источников или резком движении рынка.

Сценарии отказа полезно проверять на уровне самого протокола. Что произойдёт, если цена устарела? Можно ли продолжать выдавать кредиты? Как ограничиваются ликвидации, если котировка временно расходится с рынком? Есть ли возможность остановить операции и кто имеет на неё право? Ответы должны следовать из кода и устройства системы, а не только из презентации поставщика.

Хорошо, когда сложные вещи объясняют человеческим языком, как, например, в проекте о популяризации медицины без сложной терминологии. В мире оракулов работает та же логика: если вам не могут ясно объяснить архитектуру и источники данных, это повод внимательно изучить документацию и реализацию. За красивым обещанием защищённости всегда должна стоять понятная цепочка решений.

Депозит не становится безопаснее от того, что у оракула известное имя или высокая скорость. Надёжность складывается из качества данных, настроек, интеграции и способности протокола ограничить ущерб, когда рынок или инфраструктура ведут себя не по плану.

Частые вопросы

В чем разница между Push и Pull моделями оракулов?
В Push-модели оракул самостоятельно публикует обновления в блокчейне по расписанию или при изменении цены. В Pull-модели данные доставляются по запросу приложения, которое передает подписанное сообщение в момент выполнения транзакции.
Почему использование цены из одного пула ликвидности опасно?
Один пул с низкой ликвидностью может быть подвергнут манипуляции через флэш-займ, что позволит злоумышленнику искусственно исказить цену. Если смарт-контракт использует такие данные для расчетов, это может привести к ошибкам в оценке залога или ликвидациях.
Что такое TWAP и защищает ли он от манипуляций?
TWAP — это средневзвешенная по времени цена, которая усложняет кратковременные манипуляции, так как атакующему нужно удерживать искаженное значение в течение определенного периода. Однако это не универсальная защита, так как эффективность метода зависит от глубины рынка и длины окна усреднения.
Как проверить надежность оракула перед интеграцией?
Следует изучить источники данных, методы агрегации, правила обработки устаревших цен и наличие аварийных режимов, таких как автоматическая пауза операций. Также важно оценить, как протокол учитывает специфику активов, например, ликвидных стейкинг-токенов.
Является ли показатель TVS (Total Value Secured) гарантией надежности оракула?
Нет, TVS отражает масштаб использования, но не является универсальной мерой надежности. Методики расчета этого показателя могут различаться, поэтому он не дает исчерпывающего ответа о качестве защиты конкретной интеграции.
Текст: Инна Прохорова, Крипто-скептик и краш-тестер сервисов