На даний момент блокчейни сильно ізольовані від зовнішніх джерел інформації як централізованих ресурсів, так і інших блокчейнів. Щоб різні ланцюжки блоків були сумісні та легко обмінювалися даними між собою (і із зовнішніми ресурсами) можна використовувати оракулів.
Що таке оракули
Оракул - це система, яка отримує і верифікує події ззовні блокчейна і передає ці дані блокчейн для використання в смарт-контрактах (або навпаки). Оракули критично потрібні для смарт-контрактів, тому що смарт-контракти строго детерміновані. Інформація повинна надходити до смарт-контракту певного каналу, здатного підтвердити її достовірність.
Є кілька видів оракулів, які забезпечують той чи інший вид зв'язку:
програмні - отримують дані з інтернету або інших блокчейнів;
апаратні - отримують дані від різних датчиків (RFID мітки, розумний будинок, особисто мені на думку відразу приходить застосування в логістиці та IoT);
Приклад: до смарт-контракту потрібно передати дані про температуру повітря. Можна взяти дані з інтернету через програмний оракул, або з датчика IoT через апаратний оракул. *IoT - Інтернет речей.
вхідні - ззовні блокчейна смарт-контракт;
вихідні - із смарт-контракту на якийсь ресурс;
Іноді використовуються консенсусні оракули. Декілька оракулів незалежно отримують дані, а потім за якимось алгоритмом визначають вихідні дані.
Приклад навіщо це потрібно: 3 оракула отримують курс BTC/USD з Binance, BitMex і Coinbase, але в вихід передають середнє значення. Так згладжуються незначні розбіжності між біржами.
Web3
Розповідаючи про оракули та їх реалізації не можна пройти повз Web3, концепцію, заради якої вони і вигадувалося. Спочатку Web3 був ідеєю семантичної павутини, де кожен сайт розмічений метаданими, щоб покращити взаємодію з пошуковими системами. Однак сучасна ідея Web3 – мережа, що складається з dApps. А децентралізованим додаткам потрібні оракули.
Створити оракула самостійно можна (і, в деяких випадках, потрібно), але є деякі оракули, що часто використовуються (наприклад, генератор випадкових чисел), тому рентабельно використання оракул-проектів. Два головні (на даний момент) проекти, що розробляють оракулів. Смуга и Ланка ланцюга.
Смуговий протокол
Band Protocol працює на алгоритмі консенсусу dPoS (що це?) та постачальники даних відповідають за справжність грошима, а не тільки репутацією.
В екосистемі проекту є три типи користувачів:
Постачальники даних, які незалежно працюють над безпечною передачею даних ззовні блокчейна в ланцюжок блоків. Утримувачі токенів роблять ставку на постачальників даних, щоб надати їм право передавати дані до протоколу.
Розробники dApp, які платять невеликі збори за використання оракула.
Утримувачі токенів Band, які голосують за постачальників даних. Проголосувавши своїми токенами за постачальника, вони отримують винагороду з грошей, які виплачують dApps.
Серед оракулів, пропонованих Band «з коробки»: час зльотів/посадок літаків, карта погоди, курси криптовалют, курси золота та акцій, інформація про блоки біткоїну, середня ціна газу, обсяги на криптобіржах, генератор випадкових чисел, Yahoo Finance, HTTP Status Code .
До речі, серед інвесторів є Band легендарний венчурний фонд. Sequoia и Binance.
Ланка ланцюга
Загалом Chainlink і Band дуже схожі — і в дефолтних рішеннях, і в можливостях розробки. Chainlink простіше в роботі, в ньому немає голосування за провайдерів інформації, а Band більш гнучкий, тому що використовує Космос SDK та є 100% open source.
В даний час Chainlink значно популярніший, у списку партнерів проекту Google Cloud, Binance, Matic Network і Polkadot. Також Chainlink сконцентрувався на оракулах для сфери Defi, яка зараз стрімко зростає.
Ресурси, дані яких можна отримати через оракула Chainlink.
Висновок
Оракули — хороша ідея для отримання даних із централізованих ресурсів у блокчейн, і я уважно стежитиму за її розвитком. Однак якщо говорити про взаємну сумісність різних блокчейнів, є інші рішення, у тому числі парачейни (ще більш перспективна технологія та тема мого наступного посту).