Oracle являются важным звеном в соединении блокчейн с доступом к реальным данным, но для этого требуется еще несколько компонентов. Какие еще стороны участвуют в получении данных из вне сети в сеть через Oracle?
Oracle — это система с несколькими уровнями. Для преодоления разрыва между запросами данных из сети и запросами данных из сети требуется, чтобы субъекты на разных уровнях эффективно “общались”. Как и любая система, децентрализованная или централизованная, Oracle требуют, чтобы кто-то создал эту систему. Goracle будет командой, которая построит децентрализованную систему оракулов на Algorand, организует критическую инфраструктуру, установит стандарты данных, создаст механизмы стимулирования и многое другое.
Возьмем пример с вечным DEX. Чтобы вечный DEX мог работать, он должен использовать ценовой канал от Oracle, например, канал Price-Pair от Goracle. DEX полагается на цену от Oracle для совершения сделок, а не на свой механизм обнаружения цен. DEX будет получать цену от Oracle, но откуда, в свою очередь берет цену Oracle?
В системе Oracle данные проходят через несколько уровней. Источники необработанных данных, агрегаторы данных, операторы нод и, наконец, потребители. Каждый из них имеет решающее значение для системы Oracle и ее безопасности. Давайте рассмотрим каждый слой, чтобы вы, как конечный пользователь, могли получить более целостное представление о том, как данные поступают в ваши любимые протоколы!
Данные поступают из определенного источника данных. Для метеорологического канала это могут быть различные метеостанции. Для спортивных результатов это могут быть различные судьи или даже комментаторы. Для канала информации о ценах это могут быть различные централизованные и децентрализованные биржи.
Для построения точной ценовой ленты источники данных должны быть надежными. Это означает, что централизованная или децентрализованная биржа должна иметь эффективную систему обнаружения цен. Если она эффективна, то ее цена отражает “истинную цену”. Точная цена является функцией ликвидности и объема, что означает, что такие известные биржи, как Binance/Coinbase/Kraken для CEX и Uniswap/Curve для DEX, являются наиболее авторитетными. Эти биржи предоставляют необработанные рыночные данные агрегаторам данных для обработки. Но что, если конкретный источник данных содержит неверные данные из-за ошибки? Вот тут-то и приходят на помощь агрегаторы данных.
Агрегаторы данных собирают необработанные рыночные данные, а затем обрабатывают их для создания уточненных наборов данных. Необработанные рыночные данные могут поступать от таких организаций, как AmberData и Kaiko, или от розничных поставщиков данных, таких как CoinGecko и CoinMarketCap. Подробнее об агрегаторах институциональных и розничных данных вы можете прочитать здесь.
На этом этапе вы, возможно, подумаете: почему они не могут отправлять данные из источника прямо операторам нод? Почему агрегаторы данных должны их обрабатывать? Хотя системы oracle выбирают данные только из надежных источников данных, точная подача данных придаст больший вес более авторитетным источникам данных. Например, Binance имеет наибольший объем среди всех централизованных бирж, поэтому их данные должны быть более критичными (иметь больший вес) при построении потока данных. Метод, называемый средневзвешенной по объему ценой (VWAP), позволяет достичь этого путем получения цен из нескольких источников данных, которые усредняются вместе, но пропорционально взвешиваются на основе объема пары.
Помимо расчета VWAP, агрегатор данных должен учитывать и другие ценовые соображения, такие как спреды (разница в цене, по которой можно купить и продать актив), поскольку запросчики данных oracle хотят получать только одну ценовую точку на актив. Кроме того, агрегаторы данных должны выявлять аномалии, такие как flash crashes (когда цена актива быстро падает из-за низкой ликвидности) или wash trading (когда один и тот же субъект торгует между собой для увеличения объема, что искусственно увеличивает его вес в VWAP). Агрегатор данных предоставляет свой уточненный набор ценовых данных через интерфейс прикладного программирования (API), часто по небольшой цене.
Операторы нод соединяются с API нескольких агрегаторов данных. Каждый раз, когда oracle необходимо обновить свою цену, операторы нод обращаются к API, и случайная нода предлагает точную, по их мнению, цену. Оператор ноды может рассчитать точную цену несколькими способами, но чаще всего он берет медианное значение из всех API, чтобы убрать потенциальные отклонения. Затем сеть проголосует, считают ли они предложенную цену точной.
Наконец, существуют потребители, которые представляют собой отдельных лиц или протоколы, нуждающиеся в реальных данных для интеграции в свои смарт-контракты. Потребители получают данные о ценах, вызывая смарт-контракт oracle с подробным описанием того, что они хотят, чтобы контракт выполнил, например, получил цену ETH/USDC прямо сейчас. Их запрос также будет содержать функцию обратного вызова, на которую oracle отправляет ответ. Операторы нод Oracle владеют этими контрактами oracle.
Вот и все! Как видите, требуется много шагов, чтобы безопасно получить точные данные о ценах в ваш любимый протокол on-chain. Это сложнее, чем просто источник данных, отправляющий необработанные данные, и oracle, выдающий их на другом конце.

Каждый уровень должен иметь строгие механизмы, обеспечивающие надежность данных. Построить надежную систему oracle сложнее, чем кажется, начиная с выбора правильных источников данных, проверки процессов агрегации данных и заканчивая обеспечением наличия опыта и инфраструктуры у операторов нод. Goracle гарантирует, что наша система oracle будет построена с высочайшим качеством и надежностью.
Если вас интересует подход Goracle к каждому уровню oracle, ознакомьтесь с документацией, задайте вопрос в Discord или Telegram. Чтобы поговорить с членом команды, свяжитесь через сайт.

