Оракули приходять на допомогу

Оракули приходять на допомогу

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

В статті про запуск каталогу Waves Oracles ми писали про важливість оракулів для блокчейну.

Децентралізовані програми не мають доступу до даних поза блокчейном. Тому створюються невеликі програми – оракули, – які отримують доступ до необхідних даних зовнішнього світу та записують їх у блокчейн.

За типом джерела даних оракули можна розділити на три категорії: програмні, апаратні та людські.

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

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

Людські оракули використовують дані, введені людиною. Вони вважаються найпрогресивнішими через незалежний погляд на результат події.

Нещодавно ми надали інструмент, який дозволяє записувати в блокчейн дані оракула за заданою специфікацією. Він працює дуже просто: потрібно лише зареєструвати картку оракулазаповнивши специфікацію. Після цього можна публікувати транзакції даних згідно з цією специфікацією через інтерфейс Waves Oracles. Читайте докладніше про інструмент у нашої документації.

Оракули приходять на допомогу

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

Але при використанні оракулів постає питання довіри до інформації, яку вони отримують. Чи вірне джерело? Чи будуть дані отримані вчасно? Крім того, є ризик, що оракул обдурить користувачів, щоб отримати власну вигоду навмисно надавши неправильну інформацію.

Як приклад розглянемо оракул, який надає інформацію про спортивні події для децентралізованої біржі ставок.

Подія – головний бій турніру UFC 242, Хабіб Нурмагомедов проти Дастіна Пор'є. За оцінкою букмекерів Нурмагомедов - явний лідер поєдинку. Поставити його перемогу можна було з коефіцієнтом 1,24, що відповідає ймовірності 76%. Коефіцієнт на перемогу Пор'є становив 4,26 (22%), а можливість нічийного результату букмекери оцінювали коефіцієнтом 51,0 (2%).

Оракули приходять на допомогу

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

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

Якщо потенційний прибуток від такого обману вище, ніж прогнозована виручка чесного оракула, а при цьому ризик звернення до суду невисокий, ймовірність нечесних дій власника оракула значно зростає.

Одне з можливих розв'язань проблеми — запит даних від кількох оракулів та приведення отриманих значень до консенсусу. Можна виділити кілька типів консенсусу:

  • всі оракули надали єдину інформацію
  • більшість оракулів надало єдину інформацію (2 із 3, 3 із 4 тощо)
  • приведення даних оракулів до середнього значення (можливі варіанти, за яких попередньо відкидаються максимальне та мінімальне значення)
  • всі оракули надали єдину інформацію із заздалегідь обумовленим допустимим відхиленням (наприклад, значення фінансових котирувань з різних джерел можуть відрізнятися на 0,00001, і отримання точного збігу - завдання нездійсненне)
  • вибрати з отриманих даних лише унікальні значення

Повернемось до нашої децентралізованої біржі ставок. При використанні консенсусу “3 з 4”, один оракул, який повідомив про нічийний результат бою, не зміг би вплинути на виконання скрипту за умови, що три інші оракули видали б достовірну інформацію.
Але ж несумлінний користувач може володіти і трьома із чотирьох оракулів, і тоді він зможе забезпечити вирішальну більшість.

Борючись за чесність оракулів, можна запровадити їм рейтинг чи систему штрафів за недостовірність даних. Можна піти і шляхом «пряника» і запропонувати винагороду за достовірність. Але жодних заходів не дозволить повністю уникнути, наприклад, накрутки рейтингу чи несумлінної більшості.

Тож чи варто винаходити складні сервіси, чи достатньо мати інструмент для консенсусу, який дозволить, як на полиці супермаркету, вибрати, наприклад, п'ять оракулів, що надають потрібні дані, задати тип консенсусу і отримати результат?

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

Припустимо, оракули видали значення: 18, 17, 19 та 21 градусів. Різниця в три градуси може бути цілком критичною для виконання скрипту. Сервіс обробляє результат та отримує середнє значення температури – 18.75 градусів. Цю цифру отримає скрипт децентралізованого додатку і працюватиме з нею.

Оракули приходять на допомогу

Зрештою, рішення залишається за споживачем: чи довіряти одному оракулу і використовувати його дані, чи будувати консенсус кількох оракулів, обраних на свій розсуд.

У будь-якому випадку оракули даних – сфера досить нова. Вона знаходиться на тому етапі, де самі користувачі можуть визначити, в якому напрямі розвиватися. Тому ми хочемо почути вашу думку. Чи потрібний вищеописаний інструмент для оракулів? Яким ви бачите майбутнє оракулів даних у принципі? Діліться своєю думкою в коментарях і в нашій офіційній групі Telegram.

Джерело: habr.com

Додати коментар або відгук