Разбираемся, зачем нужны блокчейн-оракулы, как они работают и у каких смарт-контрактов на Tezos можно узнать оффчейн-данные.
Зачем нужны оракулы
Блокчейн-протоколы оторваны от остального интернета. Смарт-контракты не могут просто так получить оффчейн-данные: котировки из централизованных бирж, температуру воздуха в Нью-Йорке или количество лайков под постом в Twitter. Чтобы узнать эту информацию, нужно воспользоваться специальным сервисом — оракулом.
Оракулы — это алгоритмы, которые собирают оффчейн-данные и передают в смарт-контракты по запросу пользователей или приложений. Например, контракт алгоритмического стейблкоина с помощью оракула получает цену tez на крупной бирже и по ней вычисляет процент обеспечения хранилищ пользователей.
Кроме того, оракулы верифицируют данные. Котировки на разных биржах отличаются, поэтому оракулы зачастую собирают данные из нескольких площадок и сравнивают их. Если ответ одного источника слишком отличается от остальных, оракул отбросит его как фальшивый, чтобы избежать попыток манипуляций.
Также оракулы можно использовать для оффчейн-генерации случайных чисел на базе аппаратных решений. Вы знали, что Cloudflare использует для этого шкаф с лава лампами?
Как работают оракулы
Централизованные оракулы работают просто: программа получает данные и самостоятельно записывает их в контракт. Блокчейн-приложения обращаются к контракту за данными. Разработчикам приходится доверять честности централизованного оракула.
Децентрализованные оракулы не нуждаются в доверии. Они работают так:
- К контракту оракула подключены несколько узлов, которыми владеют разные люди или компании.
- Пользователь запрашивает у оракула цену tez к USD на Binance.
- Оракул передает запрос узлам.
- Каждый узел получает у Binance данные и передает их оракулу.
- Оракул верифицирует данные и добавляет их в контракт.
- Пользователь получает цену.
По тому же принципу оракулы могут отправлять ончейн-данные в оффчейн.
Какие контракты-оракулы есть на Tezos
На Tezos работают несколько оракулов: Ubinetic, Kaiko и Harbinger.
Ubinetic — прошедшее аудит безопасности Compass Security решение для оракулов на основе аттестации ключей Android и встроенных аппаратных модулей безопасности. В общем, узлы работают на смартфонах, данные подписываются ключом и ответ оракула невозможно подделать. Исходный код и инструкции по использованию есть в репозитории Ubinetic на Github, а взять цены можно из контракта Ubinetic Index Oracle.
Kaiko — поставщик данных о рынке криптовалют. В июне 2020 платформа объявила, что будет выкладывать ценовые потоки tez для сетевого оракула на блокчейне Tezos. Kaiko записывает исторические и текущие обменные курсы XTZ/USD и XTZ/CHF в каждый новый блок Tezos раз в минуту и записывает их в смарт-контракт Kaiko.
B9 lab — провайдер, позволяющий запрашивать внешний источник данных с помощью Harbinger. Harbinger — это ценовой оракул для цифровых активов. Он предоставляет набор инструментов и справочных контрактов. В мейннете работает несколько контрактов, которые постоянно обновляют цены популярных криптовалют. Например, Harbinget Normalizer хранит цены tez, BTC, ETH, LINK, BAT и других.
Подписывайтесь на социальные сети Tezos Ukraine, чтобы ничего не пропустить:
- Telegram-канал
- Twitter на украинском языке
- Twitter на русском языке
- Twitter на английском языке
- YouTube-канал