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



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

Механізм роботи оракульської машини дуже простий — запит-відповідь. Смарт-контракт посилає зовнішньому сервісу запит «Будь ласка, надайте ці дані», а оракул отримує його, збирає дані з реального світу і повертає їх у ланцюг. Саме цей цикл і є базовою операцією оракульської машини.

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

Щоб запустити оракульську машину Chainlink, потрібно передати токени LINK. Вони реалізовані за стандартом ERC677 на мережі Ethereum. Це важливий момент: стандартний ERC20 не дозволяє одночасно виконувати платіж і запит послуги, тому Chainlink запропонував власний стандарт ERC677.

Основний метод ERC677 — «transferAndCall». Він дозволяє одночасно передати токени і зробити запит у рамках однієї транзакції. Коли користувач виконує transferAndCall, крім передачі ERC20, автоматично викликається метод onTokenTransfer на адресі отримувача.

Коли оракульська машина отримує запит, вона спочатку виконує кілька перевірок безпеки: чи справді ініціатор — контракт LINK, чи правильний розмір даних, чи правильний селектор функції. Якщо всі перевірки пройдені, генерується унікальний ідентифікатор requestId і фіксується у логах подій.

Ці події відслідковують ноди поза ланцюгом. Вони читають необхідну інформацію з подій і через API мережі отримують дані з реального світу. Потім викликають метод fulfillOracleRequest і повертають дані у ланцюг. Це і є повний цикл роботи оракульської машини.

Що стосується реалізації, Chainlink пропонує вже готові цінові фіди для існуючих торгових пар, наприклад, Aggregator. Це дозволяє розробникам не прописувати API самостійно. Основні пари, як ETH/USD, вже налаштовані, і достатньо викликати метод latestRoundData() для отримання актуальної ціни.

У більшості застосунків достатньо просто зчитувати актуальні ціни. Особливо для цін у доларах США, де точність встановлена у 8 знаків, додаткові обчислення не потрібні. Тому реалізація цінових фідів через оракульські машини — значно простіша, ніж здається.

Завдяки цій системі можливо створювати складні DeFi-протоколи та фінансові інструменти. Без оракульських машин зв’язок між блокчейном і реальним світом був би неможливий. У Gate.io можна знайти різні проекти, що використовують оракули, тож якщо цікаво — варто подивитися.
ETH-2,35%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • Прокоментувати
  • Репост
  • Поділіться
Прокоментувати
Додати коментар
Додати коментар
Немає коментарів
  • Закріпити