Криптовалюты · Продвинутый уровень · Чтение: 8 мин

Оракулы: цена, которой доверяет контракт

Отличайте рыночные цены от входных данных контракта и анализируйте устаревшие, малоликвидные или несоответствующие эталонные данные.

Оракулы: цена, которой доверяет контракт — Авторская учебная иллюстрация. Без текущих котировок и заявлений о доходности.
Авторская учебная иллюстрация. Без текущих котировок и заявлений о доходности.

Граница между кодом и наблюдением

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

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

Проверьте спецификацию потока данных

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

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

Единицы измерения удобно проверять отдельным расчётом. Если источник возвращает целое число 12 345 000 000 с восемью десятичными знаками, цена равна 123,45, а не 12 345 000 000. Затем нужно учесть разрядность самого токена и направление пары. Цена A в единицах B и цена B в единицах A взаимно обратны; одинаковая подпись «цена» не делает их взаимозаменяемыми.

Ликвидность — часть качества исходных данных

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

Рассмотрим токен с котируемой ценой $10, но глубиной спроса вблизи неё лишь $5 000. Оценка обеспечения в $1 миллион по цене небольшой сделки не доказывает, что ликвидаторы смогут получить $1 миллион. Оракул может правильно сообщать установленную опорную цену, тогда как модель риска переоценивает возможную выручку. Качество данных и способность ликвидировать позицию — связанные, но разные проблемы.

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

Проверяйте стресс-сценариями и обеспечение, и долг

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

Допустим, обеспечение стоит $12 000, долг составляет 6 000 единиц первоначально по $1 каждая, а условный порог ликвидации — 75%. Начальный коэффициент здоровья равен 1,50. Если обеспечение падает на 25% до $9 000, а единицы долга дорожают до $1,10, коэффициент становится $9 000 × 0,75 ÷ $6 600, примерно 1,023. Казавшийся комфортным запас почти исчерпан.

Исследуйте интеграцию, а не только поставщика

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

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

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

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

КРАТКАЯ ПРОВЕРКА

Усвоили основную мысль?

Может ли корректная опорная цена всё же завышать поступления при ликвидации?

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