В данный момент блокчейны сильно изолированны от внешних источников информации — как централизованных ресурсов, так и других блокчейнов. Чтобы разные цепочки блоков были совместимы и легко обменивались данными между собой (и с внешними ресурсами) можно использовать оракулов.
Оракул — это система, которая получает и верифицирует события извне блокчейна и передает эти данные в блокчейн для использования в смарт-контрактах (или наоборот). Оракулы критически необходимы для смарт-контрактов, потому что смарт-контракты строго детерминированны. Информация должна поступать в смарт-контракт по определённому каналу, способному подтвердить её достоверность.
Есть несколько видов оракулов, обеспечивающих тот или иной вид связи:
Иногда используются консенсусные оракулы. Несколько оракулов независимо получают данные, а потом по какому-то алгоритму определяют выходные данные.
Пример для чего это нужно: 3 оракула получают курс BTC/USD с Binance, BitMex и Coinbase, а на выход передают среднее значение. Так сглаживаются незначительные расхождения между биржами.
Рассказывая об оракулах и их реализациях нельзя пройти мимо Web3, концепции, ради которой они и придумывалось. Изначально Web3 был идеей семантической паутины, где каждый сайт размечен метаданными, чтобы улучшить взаимодействие c поисковыми системами. Однако современная идея Web3 — сеть, состоящая из dApps. А децентрализованным приложениям нужны оракулы.
Создать оракула самостоятельно можно (и, в некоторых случаях, нужно), но есть некоторые часто использующиеся оракулы (к примеру, генератор случайных чисел), поэтому рентабельно использование оракул-проектов. Два главных (на данный момент) проекта, разрабатывающие оракулов — Band и Chainlink.
Band Protocol работает на алгоритме консенсуса dPoS (что это?) и поставщики данных отвечают за подлинность деньгами, а не только репутацией.
В экосистеме проекта есть три типа пользователей:
Среди оракулов, предлагаемых Band «из коробки»: время взлётов/посадок самолётов, карта погоды, курсы криптовалют, курсы золота и акций, информация о блоках биткоина, средняя цена газа, объемы на криптобиржах, генератор случайных чисел, Yahoo Finance, HTTP Status Code.
Кстати, среди инвесторов Band легендарный венчурный фонд Sequoia и Binance.
В целом, Chainlink и Band очень похожи — и в дефолтных решениях, и в возможностях разработки. Chainlink проще в работе, в нём нет голосования за провайдеров информации, а Band более гибкий, потому что использует Cosmos SDK и является 100% open source.
В данный Chainlink значительно популярнее, в списке партнёров проекта Google Cloud, Binance, Matic Network и Polkadot. Также Chainlink сконцентрировался на оракулах для сферы DeFi, которая сейчас стремительно растёт.
Ресурсы, данные которых можно получить через оракула от Chainlink.
Оракулы — хорошая идея для получения данных из централизованных ресурсов в блокчейн, и я буду внимательно следить за её развитием. Однако если говорить о взаимной совместимости разных блокчейнов, есть другие решения, в том числе парачейны (ещё более многообещающая технология и тема моего следующего поста).
Для тех, кто хочет копнуть глубже: Band Docs, Chainlink Docs.
Что такое оракулы
Оракул — это система, которая получает и верифицирует события извне блокчейна и передает эти данные в блокчейн для использования в смарт-контрактах (или наоборот). Оракулы критически необходимы для смарт-контрактов, потому что смарт-контракты строго детерминированны. Информация должна поступать в смарт-контракт по определённому каналу, способному подтвердить её достоверность.
Есть несколько видов оракулов, обеспечивающих тот или иной вид связи:
- программные — получают данные из интернета или из других блокчейнов;
- аппаратные — получают данные от различных датчиков (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.
kofas
Спасибо за статью. Ранее про веб3 я мимокрокодилом читал там status.im/ru
поэтому у меня вопрос к Вам: а про них у Вас мнение есть?
Говорят, что там несколько русскояз.разрабов трудятся давно, а судя по [поскипано] имхо все успешно… пока…
anonymous Автор
Про Status слышал. Есть работающее приложение, с одной стороны, но на рынке мессенджеров большая конкуренция, даже среди приватных. А основная аудитория всё-таки готова пользоваться и не приватными мессенджерами. Хороший проект для тех, кому важна анонимность (подтверждаемая открытым исходным кодом).
kofas
JekaMas
Это кошелек, с возможностью добавления своих совместимых со стандартами токенов, браузер с web3, и мессенджер с прикольным свойством darkness: мы не только шифруем траффик, но и так его распределяем по сети, что даже если будет кто-то, кто просматривает весь траффик, он не сможет сказать кто с кем общался.
И задача максимум в полноценном клиенте Ethereum на телефоне, для чего пилится реализации Eth 2.0 на языке nim и активно участвуют в исследовании eth 2.0
Если нужно что-то специфичное, то спрашивайте, я был там и разработчиком и в RnD
anonymous Автор
Большое спасибо за разъяснение. Про darkness не знал, звучит очень анонимно
JekaMas
А что собственно про status нужно?