В данный момент блокчейны сильно изолированны от внешних источников информации — как централизованных ресурсов, так и других блокчейнов. Чтобы разные цепочки блоков были совместимы и легко обменивались данными между собой (и с внешними ресурсами) можно использовать оракулов.

image

Что такое оракулы


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

Есть несколько видов оракулов, обеспечивающих тот или иной вид связи:

  • программные — получают данные из интернета или из других блокчейнов;
  • аппаратные — получают данные от различных датчиков (RFID метки, умный дом, лично мне на ум сразу приходит применение в логистике и IoT);

    Пример: в смарт-контракт нужно передать данные о температуре воздуха. Можно взять данные из интернета через программного оракула, или из датчика IoT через аппаратного оракула. *IoT — Internet of Things.

  • входящие — извне блокчейна в смарт-контракт;
  • исходящие — из смарт-контракта на какой-то ресурс;

Иногда используются консенсусные оракулы. Несколько оракулов независимо получают данные, а потом по какому-то алгоритму определяют выходные данные.

Пример для чего это нужно: 3 оракула получают курс BTC/USD с Binance, BitMex и Coinbase, а на выход передают среднее значение. Так сглаживаются незначительные расхождения между биржами.

Web3


Рассказывая об оракулах и их реализациях нельзя пройти мимо Web3, концепции, ради которой они и придумывалось. Изначально Web3 был идеей семантической паутины, где каждый сайт размечен метаданными, чтобы улучшить взаимодействие c поисковыми системами. Однако современная идея Web3 — сеть, состоящая из dApps. А децентрализованным приложениям нужны оракулы.

webevolution

Создать оракула самостоятельно можно (и, в некоторых случаях, нужно), но есть некоторые часто использующиеся оракулы (к примеру, генератор случайных чисел), поэтому рентабельно использование оракул-проектов. Два главных (на данный момент) проекта, разрабатывающие оракулов — Band и Chainlink.

Band Protocol


Band Protocol работает на алгоритме консенсуса dPoS (что это?) и поставщики данных отвечают за подлинность деньгами, а не только репутацией.

В экосистеме проекта есть три типа пользователей:

  • Поставщики данных, которые независимо работают над безопасной передачей данных извне блокчейна в цепочку блоков. Держатели токенов делают ставку на поставщиков данных, чтобы предоставить им право передавать данные в протокол.
  • Разработчики dApp, которые платят небольшие сборы за использование оракула.
  • Держатели токенов Band, которые голосуют за поставщиков данных. Проголосовав своими токенами за поставщика, они получают вознаграждение из денег, выплачиваемых dApps.

band

Среди оракулов, предлагаемых Band «из коробки»: время взлётов/посадок самолётов, карта погоды, курсы криптовалют, курсы золота и акций, информация о блоках биткоина, средняя цена газа, объемы на криптобиржах, генератор случайных чисел, Yahoo Finance, HTTP Status Code.

Кстати, среди инвесторов Band легендарный венчурный фонд Sequoia и Binance.

Chainlink


В целом, Chainlink и Band очень похожи — и в дефолтных решениях, и в возможностях разработки. Chainlink проще в работе, в нём нет голосования за провайдеров информации, а Band более гибкий, потому что использует Cosmos SDK и является 100% open source.

В данный Chainlink значительно популярнее, в списке партнёров проекта Google Cloud, Binance, Matic Network и Polkadot. Также Chainlink сконцентрировался на оракулах для сферы DeFi, которая сейчас стремительно растёт.

image
Ресурсы, данные которых можно получить через оракула от Chainlink.

Заключение


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

Для тех, кто хочет копнуть глубже: Band Docs, Chainlink Docs.