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

В момент спокойного рынка это почти не чувствуется. В момент резкого движения разница между ценой на интерфейсе, ценой в оракуле и ценой исполнения превращается в ликвидацию, которую человек искренне считает ошибкой приложения.
Поэтому сравнение задержки оракулов 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 Feeds | Pyth 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 не стоит списывать из-за Data Streams
Если сравнивать только классические 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 ставка выше — плохо встроенный поток данных может влиять не на мультимедиа, а на баланс пользователя.
Экономика безопасности: масштаб Chainlink и фокус Pyth
По объёму защищаемой стоимости в 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-сценариев поток данных. Хороший продукт не выбирает один бренд «навсегда». Он подбирает способ доставки цены под конкретный юзкейс — и честно показывает пользователю, где заканчивается скорость интерфейса и начинается реальность блокчейна.