Оракулы (децентрализованные оракулы, oracles) — это строки кода, которые связывают информацию в реальном мире со смарт-контрактами и другими соглашениями в блокчейне. Они служат мостом между ончейн, то есть каждым взаимодействием, происходящим в блокчейне, и данными вне цепочки. Иначе говоря, блокчейн-оракул — это сервис, который предоставляет внешние данные для смарт-контрактов, позволяя им получать информацию не только из других блокчейнов, но и из внешнего или офчейнового мира.
Это соединение позволяет смарт-контрактам или строкам кода, которые инициируют непреодолимые команды, выполнять транзакции, основанные на информации, не содержащейся в блокчейне (например, процентных ставках, температурах и сторонних списках), с уверенностью, что информация не была подделана. Блокчейн настолько силен, насколько сильна его связь с реальным миром. Без оракулов смарт-контракты ограничиваются простой обработкой того, что уже находится в блокчейне, упуская при этом важные данные, такие как потоки цен, реальные события или даже веб-API.
Сами по себе оракулы не являются источником реальной информации, вместо этого они собирают ее из существующих баз данных и надежным способом передают в блокчейн. Отношения между оракулами и блокчейнами взаимны. Оракулы могут получать данные блокчейна для распространения вовне, например, в банковские приложения.
Блокчейны и их публичные реестры можно сравнить с компьютером без подключения к Интернету; такое устройство не сможет искать и принимать реальные данные. Компьютер без Интернета может получить доступ только к тому, что хранится на его локальных жестких дисках.
Аналогично, блокчейн может получить доступ только к транзакциям, записанным в его распределенном реестре, что ограничивает количество приложений, которые можно использовать без реальной информации. Оракулы обеспечивают это подключение к Интернету. Они позволяют находить и получать внешнюю информацию для смарт-контрактов внутри блокчейна.
Максимально упрощая, можно сказать, что оракулы — это ворота блокчейна в реальный мир. Общая рыночная капитализация криптовалюты составляет примерно 1 триллион долларов, однако, по данным McKinsey, глобальная финансовая система провела за год транзакции на сумму более 5,76 триллиона долларов, а ее стоимость превышает 487 триллионов долларов. Индустрия жилой недвижимости США оценивается в 43,4 триллиона долларов по данным Zillow, а система здравоохранения США оценивается в 4,1 триллиона долларов по данным Центра Medicare и Medicaid. Эти цифры подчеркивают размер стоимости, доступной вне сети, и демонстрируют важность моста между централизованными и децентрализованными системами. Чтобы эти системы могли получить доступ к возможностям смарт-контрактов, им нужны децентрализованные оракулы, обеспечивающие безопасность и неизменяемость данных в блокчейне, чтобы расширить возможности его реального использования.
Пользователи (смарт-контракты) запрашивают и получают некоторую информацию из внешнего источника (любые данные, не хранящиеся в блокчейне). Расскажем, как это происходит.
Пользователь отправляет запрос данных. Каждый запрос зависит от характера приложения, но, как правило, он определяет желаемые данные и источники, а также способы обработки и агрегирования ответов в одно значение.
Запрос данных поступает в контракт оракула. Контракт оракула в блокчейне — это мощный механизм, который получает запросы данных, передает их на узлы оракула вне блокчейна и возвращает данные в смарт-контракты. Весь процесс регулируется смарт-контрактом, поэтому очень важен аудит кода, позволяющий убедиться, что он работает должным образом.
Контракт Oracle создает событие журнала, которое фиксируется узлом Oracle. Вот как оракул в блокчейне взаимодействует с узлом вне него: команда «eth_subscribe» — наиболее распространенный метод, используемый в JSON-RPC для создания подписки на определенные события в сети Ethereum. Похожий метод используется и в других блокчейн-сетях.
Узел Oracle фиксирует событие журнала и инициирует задачу вне блокчейна. Узел отправляет запрос HTTP GET (или любой другой метод вызова API) сторонним службам. После получения данных они обрабатываются, переформатируются в формат, совместимый с блокчейном, а затем отправляются обратно в блокчейн посредством транзакции в контракт оракула. Все происходит вне блокчейна, поскольку передача информации не связана расходами на газ, размерами блоков или другими ограничениями внутри цепочки.
В описанном процессе оракулы не являются источниками данных; они являются средством, с помощью которого смарт-контракты получают доступ к данным.
Пример сценария действия оракула:
Предположим, у нас есть смарт-контракт Ethereum, созданный для ставок на цену золота. Оба игрока вносят свои ставки в смарт-контракт. Что нужно смарт-контракту для распределения приза по истечении периода? Он должен иметь фактическую цену золота. Вот тут-то и пригодятся оракулы. Они могут получать точные цены вне блокчейна и безопасно и надежно доставлять их в него.
Оракулы решают одну проблему блокчейнов, предоставляя им доступ к реальной информации, но создают другую — в форме централизации. Блокчейны — это децентрализованные и распределенные сети, которые защищают от единых точек отказа. Например, если хакер получит доступ к вашим личным криптоключам, он сможет получить доступ только к вашим средствам. Но если тот же хакер получит доступ к централизованной криптобирже, он сможет получить доступ к миллионам учетных записей за одну утечку данных.
Проще говоря, децентрализованная сеть из миллионов компьютеров требует миллионов отдельных взломов, но централизованной системе достаточно одного взлома, чтобы затронуты миллионы. Если бы блокчейны внедрили централизованные оракулы, это привело бы к возникновению одноточечной уязвимости, которая противодействует всему, для чего создана децентрализованная сеть.
Чтобы решить эту проблему, были созданы децентрализованные оракулы.
Децентрализованные оракулы решают проблему данных вне блокчейна, предоставляя им доступ к реальной информации без создания единой точки отказа. Они делают это, используя распределенные источники данных, чтобы избежать единых точек уязвимости.
Например, децентрализованные биржи, работающие по общему протоколу, могут предоставлять информацию о ценах на различные активы, такие как эфир (ETH) и биткойны (BTC), без центрального органа. Децентрализованные биржи позволяют людям обмениваться активами напрямую друг с другом через общий открытый реестр, которым никто не владеет, как в случае с централизованными конкурентами, такими как Coinbase или Kraken. Проблема в том, что децентрализованные биржи не имеют возможности получить доступ к текущей цене эфира или биткойнов в долларах. Таким образом, децентрализованный оракул, такой как Chainlink (LINK), может предоставить бирже информацию о ценах.
Но как Chainlink предлагает эту информацию без создания централизованной точки доступа? Он использует десятки различных поставщиков данных для создания единого ценового канала. Таким образом, если один из источников данных будет скомпрометирован, остальные 20 или около того поставщиков данных по-прежнему будут защищены и будут предоставлять неповрежденную информацию.
Это всего лишь один пример того, как можно использовать оракул. Существует несколько других типов оракулов в зависимости от информации, которую они предоставляют, и способа ее сбора.
Типы оракулов различаются по источникам данных, направлению движения информации и тому, как данные завоевывают доверие пользователей.
Источник данных определяет, какие данные передаются в блокчейн. Хотя большая часть данных поступает в цифровой форме, некоторые системы собирают физические данные. Эти типы оракулов представляют собой либо программные, либо аппаратные системы. Например, оракулы могут считывать чипы радиочастотной идентификации (RFID), погодные условия или данные здравоохранения.
Направление информации показывает, получает ли блокчейн данные или отправляет их. Их часто называют входящими или исходящими системами. Например, процентная ставка Федеральной резервной системы может использоваться в транзакции смарт-контракта, или сетевой кошелек может достичь заранее определенной суммы, вызывая внесетевую оплату налога в банковском приложении.
Механизм доверия показывает, является ли оракул децентрализованной или централизованной системой. Несмотря на то, что централизованные системы могут создавать единые точки отказа, многие пользователи предпочитают их более экспериментальным альтернативам.
Оракулы служат разным целям, поэтому они имеют разные модели проектирования и администрирования. Согласно классификации ethereum.org, наиболее популярным шаблоном проектирования является запрос-ответ, поскольку он позволяет смарт-контрактам запрашивать конкретную информацию, а не весь набор данных. Напротив, публикация-подписка полезна для получения динамических изменений, то есть курсов обмена фиата на криптовалюту. Другая важная классификация относится к администрированию, то есть подразумевает ответ на вопрос: кто контролирует оракул — одно лицо или несколько узлов?
На основе сетевого администрирования (модель доверия) выделяются:
Централизованные оракулы
Децентрализованные оракулы
На основе шаблонов проектирования выделяются:
Оракулы немедленного чтения
Оракулы публикация-подписка
Оракулы запрос-ответ
Реально существующие варианты использования оракулов включают:
Получение финансовых данных для приложений DeFi
Одноранговое кредитование, заимствование и торговля активами в DeFi требуют финансовых данных в режиме реального времени, таких как обменные курсы и данные рынков капитала. Например, для протокола кредитования DeFi потребуются текущие рыночные цены на активы, депонированные в качестве залога.
Chainlink (LINK), например, обеспечивает защищенные от несанкционированного доступа входы, выходы и вычисления для продвинутых смарт-контрактов в блокчейнах. UMA Oracle (UMA) позволяет смарт-контрактам получать разнообразные данные для различных приложений. Band Protocol (BAND) соединяет реальные данные и API со смарт-контрактами.
Генерация проверяемой случайности для приложений блокчейна
Игры или лотереи, основанные на блокчейне, нуждаются в непредсказуемой случайности, что является проблемой из-за детерминистской природы блокчейнов.
Chainlink VRF и API3 QRNG предлагают защищенную от несанкционированного доступа генерацию случайных чисел (RNG), гарантируя справедливость и непредсказуемость.
Получение результатов реальных событий
Децентрализованные страховые приложения могут использовать оракулы для доступа к точным данным о погоде или отчетам о стихийных бедствиях.
Witnet (WIT), например, представляет собой децентрализованный оракул, который помогает смарт-контрактам реагировать на реальные события. Сеть Pyth Network публикует реальные финансовые данные в сети.
Автоматизация исполнения смарт-контрактов
Автоматизизация функции в рамках контракта необходима для поддержания функциональности приложения.
Сеть Keeper Network от Chainlink, например, позволяет смарт-контрактам децентрализованно передавать задачи по техническому обслуживанию на аутсорсинг.
Основной проблемой с оракулами является манипулирование рынком.
Оракулы играют ключевую роль в экосистеме децентрализованных финансов, выступая в качестве моста между внешними источниками данных и смарт-контрактами. Однако их важнейшая функция также делает их главной мишенью для тактики манипулирования рынком.
Интересно? Поделись с друзьями!
Другие вопросы