Что такое оракулы
Оракул это система, которая получает и верифицирует события извне блокчейна и передает эти данные в блокчейн для использования в смарт-контрактах (или наоборот). Оракулы критически необходимы для смарт-контрактов, потому что смарт-контракты строго детерминированны. Информация должна поступать в смарт-контракт по определённому каналу, способному подтвердить её достоверность.
Есть несколько видов оракулов, обеспечивающих тот или иной вид связи:
- программные получают данные из интернета или из других блокчейнов;
- аппаратные получают данные от различных датчиков (RFID метки, умный дом, лично мне на ум сразу
приходит применение в логистике и IoT);
Пример: в смарт-контракт нужно передать данные о температуре воздуха. Можно взять данные из интернета через программного оракула, или из датчика IoT через аппаратного оракула. *IoT Internet of Things.
- входящие извне блокчейна в смарт-контракт;
- исходящие из смарт-контракта на какой-то ресурс;
Иногда используются консенсусные оракулы. Несколько оракулов независимо получают данные, а потом по какому-то алгоритму определяют выходные данные.
Пример для чего это нужно: 3 оракула получают курс BTC/USD с Binance, BitMex и Coinbase, а на выход передают среднее значение. Так сглаживаются незначительные расхождения между биржами.
Web3
Рассказывая об оракулах и их реализациях нельзя пройти мимо Web3, концепции, ради которой они и придумывалось. Изначально Web3 был идеей семантической паутины, где каждый сайт размечен метаданными, чтобы улучшить взаимодействие c поисковыми системами. Однако современная идея Web3 сеть, состоящая из dApps. А децентрализованным приложениям нужны оракулы.
Создать оракула самостоятельно можно (и, в некоторых случаях, нужно), но есть некоторые часто использующиеся оракулы (к примеру, генератор случайных чисел), поэтому рентабельно использование оракул-проектов. Два главных (на данный момент) проекта, разрабатывающие оракулов Band и Chainlink.
Band Protocol
Band Protocol работает на алгоритме консенсуса dPoS (что это?) и поставщики данных отвечают за подлинность деньгами, а не только репутацией.
В экосистеме проекта есть три типа пользователей:
- Поставщики данных, которые независимо работают над безопасной передачей данных извне блокчейна в цепочку блоков. Держатели токенов делают ставку на поставщиков данных, чтобы предоставить им право передавать данные в протокол.
- Разработчики dApp, которые платят небольшие сборы за использование оракула.
- Держатели токенов Band, которые голосуют за поставщиков данных. Проголосовав своими токенами за поставщика, они получают вознаграждение из денег, выплачиваемых dApps.
Среди оракулов, предлагаемых 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, которая сейчас стремительно растёт.
Ресурсы, данные которых можно получить через оракула от Chainlink.
Заключение
Оракулы хорошая идея для получения данных из централизованных ресурсов в блокчейн, и я буду внимательно следить за её развитием. Однако если говорить о взаимной совместимости разных блокчейнов, есть другие решения, в том числе парачейны (ещё более многообещающая технология и тема моего следующего поста).
Для тех, кто хочет копнуть глубже: Band Docs, Chainlink Docs.