Lección 1

Вступ до Ефіріум Оракули (Ефіріум Оракули)

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

Яке значення мають Оракули (Oracles)?

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

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

Уявіть наступну ситуацію:

Solidity//Макетний розумний контракт слідує зовнішньому даним контракту GoldPriceBet { Oracle OracleInstance;//Екземпляр Oracle в реальному часі адреса екземпляра золота ставщик; uint256 сума_ставки; Функція placeGoldPriceBet (uint PredictedPrice) зовнішній оплачуваний {        ставщик = msg.sender;        сума_ставки = msg.value;        // Тут ми зазвичай викликаємо оракул для отримання поточної ціни золота    }}

Коментарі до коду:

  • ОракулOracleInstance; Це заповнювач для нашого GoldPriceBet контракт на взаємодію з метою отримання поточної ціни золотого контракту (Oracle).
  • Функція placeGoldPriceBet дозволяє користувачам робити ставки для передбачення цінизолота. Ідеально, після укладення ставки будуть викликані мандрівники, щоб отримати реальний час ціни золота та визначити результати.

Різноманітні Екосистеми Оракулів

Загалом, оракули поділяються на дві основні категорії:

Централізовані оракули

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

Децентралізовані оракули

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

Solidity//Ілюстративний смарт-контракт, що використовує гнучкий фреймворкконтракт Oracle CommodityPriceFeed { Decentralized Oracle [] OracleArray;//Масив децентралізованих функцій оракулів deriveAveragePrice () external view returns (uint256) { uint256 cumulativeValue = 0; for (uint i = 0; i < oracleArray.length; i++) { cumulativeValue += oracleArray[i].fetchPrice();        } return cumulativeValue/ oracleArray.length;    }}

Коментарі до коду:

  • DecentralizedOracle [] OracleArray; це масив, який зберігає кілька екземплярів децентралізованих оракулів.
  • Об'єкт визначитиСереднюЦінуФункція обчислює середню ціну, отриману з усіх оракулів в OracleArray. Вона проходить через кожен з оракулів, отримує ціну, а потім ділить її на кількість оракулів, щоб отримати середнє значення.

Додатки реальних світових оракулів

Потенційне застосування оракулів дуже широке і різноманітне:

  • Фінансові похідні: Фінансові інструменти, такі як опціони, потребують доступу до цін реальних активів для виконання контрактів.
  • Розумне страхування: уявіть угоду про страхування подорожей, яка автоматично компенсує користувачів у випадку затримки рейсу. Ці дані надходять з авіаційного трейлера.
  • Верифікація ланцюга постачання: Шляхом введення зовнішніх даних до блокчейну можливо в реальному часі відстежувати продукти від виробництва до доставки клієнту.
  • Децентралізована гра: Онлайн-ігри на блокчейні можуть використовувати оракули, щоб впливати на результати гри на основі подій реального світу, таких як результати спортивних матчів.
    Дізнайтеся більше про оракули: Що таке оракул у блокчейні?

Фінансові деривативи та торгові платформи

Фінансові платформи потребують актуальної інформації про ціни активів, процентні ставки або інші економічні показники. Децентралізовані платформи деривативів використовують оракули, щоб забезпечити, що контракти, такі як фьючерси та опціони, вирішуються на основі точних, недоступних для втручання ринкових даних.

SoliditySolidityCopy code//Приклад розумного контракту для зручної опціїcontract DecentralizedOption { Oracle PriceOracle; uint256 strikePrice = 1000;//Прикладне значення function exerciseOption () external { uint256 currentPrice = priceOracle.fetchCurrentPrice ();        if (currentPrice strikePrice>) {            // Логіка виконання опції        }    }}

Коментарі до коду:

  • The Децентралізована опціяконтракт взаємодіє з оракулами, щоб отримати поточну ціну.
  • Коли користувач виконує опціон, контракт перевіряє поточну ціну порівняно з попередньо визначеною ціною виконання, щоб визначити результат.

Розумне страхування

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

Контракт Soliditycontract FlightDelayInsurance { Оракул FlightStatusOracle; функція claimInsurance (string flightNumber) зовні { string status = flightstatusOracle.getFlightStatus (flightNumber);        якщо (strcmp (status, " Затриманий") == 0) {            // Логіка компенсації страхувальників        }    }}

Коментарі до коду:

  • Страхування затримки рейсуконтракти використовують оракули, щоб отримати статус рейсу.
  • Залежно від статусу рейсу, страхова компанія відшкодує застраховану особу у разі затримки рейсу.

Перевірка ланцюжка поставок

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

контракт SoliditysupplyChainTracker { Oracle LocationOracle; адреса ProductOwner; функція verifyProductLocation (адреса ProductID) зовнішній вид повертає (string пам'ять) {        return locationOracle.fetchProductLocation(productID);    }}

Коментарі до коду:

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

Децентралізовані ігри

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

SolidityContract SportsBet { Oracle SportsResultOracle; Функція placeBet (string teamName) зовнішня оплата {        // Логіка для укладання ставки    } функція resolveBet () зовнішня {        string winningTeam = sportsResultOracle.getMatchResult();        // Логіка для винагородження переможців на підставі результату    }}

Коментарі до коду:

  • SportsBetдозволяє користувачам ставити ставки на результати спортивних подій.
  • Потім взаємодіє з оракулами, щоб отримати результати матчів та вирішити ставки відповідно.
    Тепер у нас є попереднє дослідження світу оракулів Ethereum. У наступних курсах ми зануримося в тонкощі інтеграції оракулів зі смарт-контрактами. Якщо контент викликає у вас сильне захоплення, підтримуйте свій ентузіазм до навчання. Тому що світ децентралізованих даних вабить нас!
Descargo de responsabilidad
* La inversión en criptomonedas implica riesgos significativos. Proceda con precaución. El curso no pretende ser un asesoramiento de inversión.
* El curso ha sido creado por el autor que se ha unido a Gate Learn. Cualquier opinión compartida por el autor no representa a Gate Learn.
Catálogo
Lección 1

Вступ до Ефіріум Оракули (Ефіріум Оракули)

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

Яке значення мають Оракули (Oracles)?

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

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

Уявіть наступну ситуацію:

Solidity//Макетний розумний контракт слідує зовнішньому даним контракту GoldPriceBet { Oracle OracleInstance;//Екземпляр Oracle в реальному часі адреса екземпляра золота ставщик; uint256 сума_ставки; Функція placeGoldPriceBet (uint PredictedPrice) зовнішній оплачуваний {        ставщик = msg.sender;        сума_ставки = msg.value;        // Тут ми зазвичай викликаємо оракул для отримання поточної ціни золота    }}

Коментарі до коду:

  • ОракулOracleInstance; Це заповнювач для нашого GoldPriceBet контракт на взаємодію з метою отримання поточної ціни золотого контракту (Oracle).
  • Функція placeGoldPriceBet дозволяє користувачам робити ставки для передбачення цінизолота. Ідеально, після укладення ставки будуть викликані мандрівники, щоб отримати реальний час ціни золота та визначити результати.

Різноманітні Екосистеми Оракулів

Загалом, оракули поділяються на дві основні категорії:

Централізовані оракули

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

Децентралізовані оракули

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

Solidity//Ілюстративний смарт-контракт, що використовує гнучкий фреймворкконтракт Oracle CommodityPriceFeed { Decentralized Oracle [] OracleArray;//Масив децентралізованих функцій оракулів deriveAveragePrice () external view returns (uint256) { uint256 cumulativeValue = 0; for (uint i = 0; i < oracleArray.length; i++) { cumulativeValue += oracleArray[i].fetchPrice();        } return cumulativeValue/ oracleArray.length;    }}

Коментарі до коду:

  • DecentralizedOracle [] OracleArray; це масив, який зберігає кілька екземплярів децентралізованих оракулів.
  • Об'єкт визначитиСереднюЦінуФункція обчислює середню ціну, отриману з усіх оракулів в OracleArray. Вона проходить через кожен з оракулів, отримує ціну, а потім ділить її на кількість оракулів, щоб отримати середнє значення.

Додатки реальних світових оракулів

Потенційне застосування оракулів дуже широке і різноманітне:

  • Фінансові похідні: Фінансові інструменти, такі як опціони, потребують доступу до цін реальних активів для виконання контрактів.
  • Розумне страхування: уявіть угоду про страхування подорожей, яка автоматично компенсує користувачів у випадку затримки рейсу. Ці дані надходять з авіаційного трейлера.
  • Верифікація ланцюга постачання: Шляхом введення зовнішніх даних до блокчейну можливо в реальному часі відстежувати продукти від виробництва до доставки клієнту.
  • Децентралізована гра: Онлайн-ігри на блокчейні можуть використовувати оракули, щоб впливати на результати гри на основі подій реального світу, таких як результати спортивних матчів.
    Дізнайтеся більше про оракули: Що таке оракул у блокчейні?

Фінансові деривативи та торгові платформи

Фінансові платформи потребують актуальної інформації про ціни активів, процентні ставки або інші економічні показники. Децентралізовані платформи деривативів використовують оракули, щоб забезпечити, що контракти, такі як фьючерси та опціони, вирішуються на основі точних, недоступних для втручання ринкових даних.

SoliditySolidityCopy code//Приклад розумного контракту для зручної опціїcontract DecentralizedOption { Oracle PriceOracle; uint256 strikePrice = 1000;//Прикладне значення function exerciseOption () external { uint256 currentPrice = priceOracle.fetchCurrentPrice ();        if (currentPrice strikePrice>) {            // Логіка виконання опції        }    }}

Коментарі до коду:

  • The Децентралізована опціяконтракт взаємодіє з оракулами, щоб отримати поточну ціну.
  • Коли користувач виконує опціон, контракт перевіряє поточну ціну порівняно з попередньо визначеною ціною виконання, щоб визначити результат.

Розумне страхування

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

Контракт Soliditycontract FlightDelayInsurance { Оракул FlightStatusOracle; функція claimInsurance (string flightNumber) зовні { string status = flightstatusOracle.getFlightStatus (flightNumber);        якщо (strcmp (status, " Затриманий") == 0) {            // Логіка компенсації страхувальників        }    }}

Коментарі до коду:

  • Страхування затримки рейсуконтракти використовують оракули, щоб отримати статус рейсу.
  • Залежно від статусу рейсу, страхова компанія відшкодує застраховану особу у разі затримки рейсу.

Перевірка ланцюжка поставок

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

контракт SoliditysupplyChainTracker { Oracle LocationOracle; адреса ProductOwner; функція verifyProductLocation (адреса ProductID) зовнішній вид повертає (string пам'ять) {        return locationOracle.fetchProductLocation(productID);    }}

Коментарі до коду:

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

Децентралізовані ігри

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

SolidityContract SportsBet { Oracle SportsResultOracle; Функція placeBet (string teamName) зовнішня оплата {        // Логіка для укладання ставки    } функція resolveBet () зовнішня {        string winningTeam = sportsResultOracle.getMatchResult();        // Логіка для винагородження переможців на підставі результату    }}

Коментарі до коду:

  • SportsBetдозволяє користувачам ставити ставки на результати спортивних подій.
  • Потім взаємодіє з оракулами, щоб отримати результати матчів та вирішити ставки відповідно.
    Тепер у нас є попереднє дослідження світу оракулів Ethereum. У наступних курсах ми зануримося в тонкощі інтеграції оракулів зі смарт-контрактами. Якщо контент викликає у вас сильне захоплення, підтримуйте свій ентузіазм до навчання. Тому що світ децентралізованих даних вабить нас!
Descargo de responsabilidad
* La inversión en criptomonedas implica riesgos significativos. Proceda con precaución. El curso no pretende ser un asesoramiento de inversión.
* El curso ha sido creado por el autor que se ha unido a Gate Learn. Cualquier opinión compartida por el autor no representa a Gate Learn.