Оракул — поставщик данных из внешнего мира в блокчейн.

Источники внешнего мира

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

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

Человеческие оракулы подразумевают, что данные вводит человек.

Описание проблемы

Оракул можно рассматривать как способ связи блокчейна с реальным миром.

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

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

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

Консенсус оракулов

Один источник информации может быть небезопасным, если он не имеет должный авторитет или высокий рейтинг. Тем не менее, чтобы держаться подальше от контроля информации и иметь большую безопасность, можно использовать несколько оракулов. Например, получать информацию от десяти оракулов и только если данные 6 из 10 оракулов совпадают, то принимать их. Это и есть консенсус оракулов.