Практические гайды
Почему Ethereum не может сам проверить курс доллара, погоду или результат матча, как оракулы передают данные смарт-контрактам и что происходит при ошибке источника.
7 разделов · начните с короткого ответа или выберите нужный
Сам по себе не узнаёт. Смарт-контракт Ethereum видит информацию, доступную внутри его блокчейна, и результаты вызовов других контрактов. Но он не может открыть сайт биржи, прочитать прогноз погоды или спросить банк о курсе валют так, как это делает обычная программа в интернете.
Сам по себе не узнаёт. Смарт-контракт Ethereum видит информацию, доступную внутри его блокчейна, и результаты вызовов других контрактов. Но он не может открыть сайт биржи, прочитать прогноз погоды или спросить банк о курсе валют так, как это делает обычная программа в интернете.
Чтобы программа в блокчейне могла использовать факт из внешнего мира, нужен посредник для передачи данных. Такой механизм называют оракулом.
Тут возникает парадокс: блокчейн придуман для того, чтобы не полагаться на единственного администратора. А откуда тогда брать сведения, которых в блокчейне нет?
Представим тысячу компьютеров, которые выполняют один и тот же контракт. Все должны прийти к одинаковому результату.
Если каждый из них в произвольный момент запросит «текущую цену ETH», ответы могут различаться. У кого-то сайт недоступен, кто-то получил цену на несколько секунд позже, кому-то показали ошибку.
Одинаковый код с разными ответами даст разные результаты. Поэтому контракт обычно читает значение, уже опубликованное в согласованном состоянии сети. Оно попадает туда через отдельный процесс, а не через произвольный HTTP-запрос от каждого узла.
Это и есть задача оракула: доставить сведения в форму, с которой могут работать смарт-контракты.
Проще представить электронное табло на вокзале. Поезда существуют вне табло, и табло не создаёт расписание. Оно только показывает людям информацию, полученную из внешней системы.
В DeFi похожий механизм нужен, например, чтобы оценить залог при выдаче кредита:
Оракул не определяет, сколько пользователь должен банку или протоколу. Он предоставляет входные данные; решение принимает код приложения.
Существуют разные архитектуры: один уполномоченный поставщик, несколько операторов, собственные механизмы протокола. Называть любой оракул «полностью децентрализованным» нельзя.
4 сентября 2017 года был опубликован документ ChainLink: A Decentralized Oracle Network. Его авторы сформулировали проблему зависимости смарт-контрактов от внешних сервисов и предложили использовать сеть оракулов вместо единственного поставщика.
Это была публикация проекта решения, а не дата, с которой все приложения Ethereum вдруг начали пользоваться готовой сетью Chainlink. Развёртывание технологий и их распространение — отдельная история.
Позднее в различных реализациях получили распространение потоки данных (data feeds): контракты считывают опубликованные значения, а данные формируются при участии набора операторов. Важна не магия «общего интернета в блокчейне», а проверяемая процедура передачи конкретного значения.
Подробнее в историческом событии публикации документа.
Представим безупречный автоматический сейф. Он честно закрывается, когда табло показывает, что залог подешевел. Но что, если само табло ошиблось?
Поэтому распределённость данных уменьшает некоторые риски, но не отменяет их. Кредитному приложению необходимо учитывать качество и свежесть сведений, а не только правильность смарт-контракта.
Без оракулов программа может надёжно вести внутренний счёт. Но когда речь заходит о залоге, погодной страховке или других событиях внешнего мира, возникает дополнительный уровень доверия.
В статье как устроены займы в DeFi разберём, что произойдёт, когда контракт оценивает чужой залог по таким данным. А история появления DeFi объясняет, почему эту задачу пришлось решать.
Сверено 19 октября 2026 года:
Понятия
Словарь — короткие объяснения понятий, встречающихся в материале.
История
История криптовалют — события и перемены по датам.
Обучение
Уроки с нуля — разберитесь в основных понятиях по порядку.
Другие темы
Все объяснения — статьи и разборы.
Выберите интересную тему и продолжайте разбираться.
Сам по себе не узнаёт. Смарт-контракт Ethereum видит информацию, доступную внутри его блокчейна, и результаты вызовов других контрактов. Но он не может открыть сайт биржи, прочитать прогноз погоды или спросить банк о курсе валют так, как это делает обычная программа в интернете.
Представим тысячу компьютеров, которые выполняют один и тот же контракт. Все должны прийти к одинаковому результату.
Проще представить электронное табло на вокзале. Поезда существуют вне табло, и табло не создаёт расписание. Оно только показывает людям информацию, полученную из внешней системы.
4 сентября 2017 года был опубликован документ ChainLink: A Decentralized Oracle Network. Его авторы сформулировали проблему зависимости смарт-контрактов от внешних сервисов и предложили использовать сеть оракулов вместо единственного поставщика.
Представим безупречный автоматический сейф. Он честно закрывается, когда табло показывает, что залог подешевел. Но что, если само табло ошиблось?
Без оракулов программа может надёжно вести внутренний счёт. Но когда речь заходит о залоге, погодной страховке или других событиях внешнего мира, возникает дополнительный уровень доверия.
Показано 6 из 13. Все ссылки и источники — в раскрываемом списке ниже.
Хотите разобраться с нуля?
Пройдите бесплатный курс «Входим в криптомир» →