Как создать свой собственный Oracle, используя смарт-контракты Ethereum? PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Как создать свой собственный оракул с помощью смарт-контрактов Ethereum?

Время Читать: 5 минут

Ethereum — это первая в истории цепочка блоков, унаследовавшая качества создания децентрализованных приложений, торговли криптоактивами в цепочке блоков и так далее.

У него есть свой язык программирования для написания смарт-контрактов и реализации их на виртуальной машине Ethereum, чтобы обеспечить децентрализацию при выполнении действий. 

Смарт-контракты выполняют заранее определенные строки кода и выполняют намеченную задачу. Но что, если мы хотим, чтобы смарт-контракты функционировали на основе результатов, происходящих в реальном времени?

Чтобы достичь этого, нам нужно понять концепцию оракулов блокчейна, с помощью которых смарт-контракты могут получать входные данные из реального мира. 

Что такое оракул в криптовалюте и как создать оракул в смарт-контракте Ethereum? Мы обсудим это подробно в следующем разделе. 

Ключевые темы блога

  • Что такое крипто-оракул и как работают оракулы
  • Различные типы оракулов
  • Поток данных от оракулов к смарт-контрактам Ethereum
  • Как закодировать оракулы Ethereum
  • Проблемы с крипто оракулом

Что такое оракул и зачем он нужен?

Оракулы сущности, которые действуют как мост, соединяющий блокчейн с внешними системами. Другими словами, оракулы предоставляют смарт-контракту данные о событиях вне сети для выполнения действия на основе ввода.

Например, при размещении ставок пользователи могут делать ставки на игроков, которые, по их мнению, выиграют матч. В зависимости от того, что происходит в реальном времени, вознаграждения распределяются между пользователями, которые сделали ставку на победителя. 

Оракулы блокчейна помогают дополнять смарт-контракты данными о победителе. Поток данных в Oracle является двунаправленным и может использоваться для преобразования любых данных в режиме реального времени из отчетов о погоде в состояние фондового рынка в смарт-контракты. 

Каждый узел в блокчейне Ethereum обладает информацией о транзакциях, которая должна быть единообразной. Поэтому получение данных из API может привести к расхождениям. Напротив, оракул загружает данные в цепочку блоков, которые неизменно отображаются одинаково на всех узлах.

Блокчейн-оракулы
Блокчейн-оракулы

Как получить доступ к данным из Oracle?

Смарт-контракты используют цикл запроса и ответа для получения информации от узла оракула. Оракул, реализованный с помощью HTTP GET, получит запрос от смарт-контракта, а функция обратного вызова может получить запрошенные данные от оракула. 

Таким образом, данные собираются смарт-контрактом от оракула. Каждый оракул настроен на предоставление конкретной информации, и вы можете обращаться к сторонним службам для получения нужных вам данных. 

Вот некоторые из сервисов оракула

  • Звено цепи
  • доказуемый
  • Витнет
  • Паралинк и так далее.

Классификация оракулов

Оракулы подразделяются на различные типы в зависимости от извлечения, проверки и передачи данных. 

Входные оракулы: Наиболее широко известный тип, в котором данные извлекаются вне цепочки событий, происходящих в реальном времени. Например Ценовые потоки по акциям получаются вне сети, чтобы инициировать действие смарт-контрактов в зависимости от условий финансового рынка.

Выходные оракулы: Напротив входных оракулов, где смарт-контракты провоцируют оракула на выполнение действия. Например Отправьте сигналы поставщику хранилища для хранения данных или инициируйте банковские сети для совершения платежей.

Кроссчейн оракулы: Кроссчейн-оракулы облегчают как чтение, так и запись данных в разных блокчейнах. Это также позволяет инициировать события в одной цепочке блоков и активировать их в другой. 

Оракулы с поддержкой вычислений: Оракулы с поддержкой вычислений используют вычисления вне цепочки для предоставления услуг. Этот тип оракула используется, особенно когда ончейн ненадежен из-за технических или финансовых ограничений.

Извлечение данных из оракулов

Шаг 1: Смарт-контракт отправляет запрос оракулу.

Шаг 2: запрос направляется носителю данных, который ищет данные из источника данных.

Шаг 3: Данные извлекаются из источника и передаются оракулу.

Шаг 4: Oracle отправляет ответ на смарт-контракт в соответствии с запросом. 

Создание Oracle в смарт-контракте Ethereum — структура кода

Мы узнаем, как работает оракул при определении текущей цены биткойна в долларах США, используя службу оракула под названием Provable. 

pragma solidity >= 0.5.0 < 0.6.0; //Declaring the Solidity version import "github.com/provable-things/ethereum-api/provableAPI.sol"; //Importing latest version of provable API contract BitcoinPrice is usingProvable { //Contract named BitcoinPrice, UsingProvable refers to the API uint public bitcoinPriceUSD; //bitcoinPriceUSD is the variable created to store the price, Provable query event that makes a constructor event LogNewBitcoinPrice(string price); event LogNewProvableQuery(string description); constructor() public { update(); } // callback function to call the smart contract after the output is received and transfers the result from callback function to the variable assigned function __callback( bytes32 _myid, string memory _result ) public { require(msg.sender == provable_cbAddress()); emit LogNewBitcoinPrice(_result); BitcoinPriceUSD = parseInt(_result, 2); // Let's save it as cents... } //passing output string and API string to fetch bitcoin price to our constructor function update() public payable { emit LogNewProvableQuery("Provable query was sent, standing by for the answer..."); provable_query("URL", "xml("https://min-api.cryptocompare.com/data/generateAvg?fsym=BTC&tsym=USD&e=Kraken" ); } } 

Проблемы с оракулом

Проблемы Oracle в основном связаны с конфликтом между ненадежными смарт-контрактами и доверенными сторонними оракулами, учитывая безопасность и подлинность данных от третьих лиц.

Смарт-контракты полагаются на оракулов для принятия решений относительно их выполнения, что дает им огромную власть над их функционированием. На самом деле децентрализованный характер смарт-контрактов ставится под сомнение. 

Однако службы оракулов, такие как ChainLink и Oraclize, работают как децентрализованные решения, которые получают данные на основе новых и проверенных методов. Таким образом, данные получены с помощью децентрализованных средств.  

Заключение

Связь блокчейна с реальным миром имеет приемлемое значение для перехода к децентрализованному миру. Оракулы предлагают решение для надежного интерфейса смарт-контрактов с данными в реальном времени. 

Однако для обеспечения устойчивости службы оракулов продвигаются вперед, чтобы обеспечить безопасность и правильность данных, полученных вне сети. 

Хотите оставаться более актуальным для Безопасность Web3?

Подписаться  QuillAudits для многих таких современных статей о Web3.

23 Просмотры

сообщение Как создать свой собственный оракул с помощью смарт-контрактов Ethereum? Появившийся сначала на Блог.quillhash.

Отметка времени:

Больше от Квиллхэш