Як створити власний Oracle за допомогою смарт-контрактів Ethereum? PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Як створити власний Oracle за допомогою смарт-контрактів Ethereum?

Час читання: 5 протокол

Ethereum — це перший в історії блокчейн, який успадкував якості створення прикладних програм, торгівлі криптоактивами в блокчейні тощо.

Він має свою мову програмування для написання смарт-контрактів і впровадження їх на віртуальній машині Ethereum, щоб забезпечити децентралізацію виконання дій. 

Розумні контракти виконують заздалегідь визначені рядки кодів і виконують поставлене завдання. Але що, якщо ми хочемо, щоб розумні контракти функціонували на основі результатів, що відбуваються в реальному часі?

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

Що таке оракул у криптовалюті та як створити оракул у смарт-контракті Ethereum? Ми обговоримо це детально в наступному розділі. 

Ключові теми блогу

  • Що таке крипто-оракул і як працюють оракули
  • Різні види оракулів
  • Потік даних від оракулів до смарт-контрактів Ethereum
  • Як кодувати оракули Ethereum
  • Проблеми з крипто-оракулом

Що таке оракул і навіщо він потрібен?

Оракули це сутності, які діють як міст, що з’єднує блокчейн із зовнішніми системами. Іншими словами, оракули надають дані подій поза ланцюгом смарт-контракту для виконання дії на основі вхідних даних.

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

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

Кожен вузол у блокчейні Ethereum володіє інформацією про транзакції, яка має бути однорідною. Таким чином, отримання даних з API може призвести до розбіжностей. Навпаки, Oracle завантажує дані в блокчейн, який незмінно виглядає однаковим на всіх вузлах.

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

Як отримати доступ до даних з Oracle?

Смарт-контракти використовують цикл запитів і відповідей для отримання інформації від вузла Oracle. Оракул, реалізований за допомогою HTTP GET, отримає запит від смарт-контракту, а функція зворотного виклику може отримати запитані дані з оракула. 

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

Ось деякі з служб oracle

  • Ланка ланцюга
  • Доказний
  • witnet
  • Paralink і так далі.

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

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

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

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

Міжланцюгові оракули: Міжланцюгові оракули полегшують як читання, так і запис даних у різних блокчейнах. Це також дає можливість запускати події в одному блокчейні та робити їх оперативними в іншому. 

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

Отримання даних з Oracles

Крок 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

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

Розумні контракти покладаються на оракулів для прийняття рішень щодо їх виконання, що дає їм величезну владу над їх функціонуванням. По суті, децентралізована природа смарт-контрактів ставиться під сумнів. 

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

Висновок

Зв’язок блокчейну з реальним світом досить важливий для стрибка вперед до децентралізованого світу. Oracles пропонує рішення для надійного інтерфейсу смарт-контрактів з даними в реальному часі. 

Однак, щоб забезпечити сталість, сервіси Oracle вдосконалюють безпеку та правильність даних, отриманих поза мережею. 

Хочете бути більш релевантними Безпека Web3?

слідувати QuillAudits для багатьох таких актуальних записів про Web3.

23 думки

Повідомлення Як створити власний Oracle за допомогою смарт-контрактів Ethereum? вперше з'явився на Блог.quillhash.

Часова мітка:

Більше від Квілхаш