﻿---
title: "Блокчейн-оракул"
description: "Блокчейн-оракул предоставляет контрактам аутентифицированные утверждения о данных, которые невозможно вывести из детерминированного состояния сети; безопасность зависит от всей цепочки источников, отчетов, доставки, проверки и потребления."
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Блокчейн-оракул

> Только в образовательных целях; не является инвестиционным советом или инвестиционной рекомендацией. Инвестиции могут привести к убыткам.

<a id="answer"></a>

## Краткий ответ

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

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

Децентрализацию следует оценивать отдельно на каждом уровне. Множество подписантов могут использовать один API, биржу, облачного провайдера, оператора или администратора. Свежая подписанная медиана все равно может относиться к неверной паре или масштабу, отражать неликвидный рынок либо быть небезопасной для размера операции потребителя. За идентичность, единицы, статус, временные метки, доступность L2, лимиты риска, резервный режим и восстановление отвечает потребитель данных.

<a id="mechanism"></a>

## Как это работает

1. Зафиксируйте сеть и блок, контракт и действие потребителя, точный адрес фида или прокси и идентификатор фида, версию реализации, пару базового и котируемого активов, число десятичных разрядов или показатель степени, часы работы рынка и стоимость под риском.
2. Проследите всю цепочку доверия от явления и торговых площадок через поставщиков данных, агрегацию источников, подписантов или кворум, доставку, ончейн-проверку, управление прокси и логику потребителя; отдельно проверьте независимость источников, операторов, инфраструктуры и администраторов.
3. Декодируйте фактически развернутый интерфейс и отчет. Проверьте идентичность фида, подпись или доказательство и домен, последовательность или раунд, знаковое значение, статус или доверительный интервал, время источника, время ончейн-обновления, защиту от повтора, поведение при ошибке и состояние обновления контракта.
4. Нормализуйте единицы один раз и явно проверяйте диапазон, знак и время. Различайте время наблюдения или публикации источником, формирования отчета, включения в исходную сеть, финализации ретрансляции, обновления в целевой сети и время блока потребителя.
5. Применяйте зависящие от действия ограничения `maxAge`, отклонения, доверия и сравнения источников. В поддерживаемых развертываниях L2 отдельно проверяйте состояние секвенсора и период ожидания после восстановления; для составного значения ограничивайте свежесть самой старой обязательной зависимостью.
6. Сравнивайте ориентир с исполнимой глубиной рынка и оценивайте стоимость манипуляции или подкупа относительно риска потребителя при выдаче займа, выпуске актива, ликвидации, торговле или расчете. Спотовую цену AMM и построение TWAP рассматривайте с учетом конкретного пула и версии.
7. Определите нормальный, деградированный, приостановленный режимы и восстановление отдельно для каждого действия; по возможности сохраняйте погашение долга и внесение обеспечения, отслеживайте источники и конфигурацию, отрабатывайте отсутствующие, устаревшие, неверные и манипулированные отчеты, а после восстановления сверяйте все затронутые остатки и действия.

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

<a id="example"></a>

## Разобранные примеры

- **Порог ликвидации.** Позиция содержит `10 ETH` обеспечения, цена оракула равна `3,000 USD/ETH`, долг — `18,000 USD`, а порог ликвидации — `75%`. Стоимость обеспечения равна `30,000 USD`, LTV — `60%`, а `healthFactor = 10 * 3,000 * 0.75 / 18,000 = 1.25`. Цена срабатывания равна `18,000 / (10 * 0.75) = 2,400 USD/ETH`. При `2,300 USD/ETH` фактор здоровья равен `0.9583333333`, а долг к обеспечению — `78.2608695652%`: позицию можно ликвидировать, но номинальная стоимость обеспечения `23,000 USD` все еще превышает долг без учета бонуса, комиссий и результата исполнения.
- **Ошибка единиц.** Исходное значение `250,000,000,000` с `8 decimals` означает `2,500 USD`. Если вместо этого разделить его на `10^18`, получится `0.00000025 USD`, то есть цена будет занижена в `10^10` раз. Корректная подпись и свежая временная метка не исправляют ошибку единиц у потребителя.
- **Выбор агрегации.** Наблюдения `[99, 100, 100, 101, 160]` имеют медиану `100` и среднее арифметическое `112`, что на `12%` выше медианы. В этом учебном наборе медиана устойчива к одному высокому выбросу, но если все пять поставщиков зависят от одного скомпрометированного API и сообщают `130`, медиана также будет равна `130`.
- **Свежесть по действию.** При `consumerClock = 1,800,000,000` отчет с `sourceTimestamp = 1,799,998,200` имеет возраст `age = 1,800 seconds`. Новый заем с `maxAge = 900 seconds` отклонит его из-за превышения на `900 seconds`; путь погашения с `maxAge = 3,600 seconds` примет его с запасом `1,800 seconds`. Один отчет может быть опасен для увеличения риска, но приемлем для его сокращения.

<a id="risks"></a>

## Риски

- Выбрана неверная сеть, среда, реализация или развертывание.
- Выбран неверный прокси, агрегатор, идентификатор фида, актив или версия контракта.
- Перепутано направление базового и котируемого активов или валюта измерения.
- Не совпадают десятичные разряды, показатель степени, формат фиксированной точки, знак, округление или единицы.
- Принимается нулевое, отрицательное, выходящее за область, переполненное или усеченное значение.
- Принимается отсутствующая, нулевая, будущая, перенесенная или неверно определенная временная метка.
- Ограничение свежести слишком мягкое для актива и действия.
- Ограничение свежести слишком жесткое, вызывает отказ в обслуживании или блокирует снижение риска.
- Периодическое обновление или порог отклонения принимается за гарантию уровня сервиса.
- Игнорируются закрытие рынка, корпоративное действие, потеря привязки, сбой площадки или семантика перенесенных данных.
- Несколько поставщиков зависят от одного API, биржи, облака, оператора, пути ключей или методологии.
- Нарушаются порог подписантов, кворум, хранение ключей, аутентификация отчета, домен или защита от повтора.
- Правила агрегации, взвешивания, выбросов, доверия или выбора источников непригодны.
- Рынок источника неликвиден, содержит фиктивные сделки, фрагментирован, устарел или поддается манипуляции при защищаемом объеме.
- Спотовая или короткая TWAP-манипуляция, контроль нескольких блоков, порядок, цензура либо MEV изменяют входное значение.
- Сбой поставщика, ретранслятора, газа, перегрузка, реорганизация или остановка сети задерживают доставку.
- Не учтены состояние секвенсора L2, период восстановления, часы межсетевой ретрансляции или зависимость от финальности.
- Незаметно меняются прокси, администратор, набор подписантов, конфигурация, миграция, пауза или статус устаревания фида.
- Резервный источник устарел, коррелирован, имеет иной масштаб, циклическую зависимость или включается небезопасным открытым либо всеобъемлющим закрытым отказом.
- Риск потребителя превышает стоимость манипуляции или подкупа, а мониторинг, лимиты, пауза, восстановление, ликвидация и сверка безнадежного долга не срабатывают.

<a id="misconceptions"></a>

## Распространенные заблуждения

- **«Оракул предсказывает будущее».** Большинство оракулов аутентифицируют наблюдения, отчеты, доказательства или разрешенные утверждения о заданном времени и объекте.
- **«Подписанные или ончейн-данные объективно истинны».** Аутентификация и консенсус доказывают соблюдение правил, но не экономическую корректность внешнего факта.
- **«Больше узлов автоматически означает независимую децентрализацию».** Источники, операторы, инфраструктура, ключи и управление могут оставаться коррелированными.
- **«Самое свежее значение — справедливая исполнимая цена».** Свежесть не подтверждает направление котировки, единицы, доверие, ликвидность или исполнимую глубину.
- **«Надежный поставщик устраняет интеграционный риск потребителя».** Приложение по-прежнему отвечает за идентичность развертывания, декодирование, свежесть, шлюзы L2, риск, режимы отказа и восстановление.

<a id="related"></a>

## Связанные темы

- [Атаки на оракулы](/ru/crypto/oracle-attack/)
- [Устаревшие цены оракула](/ru/crypto/oracle-price-staleness/)
- [TWAP-оракул](/ru/crypto/oracle-twap/)

<a id="sources"></a>

## Источники

- [Oracles](https://ethereum.org/developers/docs/oracles/) - Ethereum.org (дата обращения: 2026-08-13)
- [Chainlink Data Feeds](https://docs.chain.link/data-feeds) - Chainlink Documentation (дата обращения: 2026-08-13)
- [Data Feeds API Reference](https://docs.chain.link/data-feeds/api-reference) - Chainlink Documentation (дата обращения: 2026-08-13)
- [Developer Responsibilities: Market Integrity and Application Code Risks](https://docs.chain.link/data-feeds/developer-responsibilities) - Chainlink Documentation (дата обращения: 2026-08-13)
- [Selecting Quality Data Feeds](https://docs.chain.link/data-feeds/selecting-data-feeds) - Chainlink Documentation (дата обращения: 2026-08-13)
- [How to Use Real-Time Data in EVM Contracts](https://docs.pyth.network/price-feeds/core/use-real-time-data/pull-integration/evm) - Pyth Developer Hub (дата обращения: 2026-08-13)
- [Uniswap v2 Core](https://app.uniswap.org/whitepaper.pdf) - Uniswap (дата обращения: 2026-08-13)
- [SC03:2026 Price Oracle Manipulation](https://scs.owasp.org/sctop10/SC03-PriceOracleManipulation/) - OWASP Smart Contract Security (дата обращения: 2026-08-13)

Source: https://wiki.fcontext.com/ru/crypto/oracle/index.mdx
