Що таке блокчейн-оракули?
Якщо спрощувати, то блокчейн-оракули - сторонні сервіси, які надають смарт-контракти з інформацією з зовнішніх джерел. Технічно - щось на зразок посередника між блокчейном і зовнішнім світом.
В силу своєї структури, децентралізовані мережі не можуть отримувати доступ до інформації, яку в них не завантажили. Однак дуже часто для їх ефективної роботи ці дані необхідні.
Ось тут і вступають в справу оракули. Вони не надають дані самостійно, але можуть запитувати, аналізувати, перевіряти і передавати далі інформацію з зовнішніх джерел. Вдалою аналогією можуть послужити чутливі рецептори людського тіла - вони точно також реагують на зовнішні подразники, точно також передають інформацію в аналізуючий центр і точно також не приносять користі у відриві від нього.
Аналогію можна продовжити і далі, оскільки деякі оракули можуть відправляти дані в зовнішнє середовище - як рефлекторну реакцію організму на будь-який вплив.
Тому для ефективної роботи мереж блокчейн, оракули необхідні. Саме вони відповідають за можливість автоматичного сприйняття зміни якихось зовнішніх подій і реакції мережі на них.
Приклад використання оракула
Припустимо, дехто Семен і Микола посперечалися на рахунок того, хто стане переможцем чемпіонату світу з футболу. Вони обговорюють всі умови парі і фіксують за допомогою смарт-контракту свої кошти, які потім відійдуть переможцю.
Робиться це для того, щоб ніхто потім не міг односторонньо відмовитися від виконання парі. Теоретично, для тієї ж мети можна було використовувати довірену особу - саме так і працюють багато букмекерів, але наші учасники вирішили обійтися без посередників, яким потрібно платити комісію і яким немає особливої довіри.
Після закінчення ЧС, смарт-контракт надсилає запит на довірений додаток, який і повідомляє - хто ж переміг. І в залежності від цього результату, кошти автоматично відправляються одному з сперечальників.
Види оракулів
Залежно від певних якостей, оракули діляться на різні категорії. Тому кожен можна описати кількома термінами. Найчастіше використовуються такі властивості:
- Джерело. Інформація виходить програмним або апаратним шляхом?
- Напрямок передачі. Прийом, передача, і те, і інше?
- Ступінь довіри. Довірений додаток централізований або децентралізований?
- Перевірка достовірності. Автоматична або людська?
Розглянемо кожну з цих груп більш подібно.
- Програмні / апаратні. Перші взаємодіють з онлайн-джерелами інформації. Тобто - з мережею Інтернет, приватними серверами і базами даних, до яких є доступ. Зазвичай вони взаємодіють в режимі реального часу. Їх метою можуть бути курси валют або актуальні дані про авіарейси. Другі отримують інформацію з апаратних датчиків і реагують виключно на неї. По суті - переводять реальні події або зміни в інформаційний формат. Працюють не постійно, а за запитом або реагують на зміну ситуації. Приклад - автоматичний звіт про під'їзд транспорту, що перевозить товари.
- Вхідні / вихідні. Перші отримують інформацію ззовні, звітуючи, наприклад, про зміну температури. Другі можуть додатково передавати дані на зовнішні джерела. Так, наприклад, якщо на умовний рахунок переводяться кошти, за допомогою вихідного оракула можна автоматично розблокувати смарт-замок, що блокується до переказу цих самих коштів.
- Централізовані / децентралізовані. Перші отримують інформацію з одного довіреного джерела. У простих ситуаціях, типу реакції на спрацьовування датчика, це корисно, але в більш складних - відкриває простір для зловживання через наявність лише однієї точки відмови. Другі використовують дані з декількох джерел, видаючи результат на підставі певного алгоритму консенсусу. Цей спосіб більш стійкий до помилок і зовнішніх впливів, але дорожче, повільніше і складніше. При цьому він не усуває проблему довіри, а просто перерозподіляє її між джерелами інформації.
- Контрактні / людські. Перші забезпечують виключно програмну взаємодію оракул-смарт-контракт. Як правило, один оракул пов'язаний з одним контрактом. Чи не найкращий спосіб, якщо необхідно отримувати інформацію з різних джерел, проте таку взаємодію куди простіше адаптувати під різні вимоги ще на моменті розробки. Другі дозволяють перевіряти дані за допомогою людських зусиль. Довірена особа перевіряє справжність даних і переводить їх в певні смарт-контракти. А за рахунок того, що довірена особа може використовувати криптографічні способи підтвердження - у шахраїв практично немає шансів впливати на ці дані.
Існуючі проблеми
- «Проблема Oracle». Якщо якийсь оракул виявиться скомпрометований, то і пов'язаний з ним смарт-контракт - теж. Оскільки немає довіри до інформіції, що надходить. Однак просто так відключити смарт-контракт - проблематично, якщо це не передбачено на момент його укладення.
- Слабкий захист. Оракули - зовнішні алгоритми, тому їх не захищає внутрішній механізм захисту блокчейна. Тому саме їх найчастіше і обирають для атак. Особливо «вихідні».
- Атака «Man-in-the-middle». Якщо зловмисник отримає доступ до каналу даних між оракулом і смарт-контрактом, він може внести в нього спотворення або повністю їх фальсифікувати.
Висновки
Блокчейн-оракули - необхідний елемент функціонування децентралізованих мереж, що серйозно розширює потенціал їх використання. Однак над їхньою безпекою, надійністю і стійкістю до відмов ще варто попрацювати. наприклад, створивши так звані «децентралізовані оракули», що володіють багатьма властивостями, характерними для блокчейн-мереж.