Блокчейн изначально спроектирован как замкнутая система. Узлы подтверждают транзакции и данные в блоках через механизмы консенсуса. Любая информация, записываемая в блокчейн, должна быть независимо проверена узлами сети. Такая структура обеспечивает безопасность и согласованность системы, но также означает, что блокчейн не может самостоятельно получать доступ к внешним сетям.
С технической точки зрения смарт-контракты функционируют в среде виртуальной машины и могут считывать только данные, уже находящиеся в блокчейне: балансы счетов, записи транзакций или состояния других контрактов. Данные из интернета или реального мира, если они не внесены в блокчейн, недоступны смарт-контрактам напрямую.
Такое устройство — это осознанный выбор в пользу безопасности. Если бы блокчейн позволял смарт-контрактам свободно обращаться к внешним источникам данных, узлы не смогли бы проверить достоверность этих данных, и механизм консенсуса потерял бы смысл. Поэтому блокчейн ограничивает себя проверяемой, но замкнутой средой данных.
Другими словами, блокчейн может гарантировать достоверность данных внутри цепочки, но не обеспечивает автоматическое попадание данных из реального мира в блокчейн. Это первая дилемма данных, с которой сталкивается блокчейн на уровне приложений.
Когда разработчики начинают создавать on-chain приложения, проблемы замкнутой структуры проявляются всё сильнее. Многие финансовые приложения требуют получения данных в реальном времени, например цен активов, процентных ставок или рыночных индексов. Однако смарт-контракты не могут запрашивать информацию с внешних серверов через API, как традиционные приложения.
Это ограничение создаёт ряд ключевых сложностей:
Децентрализованные протоколы торговли и кредитные платформы зависят от актуальных цен для определения условий ликвидации, но сам блокчейн не хранит внешние рыночные цены.
Страховые протоколы требуют подтверждения задержки рейса или соответствия погодных условий определённым критериям — такие данные существуют только в системах реального мира.
Некоторые финансовые продукты должны выполняться в определённые моменты времени или при определённых рыночных условиях, но узлы блокчейна не отслеживают изменения в реальном мире.
Без механизма безопасной передачи внешних данных в блокчейн многие Web3 приложения не могут функционировать полноценно. Инновационные сценарии, такие как DeFi, прогнозные рынки и on-chain страхование, сложно реализовать.
Ораклы созданы именно для решения этой задачи и стали базовой инфраструктурой. Основная задача оракла — переносить off-chain данные в блокчейн и предоставлять их смарт-контрактам так, чтобы они могли быть проверены и использованы блокчейном.
Оракловые системы выполняют несколько ключевых функций:
В экосистеме Web3 ораклы уже стали критически важной инфраструктурой. Кредитные протоколы используют ценовые ораклы для запуска ликвидаций; протоколы деривативов требуют актуальных цен для расчёта доходности; системы стейблкоинов используют ораклы для мониторинга стоимости обеспечивающих активов.
Ораклы открывают окно данных для блокчейна. Благодаря им замкнутая on-chain среда взаимодействует с реальным миром, и блокчейн превращается из системы учёта транзакций в платформу для сложных экономических процессов.