Блокчейн за своєю природою є надзвичайно закритою системою. Вузли перевіряють транзакції та дані у блоках через механізми консенсусу. Будь-яку інформацію, що записується в блокчейн, вузли мережі мають незалежно верифікувати. Така структура забезпечує безпеку та цілісність системи, але водночас означає, що блокчейн не може самостійно отримувати доступ до зовнішніх мереж.
З технічної точки зору смартконтракти працюють у середовищі віртуальної машини та можуть зчитувати лише наявні ончейн-дані: баланси рахунків, записи транзакцій або стани інших контрактів. Жодні дані з інтернету чи реального світу, якщо вони не записані у блокчейн, не можуть бути безпосередньо доступні смартконтрактам.
Цей підхід є свідомим вибором на користь безпеки. Якби блокчейн дозволяв смартконтрактам вільно отримувати зовнішні дані, вузли не змогли б перевірити їхню достовірність, і механізм консенсусу системи втратив би сенс. Тому блокчейн обмежує себе перевірюваним, але закритим середовищем даних.
Інакше кажучи, блокчейн може гарантувати надійність ончейн-даних, але не забезпечує автоматичного потрапляння даних з реального світу у ланцюг. Це перша дилема даних, з якою стикається блокчейн на рівні застосунків.
Коли розробники починають створювати ончейн-застосунки, проблеми закритої структури стають очевидними. Багатьом фінансовим застосункам потрібні дані в реальному часі як тригери: ціни активів, відсоткові ставки чи ринкові індекси. Проте смартконтракти не можуть отримувати інформацію із зовнішніх серверів через API, як це роблять традиційні застосунки.
Це обмеження створює кілька ключових викликів:
Децентралізовані торгові протоколи або платформи кредитування потребують цін у реальному часі для визначення умов ліквідації, але сам блокчейн не зберігає зовнішні ринкові ціни.
Страхові протоколи можуть вимагати визначення, чи був рейс затриманий або чи відповідають погодні умови певним критеріям — ці дані містяться у системах реального світу.
Деякі фінансові продукти мають виконуватися за певних часових чи ринкових умов, але вузли блокчейну не відстежують зміни у реальному світі проактивно.
Отже, без механізму, який би безпечно передавав зовнішні дані у ланцюг, багато Web3-застосунків не можуть функціонувати повноцінно. Інноваційні сценарії, такі як DeFi, предиктивні ринки або ончейн-страхування, складно реалізувати.
Оракли створені саме для вирішення цієї проблеми як базова інфраструктура. Основне завдання оракула — передавати дані з позаланцюгових джерел у блокчейн та надавати їх смартконтрактам у перевірюваному вигляді, придатному для використання в блокчейні.
Оракульні системи зазвичай виконують кілька ключових функцій:
В екосистемі Web3 оракли вже стали критичною інфраструктурою. Наприклад, кредитні протоколи покладаються на цінові оракли для запуску ліквідацій; деривативні протоколи потребують цін у реальному часі для розрахунку прибутковості; системи стейблкоїнів використовують оракли для моніторингу вартості забезпечення.
Оракли відкривають для блокчейну вікно даних. Вони дозволяють закритому ончейн-середовищу взаємодіяти з реальним світом, перетворюючи блокчейн із системи лише для фіксації транзакцій на платформу, здатну обслуговувати складну економічну діяльність.