
Orakle blockchainowe rozwiązują problem dostarczania informacji z zewnętrznego świata do blockchaina. Ale ważne jest, abyśmy wiedzieli, którym z nich możemy zaufać.
W o uruchomieniu katalogu pisaliśmy o znaczeniu orakli dla blockchaina.
Decentralizowane aplikacje nie mają dostępu do danych poza blockchainem. Dlatego powstają niewielkie programy – orakle, które uzyskują dostęp do niezbędnych danych z zewnętrznego świata i zapisują je w blockchainie.
Ze względu na typ źródła danych orakle można podzielić na trzy kategorie: programowe, sprzętowe i ludzkie.
Programowe orakle pozyskują i przetwarzają dane z internetu – takie jak temperatura powietrza, ceny towarów, opóźnienia pociągów i samolotów. Informacje pochodzą z online źródeł, takich jak API, a orakle je wydobywają i umieszczają w blockchainie. O tym, jak stworzyć prosty programowy orakle, przeczytaj .
Sprzętowe orakle śledzą obiekty rzeczywiste za pomocą urządzeń i czujników. Na przykład kamera ustawiona na wykrywanie przekroczenia linii rejestruje samochody wjeżdżające do określonej strefy. Orakle rejestruje fakt przekroczenia linii w blockchainie, a na podstawie tych danych skrypt zdecentralizowanej aplikacji może na przykład zainicjować wystawienie mandatu i odliczenie tokenów z konta właściciela samochodu.
Ludzkie orakle wykorzystują dane wprowadzane przez człowieka. Uważane są za najbardziej zaawansowane ze względu na niezależne spojrzenie na wynik zdarzenia.
Niedawno udostępniliśmy narzędzie, które pozwala zapisywać dane orakla w blockchainie zgodnie z określoną specyfikacją. Działa to niezwykle prosto: wystarczy zarejestrować , wypełniając specyfikację. Po tym można publikować transakcje danych zgodnie z tą specyfikacją przez interfejs Waves Oracles. Przeczytaj więcej o narzędziu w .

Takie ustandaryzowane narzędzia i interfejsy ułatwiają życie zarówno programistom, jak i użytkownikom usług na blockchainie. Nasze narzędzie jest szczególnie użyteczne dla ludzkich orakli i można je wykorzystać na przykład do zapisywania certyfikatów lub praw autorskich do różnych obiektów.
Jednak przy korzystaniu z orakuli pojawia się kwestia zaufania do informacji od nich uzyskiwanych. Czy źródło jest wiarygodne? Czy dane zostaną otrzymane na czas? Ponadto istnieje ryzyko, że oracle oszuka użytkowników, celowo podając nieprawdziwe informacje dla własnych korzyści.
Jako przykład rozważmy orakula, który dostarcza informacje o wydarzeniach sportowych dla zdecentralizowanej giełdy zakładów.
Wydarzenie — główny pojedynek na turnieju UFC 242, Khabib Nurmagomedov kontra Dustin Poirier. Według ocen bukmacherów, Nurmagomedov jest wyraźnym faworytem tego pojedynku. Można było postawić na jego zwycięstwo z kursem 1,24, co odpowiada prawdopodobieństwu 76%. Kurs na zwycięstwo Poiriera wynosił 4,26 (22%), a prawdopodobieństwo remisu bukmacherzy wyceniali na kurs 51,0 (2%).

Skrypt przyjmuje zakłady użytkowników na wszystkie trzy możliwe wyniki, aż do uzyskania od orakula informacji o rzeczywistym wyniku walki. To jest jedyne kryterium do przyznawania wygranych.
Obecnie wiadomo, że zwyciężył Nurmagomedov. Jednak wyobraźmy sobie, że nieuczciwy właściciel orakula, planując oszustwo, postawił na wynik z najkorzystniejszym kursem — remis. Kiedy bank zakładów osiągnie dużą kwotę, właściciel orakula inicjuje zapis w blockchainie fałszywych informacji o rzekomym remisie. Skrypt zdecentralizowanej giełdy nie ma możliwości weryfikowania wiarygodności otrzymanych danych i jedynie przydziela wygrane zgodnie z tymi danymi.
Jeśli potencjalny zysk z takiego oszustwa jest wyższy niż przewidywany przychód uczciwego orakula, a jednocześnie ryzyko postępowania sądowego jest niskie, prawdopodobieństwo nieuczciwych działań właściciela orakula znacznie wzrasta.
Jednym z możliwych rozwiązań problemu jest pozyskiwanie danych od kilku orakuli i ujednolicenie uzyskanych wartości do konsensusu. Można wyróżnić kilka typów konsensusu:
- wszystkie orakule dostarczyły jedną informację
- większość orakuli dostarczyła jedną informację (2 z 3, 3 z 4 itd.)
- ujednolicenie danych orakuli do wartości średniej (są możliwe przypadki, w których najpierw odrzuca się wartość maksymalną i minimalną)
- Wszystkie orakule dostarczyły jednolitą informację z wcześniej ustalonym dopuszczalnym odchyleniem (na przykład, wartości wycen finansowych z różnych źródeł mogą się różnić o 0,00001, a uzyskanie dokładnego dopasowania to zadanie niemal niemożliwe).
- Wybrać z uzyskanych danych tylko unikalne wartości.
Wracając do naszej zdecentralizowanej giełdy zakładów. Przy użyciu konsensusu '3 z 4', jeden orakula, który zgłosiłby remis w walce, nie mógłby wpłynąć na wykonanie skryptu, pod warunkiem że trzej pozostali orakule podali by wiarygodne informacje.
Jednak niedobrosądny użytkownik może posiadać trzy z czterech orakuli i w ten sposób mógłby zapewnić większość decyzyjną.
Aby zadbać o uczciwość orakuli, można wprowadzić dla nich system oceniania lub kar za podawanie nieprawdziwych danych. Można również pójść w kierunku 'cukierka' i zaoferować nagrody za wiarygodność. Jednak żadne środki nie pozwolą całkowicie wyeliminować, na przykład, manipulacji ocenami czy niedobrosądną większość.
Czy więc warto wymyślać skomplikowane usługi, czy wystarczy mieć narzędzie do konsensusu, które pozwoli, jak na półce supermarketu, wybrać na przykład pięć orakuli dostarczających potrzebne dane, ustalić typ konsensusu i uzyskać wynik?
Na przykład, zdecentralizowana aplikacja potrzebuje danych dotyczących temperatury w stopniach Celsjusza. W katalogu orakuli znajdujemy cztery orakule, które dostarczają takie dane, ustalamy typ konsensusu 'średnia wartość' i wysyłamy zapytanie.
Załóżmy, że orakule podały wartości: 18, 17, 19 i 21 stopni. Różnica trzech stopni może okazać się dość krytyczna dla wykonania skryptu. Usługa przetwarza wynik i uzyskuje średnią temperaturę — 18,75 stopnia. Tę wartość otrzyma skrypt zdecentralizowanej aplikacji i będzie z nią pracować.

Ostatecznie decyzja należy do konsumenta: czy zaufać jednemu orakulu i używać jego danych, czy stworzyć konsensus kilku orakuli, wybranych według własnego uznania.
W każdym razie, orakle danych to stosunkowo nowa dziedzina. Jest na etapie, w którym sami użytkownicy mogą określić, w jakim kierunku ma się rozwijać. Dlatego chcemy usłyszeć Twoją opinię. Czy potrzebne jest wspomniane narzędzie dla orakli? Jak wyobrażasz sobie przyszłość orakli danych? Podziel się swoją opinią w komentarzach i w naszej oficjalnej grupie w .
Źródło: habr.com
