Глибокий аналіз Chainlink: як Оракул-машина з'єднує Блокчейн з реальним світом

robot
Генерація анотацій у процесі

Оракул-машина система: смартконтракти та міст між реальним світом

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

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

! Chainlink (частина 1) серії Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-ced3348559da0aabbf1c67c4d84ddc88.webp)

Chainlink: основне рішення для оракулів

У поточному ринку блокчейнів Chainlink є проектом оракулів з найвищою часткою. Як децентралізована система оракулів Chainlink має на меті надавати блокчейнам дані, що генеруються у реальному світі, найзахищенішим способом. На основі основних принципів оракулів Chainlink навколо токена LINK побудував екосистему, що керується економічними стимулами.

Триггер Оракул-машини Chainlink реалізується через передачу токенів LINK. LINK є контрактом ERC677 на мережі Ethereum, а функція Оракул-машини, основана на токені LINK ERC677, належить до моделі запит/відповідь.

! Chainlink (частина 1) із серії Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-30dffd84ae22b9fa8f93929cd523ef99.webp0192837465674839201

) механізм transferAndCall токенів ERC677

Chainlink, розробляючи рамки оракулів, спочатку враховував, як користувачі можуть сплачувати оракулу за послуги. Оскільки стандартні токени ERC20 не можуть задовольнити вимогу "послуги надаються після оплати", Chainlink запропонував стандарт ERC677, що підходить для сценаріїв послуг оракулів.

ERC677 на базі стандартного ERC20 додав метод transferAndCall. Цей метод об'єднує платіж і запит на послугу, задовольняючи потреби бізнес-сценаріїв оракул-машини. Коли користувач здійснює переказ transferAndCall, окрім переказу ERC20, також перевіряється, чи є адреса отримувача адресою контракту; якщо так, викликається метод onTokenTransfer цієї адреси.

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

! Chainlink Частина 1 серії Oracle Explainer]###https://img-cdn.gateio.im/webp-social/moments-36eedcde4ebee55bf1c0e6c5f02934df.webp(

) процес запиту oracle на блокчейні

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

Перевірка пройшла успішно, смартконтракти Оракул-машини створять унікальний requestId та зберігатимуть інформацію про запит у відображенні commitments. Нарешті, контракт випустить подію OracleRequest, яка міститиме детальні дані запиту.

! Chainlink (частина 1) із серії Oracle Explainer]###https://img-cdn.gateio.im/webp-social/moments-d05f88f78a86510920ca9cb9cb97fcd6.webp(

) Механізм реагування поза ланцюгом

Після того, як вузол поза ланцюгом виявить подію OracleRequest, він розпарсить конкретну інформацію запиту та отримає необхідні дані через виклик API. Потім вузол, шляхом подання транзакції, викликає метод fulfillOracleRequest в контракті Oracle, щоб надіслати дані в ланцюг.

Цей метод здійснить ряд перевірок, включаючи перевірку того, чи є викликач авторизованим вузлом, перевірку дійсності ID запиту тощо. Після успішної перевірки смартконтракт зафіксує кількість токенів, які можна вилучити, і видалить цей ID запиту з мапи commitments.

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

! Chainlink Частина 1 серії Oracle Explainer]###https://img-cdn.gateio.im/webp-social/moments-dae23b36c6a83626aa95ba58fa8dbee5.webp(

Спрощене використання цінового оракула

Для розробників, якщо потрібно лише використовувати вже існуючі дані про ціни валютних пар, без необхідності самостійно вказувати URL API, можна безпосередньо використовувати Price Feed, наданий Chainlink. Кожна валютна пара має незалежний Price Feed ), також відомий як Aggregator (, який насправді є смартконтрактом AggregatorProxy.

Ці контракти зазвичай надають кілька основних методів запиту:

  • decimals)(:повертає кількість знаків точності для цінових даних
  • опис)(: повернення назви торгової пари
  • version)(:Ідентифікатор типу Aggregator, на який вказує Proxy
  • getRoundData)_roundId(: отримати історичні дані про ціни за ідентифікатором раунду
  • latestRoundData)(:отримати останні дані про ціну

У більшості сценаріїв використання контракт, можливо, потрібно лише прочитати останню ціну, тобто викликати метод latestRoundData)(. Параметр answer, що повертається цим методом, є останньою ціною.

Слід зазначити, що більшість додатків при читанні цін токенів використовують USD як одиницю виміру. У такому випадку точність цінових даних зазвичай уніфікована до 8 знаків після коми, що спрощує проблему обробки точності між різними токенами.

! Chainlink (частина 1) із серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-1994fff156354700fda0609f9e317726.webp(

LINK4.12%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 8
  • Поділіться
Прокоментувати
0/400
Anon32942vip
· 07-15 12:05
Оракул-машина цей я розумію! Накупив трішки link
Переглянути оригіналвідповісти на0
CrossChainBreathervip
· 07-15 11:26
Оракул-машина врятувала мій маленький гаманець
Переглянути оригіналвідповісти на0
rugdoc.ethvip
· 07-12 12:36
Оракул-машина також не зрозуміла.
Переглянути оригіналвідповісти на0
HackerWhoCaresvip
· 07-12 12:32
link - це майбутнє, га
Переглянути оригіналвідповісти на0
MetaverseHermitvip
· 07-12 12:23
linkбик哇бик哇
Переглянути оригіналвідповісти на0
SchrodingerWalletvip
· 07-12 12:17
Оракул-машина真香...Токен稳了
Переглянути оригіналвідповісти на0
GasWastervip
· 07-12 12:14
Мама, сьогодні ввечері оракул-машина справді смачна
Переглянути оригіналвідповісти на0
bridge_anxietyvip
· 07-12 12:07
Вийшло справді смачно
Переглянути оригіналвідповісти на0
  • Закріпити