Перший етап у системі oracle — отримання необхідних даних із реального світу або інтернету. Дані можуть надходити з біржових цін, фінансових ринкових індексів, погодних даних, результатів спортивних подій або даних IoT-пристроїв.
На практиці oracle збирають дані з кількох джерел, а не покладаються на одне. Це пов’язано з тим, що окреме джерело може містити помилки, затримки або бути маніпульованим. Збирання даних із різних джерел підвищує їхню надійність і знижує ризики.
Поширені джерела даних:
Збирання даних здійснюють вузли oracle. Вузли працюють на спеціальному програмному забезпеченні, постійно моніторять зовнішні джерела даних і надсилають актуальну інформацію до мережі oracle для подальшої обробки.
Якщо oracle просто завантажує дані в блокчейн, система залишається вразливою до помилок чи маніпуляцій. Тому більшість систем oracle перевіряють та агрегують дані перед їх завантаженням у блокчейн.
Цей процес здійснюється через співпрацю кількох вузлів. Різні вузли подають зібрані дані, які агрегуються алгоритмами, такими як обчислення середнього значення чи медіани. Таким чином, навіть якщо деякі вузли подають некоректні дані, це не впливає суттєво на кінцевий результат.
Деякі мережі oracle впроваджують додаткові механізми безпеки, зокрема:
Завдяки цим механізмам системи oracle можуть запобігати зловмисній маніпуляції даними і підвищувати загальну якість даних.
Після перевірки й агрегування вузли oracle подають фінальний результат у блокчейн і записують його до певних смартконтрактів. Цей процес часто називають “price feed”.
З точки зору смартконтрактів, дані oracle надходять не напряму із зовнішнього світу, а зберігаються у контракті даних на блокчейні. Інші DeFi-протоколи мають лише викликати інтерфейс цього контракту, щоб отримати актуальні дані.
Наприклад, коли протокол кредитування визначає, чи потрібно ліквідувати рахунок, він виконує таку логіку:
Таким чином, oracle стають ключовою точкою входу даних для ончейн-додатків, дозволяючи смартконтрактам виконувати автоматизовану логіку на основі інформації з реального світу.
У фінансових додатках актуальність даних має ключове значення. Якщо ціни оновлюються надто повільно, це може спричинити затримки ліквідації, збільшити можливості арбітражу або призвести до системного ризику. Тому системи oracle впроваджують спеціальні механізми оновлення даних.
Різні сценарії мають різні вимоги до частоти оновлення. Деякі протоколи потребують майже реального часу оновлення цін, інші надають перевагу стабільності даних. Щоб збалансувати ефективність і витрати, oracle використовують кілька стратегій оновлення.
Поширені механізми:
Проєктування механізмів враховує витрати мережі, точність даних і волатильність ринку. Якщо оновлення надто часті, витрати на транзакції у блокчейні значно зростають; якщо надто повільні — ціни можуть сильно відставати.
Тому пошук балансу між ефективністю, витратами й безпекою є ключовою проблемою у проєктуванні систем oracle.