Оракулы Chainlink и Pyth: тест задержки цен

Самая неприятная поломка в DeFi часто выглядит не как «протокол взломали». Пользователь просто открывает позицию по бессрочному фьючерсу, видит одну цену, нажимает кнопку — и получает исполнение заметно хуже.

Оракулы Chainlink и Pyth: тест задержки цен

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

Поэтому сравнение задержки оракулов Chainlink и Pyth — не спор о том, чья архитектура «современнее». Это вопрос пользовательского опыта и риска: насколько свежая цена попадёт в смарт-контракт именно тогда, когда протокол принимает решение о сделке, залоге или ликвидации.

Я посмотрел на эту разницу с практической стороны: не как на набор красивых слов вроде push, pull и low latency, а как на выбор для конкретного DeFi-юзкейса. И тут нет универсального победителя. Есть протоколы, которым нужна стабильная и широко проверенная ценовая инфраструктура, и есть продукты, где цена, пришедшая несколько секунд назад, уже может быть не ценой, а исторической справкой.

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

Push и pull: разница, которую пользователь обычно не видит

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

У Chainlink и Pyth разные привычки в том, как эти данные оказываются в сети.

Классические ценовые фиды Chainlink используют push-модель. Сеть операторов узлов собирает и агрегирует данные, а затем отправляет обновлённую цену в блокчейн. Но делает это не бесконечно и не с каждой микросекундой движения рынка. Обновление срабатывает при одном из двух условий:

  • цена отклонилась от предыдущего значения сильнее заданного порога;
  • истёк установленный временной интервал, heartbeat.

Типичный порог отклонения может составлять 0,5%, а heartbeat у отдельных фидов растягивается от нескольких минут до 3600 секунд. Это не означает, что Chainlink «всегда опаздывает на час». Если рынок быстро движется и пересекает порог, новое значение придёт раньше. Но архитектурно здесь заложен разумный компромисс: сеть не должна платить за запись каждой мелкой рыночной вибрации в блокчейн.

Pyth устроен иначе. Его базовый подход — pull-модель, то есть получение данных по запросу. Котировки постоянно публикуются в Pythnet примерно каждые 300 мс, а на Solana — примерно каждые 400 мс. Но в целевую сеть цена не пушится автоматически с той же частотой. Когда пользователь или смарт-контракт собирается выполнить действие, он приносит в транзакцию свежий ценовой апдейт и записывает его в сеть именно в этот момент.

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

Вот компактная карта различий.

ПараметрChainlink Price FeedsPyth Network
Базовая модель доставкиPush: фид обновляется заранее в блокчейнеPull: свежая цена приносится в транзакцию по запросу
Триггер обновленияОтклонение от цены или heartbeatДействие пользователя или контракта
Частота исходных публикацийЗависит от конкретного фида и условий обновленияОколо 300 мс в Pythnet и 400 мс в Solana
Расходы на обновлениеПостоянные расходы сети на публикацию данныхРасход возникает при использовании свежей цены
Типичная зона комфортаКредитование, стейблкоины, крупные DeFi-протоколыДеривативы, торговые продукты, быстрые сети
Дополнительный сигнал качества ценыЗависит от реализации фида и протоколаConfidence interval в каждом обновлении

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

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

Тест скорости обновления оракулов: где заканчиваются красивые миллисекунды

В разговоре про задержку обычно сразу появляется число: Pyth обновляет цены каждые 300–400 мс, а Chainlink — «раз в несколько секунд или минут». Формально это близко к правде, но для выбора оракула такой формулировки мало.

Нужно разделить путь цены на несколько этапов:

1. Рынок меняет цену. На бирже или у маркет-мейкера котировка уже сдвинулась.

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

3. Оракул формирует подписанное обновление. На этой стадии Pyth особенно силён в частоте.

4. Данные попадают в целевой блокчейн. Здесь вступает в игру модель push или pull.

5. Смарт-контракт использует цену. И это единственная точка, которая напрямую влияет на пользователя.

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

У классических Chainlink Price Feeds другая логика. Цена уже находится в блокчейне до того, как пользователь нажал кнопку. Это удобно для протоколов, которым не нужно ловить каждое движение: например, для кредитного рынка, где залог пересчитывается регулярно, но не должен подстраиваться под каждый тик централизованной биржи.

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

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

Что меняется для кредитования, обменов и деривативов

Один и тот же оракул может быть отличным решением в одном продукте и создавать лишнюю сложность в другом.

Для себя я бы раскладывал выбор так:

  • Денежные рынки и криптодепозиты. Здесь важнее предсказуемость, широкая интеграция и понятная модель риска. Цена нужна надёжная и регулярно обновляемая, но субсекундная реакция редко становится главным UX-преимуществом.
  • Стейблкоины и токенизированные активы. В приоритете качество индекса, устойчивость к выбросам и понятные правила в нестандартных условиях рынка. Частота — лишь одна из переменных.
  • DEX с простым обменом активов. Оракул часто служит защитой от манипуляций и оценкой справедливой цены, а не двигателем исполнения каждого ордера. Здесь сначала смотрят на механику самого пула ликвидности.
  • Перпетуалы и торговля с плечом. Свежесть котировки становится частью продукта. Чем активнее рынок и чем меньше допустимый спред, тем полезнее pull-модель и низколатентные данные.
  • Ликвидационные движки. Нужен не просто быстрый фид, а согласованная логика: возраст цены, ширина доверительного диапазона, время блока, правила частичного закрытия позиции.
Для лендинга задержка в несколько секунд может быть инженерным компромиссом. Для перпетуала те же секунды становятся частью цены риска.

Точность ценовых оракулов DeFi — это не только одна цифра

Пользователь обычно спрашивает: «Какая цена точнее?» Но цена не приходит из воздуха, и у Chainlink vs Pyth Network разница начинается именно с источников.

Pyth получает данные от первичных издателей: институциональных маркет-мейкеров, бирж и торговых компаний. Среди публично упоминаемых участников — Jane Street, CBOE, Binance, Wintermute. Логика понятная: если организация сама активно формирует или видит рыночную ликвидность, она может отправлять цену в оракул почти на уровне исходного потока.

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

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

Нельзя честно сказать, что один подход автоматически безопаснее или децентрализованнее другого. У Pyth сильная сторона — прямой доступ к первичным источникам и высокая скорость публикаций. Его компромисс — заметная роль крупных институциональных издателей. У Chainlink сильная сторона — сеть независимых операторов и долгий опыт работы на критической инфраструктуре DeFi. Его компромисс — классические push-фиды не проектировались под каждый высокочастотный сценарий.

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

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

Если сравнивать только классические Chainlink Price Feeds и базовую механику Pyth, Pyth выглядит очевидным выбором для низкой задержки. Но современное сравнение было бы неполным без Chainlink Data Streams.

Это отдельный продукт Chainlink для низколатентных приложений, появившийся в 2023 году. Здесь Chainlink тоже использует pull-модель: данные формируются и подписываются вне сети, а затем запрашиваются приложением в нужный момент. То есть главный архитектурный разрыв между двумя экосистемами уже не такой жёсткий, как его иногда рисуют в обзорах двухлетней давности.

Практический вывод простой: нельзя смотреть на логотип «Chainlink» и автоматически предполагать медленные пуш-апдейты. Нужно открыть документацию конкретного протокола и выяснить, какой именно тип данных он подключил.

Я бы проверял четыре вещи:

1. Используется ли обычный Price Feed или Data Streams. Это фундаментально меняет сценарий задержки.

2. Какой максимальный возраст цены принимает контракт. Интерфейс может показать «актуальные» данные, но контракт работать с допустимо более старым значением.

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

4. Где происходит действие. L1, быстрая L2 и Solana дают совершенно разный итоговый опыт даже при одном и том же оракуле.

Это очень похоже на обновление сложной системы: нельзя судить о результате по одной галочке «ПО обновлено». Настройки, порядок действий и обработка ошибок решают не меньше. В автомобильном мире тот же принцип хорошо разобран через пять критических ошибок при обновлении программного обеспечения автомобиля: сама технология не избавляет от последствий небрежной интеграции. В DeFi ставка выше — плохо встроенный поток данных может влиять не на мультимедиа, а на баланс пользователя.

По объёму защищаемой стоимости в 2026 году Chainlink остаётся намного крупнее: около $33,1 млрд в более чем 500 протоколах. У Pyth — около $3,08 млрд и свыше 300 протоколов. Это не просто рейтинг в таблице. Большой объём защищаемой стоимости означает длинную историю интеграций, проверок, инцидентов, доработок и доверия команд, которые не могут позволить себе экспериментировать с залогами пользователей.

Но из этой цифры не следует, что Chainlink автоматически рациональнее для любого нового приложения. Pyth особенно заметен в сегменте деривативов и в экосистеме Solana — там, где скорость публикации данных и удобство pull-апдейтов хорошо совпадают с ожиданиями продукта.

У этих систем разные сильные стороны:

Вопрос продуктаЧто чаще даёт ChainlinkЧто чаще даёт Pyth
Нужна зрелая инфраструктура для крупного DeFi-протоколаШирокая история интеграций и большой объём защищаемой стоимостиМожет потребовать отдельной оценки покрытия конкретных активов
Нужны быстрые котировки для торговли с плечомData Streams закрывает низколатентный сценарий при соответствующей интеграцииНативная ориентация на частые обновления и pull-доставку
Нужен простой сценарий чтения цены в контрактеОбычный фид уже хранит значение ончейнНужно организовать доставку свежего апдейта в транзакции
Нужен сигнал неопределённости рынкаЗависит от конфигурации и логики приложенияConfidence interval доступен в ценовом обновлении
Продукт работает в нескольких сетяхСильное и привычное покрытие в DeFiДоступность в 100+ сетях через Wormhole

Я намеренно не называю здесь стоимость газа «победой» одной из сторон. Pull-модель Pyth экономит постоянные расходы на обновления, потому что цена записывается тогда, когда востребована. Но в периоды паники именно пользователи и боты начинают массово запрашивать апдейты. Реальная стоимость зависит от сети, нагрузки, конструкции транзакции и того, кто оплачивает обновление — сам трейдер, протокол или его исполнители.

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

Какой оракул выбрать — и что проверить пользователю

Если вы не пишете смарт-контракт, а выбираете DeFi-продукт, вопрос звучит не «Pyth или Chainlink?». Он звучит иначе: подходит ли ценовая инфраструктура под риск, который мне предлагают взять.

Я бы насторожился, если торговый интерфейс обещает мгновенное исполнение, но не объясняет, откуда берётся цена и как защищает пользователя от устаревшего фида. На быстрых рынках красивый UX без нормальной оракульной механики — это не бесшовность, а просто спрятанное трение, которое проявится в худший момент.

Для команды протокола мой вердикт такой:

  • берите классические Chainlink Price Feeds, когда продукту нужны зрелость, широкая поддержка и предсказуемая ончейн-цена без усложнения каждого вызова;
  • смотрите на Pyth, когда строите быстрый торговый UX, работаете в Solana-экосистеме или хотите получать свежий апдейт непосредственно внутри действия пользователя;
  • оценивайте Chainlink Data Streams наравне с Pyth, если ваша задача — низколатентные деривативы: старое противопоставление «медленный Chainlink против быстрого Pyth» здесь уже не работает;
  • не делайте выбор по одному числу в миллисекундах — проверяйте возраст цены в контракте, финальность целевой сети и правила реакции на волатильность.

Оракул — это не невидимая техническая деталь под капотом. В DeFi он определяет, насколько честно приложение видит рынок в момент, когда пользователь рискует своими деньгами. Chainlink даёт проверенную инфраструктурную опору, Pyth — очень быстрый и удобный для pull-сценариев поток данных. Хороший продукт не выбирает один бренд «навсегда». Он подбирает способ доставки цены под конкретный юзкейс — и честно показывает пользователю, где заканчивается скорость интерфейса и начинается реальность блокчейна.

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

В чем главная разница между push и pull моделями оракулов?
При push-модели (Chainlink) цена обновляется в блокчейне автоматически при достижении порога отклонения или временного интервала. При pull-модели (Pyth) свежая цена доставляется в сеть непосредственно в момент совершения транзакции пользователем или контрактом.
Почему цена в интерфейсе может отличаться от цены исполнения сделки?
Это происходит из-за задержки между рыночным движением, обновлением данных в оракуле и моментом записи транзакции в блокчейн. Если оракул не успел обновиться, протокол может использовать устаревшую цену, что создает риск для пользователя.
Что такое confidence interval в Pyth и зачем он нужен?
Это доверительный интервал, который показывает степень уверенности участников сети в текущей цене. Протоколы могут использовать его для ограничения рискованных операций или увеличения спредов при высокой рыночной неопределенности.
Какой оракул лучше выбрать для торговли с плечом?
Для таких продуктов важна свежесть котировок, поэтому лучше подходят решения с pull-моделью, такие как Pyth или Chainlink Data Streams, которые позволяют прикладывать актуальную цену непосредственно к торговому действию.
Безопаснее ли Chainlink, чем Pyth, из-за большего объема защищаемой стоимости?
Большой объем защищаемой стоимости (TVL) у Chainlink свидетельствует о долгой истории интеграций и доверии, однако безопасность конкретного фида зависит от количества источников данных, настроек контракта и того, как система реагирует на волатильность.