Оракул-машина є ключовою інфраструктурою в екосистемі блокчейну, її основна функція полягає в наданні зовнішніх даних для смарт-контрактів. Як проміжне програмне забезпечення, яке з'єднує смарт-контракти на ланцюзі та реальний світ поза ланцюгом, оракул-машина відіграє надзвичайно важливу роль.
Смарт-контракт в мережі Ethereum, якщо йому потрібно отримати дані про обсяги торгівлі нафтою за певний день, не може безпосередньо отримати цю інформацію з реального світу, що знаходиться поза ланцюгом. У цьому випадку необхідно використовувати Оракул-машину для реалізації передачі даних. Конкретний процес такий: спочатку смарт-контракт записує обсяги торгівлі нафтою за потрібну дату у журнал подій, після чого поза ланцюгом запускається процес для моніторингу цього журналу подій. Коли запит виявлено, цей процес подає транзакцію в ланцюзі, викликає відповідні методи контракту і завантажує дані обсягу торгівлі нафтою за вказану дату до смарт-контракту.
Серед численних проектів оракулів, Chainlink займає найбільшу частку ринку. Як децентралізована мережа оракулів, Chainlink прагне надавати дані з реального світу для блокчейнів найбезпечнішим способом. Він побудував позитивну екосистему, керуючись економічними стимулом навколо токена LINK на основі основних принципів оракулів.
Тригери оракула Chainlink вимагають здійснення переказу токенів LINK. LINK є токеном контракту ERC677 на мережі Ethereum, а функція оракула, що базується на LINK, належить до моделі запиту/відповіді.
Стандарт ERC677 додає метод transferAndCall на базі ERC20, об'єднуючи платіж та запит на послугу, що краще відповідає вимогам бізнес-сценаріїв оракул-машини. Коли користувач викликає transferAndCall для переказу, окрім стандартного переказу ERC20, також перевіряється, чи є адреса отримувача адресою контракту, і якщо так, то викликається метод onTokenTransfer цієї адреси.
! Chainlink Частина 1 серії Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-36eedcde4ebee55bf1c0e6c5f02934df.webp)
Перед запитом послуг оракул-машини користувачеві потрібно спершу підтвердити надійність цього оракул-машини, оскільки перед наданням послуг оракул-машинам потрібно спершу сплатити. Надійність оракул-машини можна розділити за кількома вимірами.
Коли споживачі оракулів використовують метод transferAndCall для сплати зборів та запиту послуг, метод onTokenTransfer в контракті оракулів проводить ряд перевірок безпеки, включаючи перевірку, чи є токен, що передається, LINK, перевірку, чи не перевищує довжина data ліміти, та перевірку, чи є вибір функції правильним тощо. Після успішної перевірки, через deleGatecall буде викликано метод oracleRequest поточного контракту оракулів.
Метод oracleRequest генерує унікальний requestId, встановлює час закінчення дії та додає відповідну інформацію до мапи commitments. Найголовніше, він викликає подію OracleRequest, яка містить дані запиту. Ці дані мають формат кодування CBOR і можуть містити різні форми інформації.
Зовнішні вузли будуть слухати подію OracleRequest. Коли виявляється новий запит, вузол аналізує конкретну інформацію, отримує необхідні дані через API-запит, а потім подає транзакцію, викликаючи метод fulfillOracleRequest смарт-контракту Oracle, щоб завантажити дані на ланцюг.
Метод fulfillOracleRequest виконує ряд перевірок, включаючи авторизацію виклику, дійсність requestId тощо. Після успішного проходження перевірок, плата за запит буде додана до суми, що підлягає виведенню, requestId буде видалено з відображення commitments, і буде викликано функцію зворотного виклику контракту запитувача.
Функція зворотного виклику проведе подальшу перевірку, а потім обробить повернені дані. Для цінового оракула зазвичай оновлюється поточна ціна.
Окрім цього загального процесу оракул-машини, Chainlink також пропонує простіший інтерфейс для цінових оракулів. Для кожної торгової пари є окремий Price Feed(Aggregator), розробники можуть безпосередньо викликати його latestRoundData() метод для отримання останньої ціни, без необхідності самостійно вказувати API-адресу та іншу інформацію.
В цілому, оракул-машина як міст між світом блокчейну та реальним світом відіграє незамінну роль у децентралізованих додатках. Chainlink завдяки продуманій системі стимулів та механізмам безпеки став найбільш використовуваним рішенням для оракулів.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
10 лайків
Нагородити
10
8
Репост
Поділіться
Прокоментувати
0/400
DataBartender
· 07-08 06:34
linkхардкорний фанат来Поповнення маржі啦
Переглянути оригіналвідповісти на0
TokenStorm
· 07-07 23:25
LINK дядько раніше купив, раніше заробив.
Переглянути оригіналвідповісти на0
CommunitySlacker
· 07-06 05:58
link протягом усього життя
Переглянути оригіналвідповісти на0
SatoshiChallenger
· 07-06 05:45
Дані показують, що 95% Оракул-машина загинули в дорозі.
Переглянути оригіналвідповісти на0
airdrop_whisperer
· 07-06 05:41
Linkпосилання万物!
Переглянути оригіналвідповісти на0
InscriptionGriller
· 07-06 05:35
Зовнішнє постачання даних також є новою пасткою для невдах!
Оракул-машина Chainlink: міст між світом Блокчейн та реальним світом
Оракул-машина технологія Глибина аналізу
Оракул-машина є ключовою інфраструктурою в екосистемі блокчейну, її основна функція полягає в наданні зовнішніх даних для смарт-контрактів. Як проміжне програмне забезпечення, яке з'єднує смарт-контракти на ланцюзі та реальний світ поза ланцюгом, оракул-машина відіграє надзвичайно важливу роль.
Смарт-контракт в мережі Ethereum, якщо йому потрібно отримати дані про обсяги торгівлі нафтою за певний день, не може безпосередньо отримати цю інформацію з реального світу, що знаходиться поза ланцюгом. У цьому випадку необхідно використовувати Оракул-машину для реалізації передачі даних. Конкретний процес такий: спочатку смарт-контракт записує обсяги торгівлі нафтою за потрібну дату у журнал подій, після чого поза ланцюгом запускається процес для моніторингу цього журналу подій. Коли запит виявлено, цей процес подає транзакцію в ланцюзі, викликає відповідні методи контракту і завантажує дані обсягу торгівлі нафтою за вказану дату до смарт-контракту.
Серед численних проектів оракулів, Chainlink займає найбільшу частку ринку. Як децентралізована мережа оракулів, Chainlink прагне надавати дані з реального світу для блокчейнів найбезпечнішим способом. Він побудував позитивну екосистему, керуючись економічними стимулом навколо токена LINK на основі основних принципів оракулів.
Тригери оракула Chainlink вимагають здійснення переказу токенів LINK. LINK є токеном контракту ERC677 на мережі Ethereum, а функція оракула, що базується на LINK, належить до моделі запиту/відповіді.
Стандарт ERC677 додає метод transferAndCall на базі ERC20, об'єднуючи платіж та запит на послугу, що краще відповідає вимогам бізнес-сценаріїв оракул-машини. Коли користувач викликає transferAndCall для переказу, окрім стандартного переказу ERC20, також перевіряється, чи є адреса отримувача адресою контракту, і якщо так, то викликається метод onTokenTransfer цієї адреси.
! Chainlink Частина 1 серії Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-36eedcde4ebee55bf1c0e6c5f02934df.webp)
Перед запитом послуг оракул-машини користувачеві потрібно спершу підтвердити надійність цього оракул-машини, оскільки перед наданням послуг оракул-машинам потрібно спершу сплатити. Надійність оракул-машини можна розділити за кількома вимірами.
Коли споживачі оракулів використовують метод transferAndCall для сплати зборів та запиту послуг, метод onTokenTransfer в контракті оракулів проводить ряд перевірок безпеки, включаючи перевірку, чи є токен, що передається, LINK, перевірку, чи не перевищує довжина data ліміти, та перевірку, чи є вибір функції правильним тощо. Після успішної перевірки, через deleGatecall буде викликано метод oracleRequest поточного контракту оракулів.
Метод oracleRequest генерує унікальний requestId, встановлює час закінчення дії та додає відповідну інформацію до мапи commitments. Найголовніше, він викликає подію OracleRequest, яка містить дані запиту. Ці дані мають формат кодування CBOR і можуть містити різні форми інформації.
Зовнішні вузли будуть слухати подію OracleRequest. Коли виявляється новий запит, вузол аналізує конкретну інформацію, отримує необхідні дані через API-запит, а потім подає транзакцію, викликаючи метод fulfillOracleRequest смарт-контракту Oracle, щоб завантажити дані на ланцюг.
Метод fulfillOracleRequest виконує ряд перевірок, включаючи авторизацію виклику, дійсність requestId тощо. Після успішного проходження перевірок, плата за запит буде додана до суми, що підлягає виведенню, requestId буде видалено з відображення commitments, і буде викликано функцію зворотного виклику контракту запитувача.
Функція зворотного виклику проведе подальшу перевірку, а потім обробить повернені дані. Для цінового оракула зазвичай оновлюється поточна ціна.
Окрім цього загального процесу оракул-машини, Chainlink також пропонує простіший інтерфейс для цінових оракулів. Для кожної торгової пари є окремий Price Feed(Aggregator), розробники можуть безпосередньо викликати його latestRoundData() метод для отримання останньої ціни, без необхідності самостійно вказувати API-адресу та іншу інформацію.
В цілому, оракул-машина як міст між світом блокчейну та реальним світом відіграє незамінну роль у децентралізованих додатках. Chainlink завдяки продуманій системі стимулів та механізмам безпеки став найбільш використовуваним рішенням для оракулів.