Открыть сервис

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

Блокчейн-оракул — это сервис или механизм, который передаёт данные из внешних по отношению к блокчейну источников (офчейн) в смарт-контракты, исполняющиеся внутри блокчейна (ончейн). Оракулы решают фундаментальную проблему блокчейнов: их изолированность от внешнего мира. Смарт-контракты не могут самостоятельно получать информацию о ценах активов, погоде, результатах спортивных матчей или показаниях датчиков — для этого требуются доверенные посредники, которыми и выступают оракулы.

История и предпосылки появления

Концепция оракулов возникла вместе с развитием смарт-контрактов на платформе Ethereum (запущена в 2015 году). Первые смарт-контракты могли оперировать только данными, уже записанными в блокчейн, что резко ограничивало их применимость. Для создания децентрализованных приложений (dApps), таких как децентрализованные биржи, страховые сервисы или прогностические рынки, потребовался надёжный способ получения внешних данных.

В 2014 году Виталик Бутерин, сооснователь Ethereum, в своих работах описал проблему «оракула» как необходимость введения в блокчейн достоверной информации извне. Первые реализации были централизованными: один сервер или организация предоставляли данные. Однако это создавало «единую точку отказа» и риск цензуры или манипуляции. В ответ на это в 2017 году была запущена сеть Chainlink, ставшая первой децентрализованной сетью оракулов, которая агрегирует данные от множества независимых узлов (операторов).

Классификация оракулов

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

По источнику данных

  • Программные (Software Oracles): работают с цифровыми данными из интернета — курсы валют, котировки акций, погодные данные, результаты спортивных событий, информация из баз данных. Это самый распространённый тип.
  • Аппаратные (Hardware Oracles): получают данные из физического мира через датчики, RFID-метки, сканеры штрих-кодов, устройства Интернета вещей (IoT). Например, оракул может передать показания датчика температуры в смарт-контракт по страхованию урожая.
  • Инсентив-оракулы (Incentive-based Oracles): используют механизмы стимулирования (например, токены) для получения данных от участников сети. Пример — Augur, где пользователи делают ставки на исход событий, а правильные ответы вознаграждаются.

По направлению передачи

  • Входящие (Inbound Oracles): передают данные из внешнего мира в блокчейн. Это стандартный и наиболее востребованный тип.
  • Исходящие (Outbound Oracles): передают данные из блокчейна во внешние системы. Например, смарт-контракт может дать команду на разблокировку IoT-замка после получения оплаты.

По степени доверия

  • Централизованные (Centralized Oracles): управляются одним субъектом. Просты в реализации, но уязвимы для манипуляций и взлома. Используются в тестовых или низкорисковых приложениях.
  • Децентрализованные (Decentralized Oracles): используют сеть независимых узлов для сбора и верификации данных. Повышают надёжность и устойчивость к цензуре. Пример — Chainlink, который агрегирует данные от нескольких операторов и использует консенсус для определения истинного значения.
  • Консенсусные (Consensus-based Oracles): подмножество децентрализованных, где данные считаются достоверными только после достижения согласия между несколькими источниками или узлами.

По способу взаимодействия

  • Pull-оракулы (Oracles on demand): смарт-контракт запрашивает данные у оракула в момент выполнения. Оракул возвращает ответ.
  • Push-оракулы (Oracles that push): оракул самостоятельно отправляет данные в блокчейн по расписанию или при наступлении события. Используется для обновления ценовых фидов.

Устройство и принцип работы

Типичная система оракула состоит из трёх компонентов:

  1. Смарт-контракт-клиент: код, развёрнутый в блокчейне, который инициирует запрос данных.
  2. Внешний источник данных: API, база данных, веб-сайт или физический датчик.
  3. Узел оракула (Oracle Node): сервер, который подписан на события в блокчейне, получает запрос, обращается к внешнему источнику, обрабатывает данные (например, подписывает их криптографически) и отправляет результат обратно в блокчейн.

В децентрализованных сетях, таких как Chainlink, процесс выглядит сложнее:

  • Запрос: смарт-контракт отправляет запрос, содержащий спецификацию данных (например, «цена ETH/USD») и адрес контракта для ответа.
  • Аукцион: сеть оракулов проводит аукцион, выбирая группу операторов для выполнения запроса.
  • Сбор данных: каждый выбранный оператор обращается к нескольким независимым источникам (например, к API бирж Coinbase, Binance, Kraken).
  • Агрегация: операторы возвращают свои значения в блокчейн. Смарт-контракт-агрегатор вычисляет среднее значение или медиану, отбрасывая выбросы.
  • Доставка: итоговое значение передаётся в запрашивающий смарт-контракт.

Проблема оракула

Основная проблема, которую решают децентрализованные оракулы, — это «проблема оракула» (Oracle Problem). Она заключается в том, что блокчейн, будучи детерминированной системой, не может самостоятельно проверить достоверность данных из внешнего мира. Если оракул предоставит ложные данные, смарт-контракт выполнит некорректное действие (например, выплатит страховку по несуществующему событию). Поэтому доверие к оракулу становится критическим. Децентрализация и криптоэкономические стимулы (например, залог в токенах, который теряется при предоставлении ложных данных) призваны минимизировать этот риск.

Применение

Оракулы являются ключевым компонентом для многих категорий децентрализованных приложений:

  • Децентрализованные финансы (DeFi): получение точных ценовых фидов для обеспечения работы кредитных протоколов (Aave, Compound), децентрализованных бирж (Uniswap, SushiSwap) и стейблкоинов (MakerDAO).
  • Страхование: автоматические выплаты при наступлении страхового случая (например, задержка рейса, засуха, подтверждённая метеоданными).
  • Прогностические рынки: определение результатов событий (выборы, спортивные матчи) для выплаты выигрышей.
  • Игры и NFT: генерация случайных чисел (VRF — Verifiable Random Function) для розыгрышей, определения победителей, а также получение данных о внешних событиях для игр.
  • Цепочки поставок: отслеживание происхождения товаров с помощью аппаратных оракулов, фиксирующих перемещение и условия хранения.
  • Управление идентификацией: проверка подлинности документов или данных о личности через доверенные источники.

Примеры проектов

  • Chainlink: крупнейшая децентрализованная сеть оракулов. Предоставляет ценовые фиды, VRF, службы автоматизации и возможность подключения к любым API. Используется большинством проектов DeFi.
  • Band Protocol: децентрализованная сеть оракулов, построенная на Cosmos SDK. Ориентирована на высокую скорость и кросс-чейн совместимость.
  • Augur: децентрализованный прогностический рынок, где оракулы — это держатели токена REP, которые голосуют за исход событий.
  • UMA (Universal Market Access): протокол, использующий механизм «оптимистичных оракулов», где данные считаются верными, если никто не оспорил их в течение определённого времени.

Критика и ограничения

  • Централизация рисков: даже в децентрализованных сетях существует риск сговора операторов или манипуляции данными, если контроль над узлами сосредоточен в руках нескольких крупных игроков.
  • Затраты на газ: запрос данных через децентрализованные оракулы требует оплаты комиссий за транзакции в блокчейне, что может быть дорого для небольших операций.
  • Задержки: получение данных из внешнего мира и их подтверждение в блокчейне занимает время (от нескольких секунд до минут), что может быть критично для высокочастотных торговых стратегий.
  • Зависимость от внешних источников: оракулы сами зависят от надёжности API и веб-сайтов, которые могут быть взломаны или отключены.
  • Проблема «последней мили»: даже если данные доставлены в блокчейн, их корректность на стороне источника не гарантирована.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →