
Blockchain orakuli rješavaju problem dostave informacija iz vanjskog svijeta u blockchain. No, važno je znati kojima od njih možemo vjerovati.
U o pokretanju kataloga pisali smo o važnosti orakula za blockchain.
Decentralizirane aplikacije nemaju pristup podacima izvan blockchaina. Zato se kreiraju male programe – orakuli – koji dobivaju pristup potrebnim podacima iz vanjskog svijeta i upisuju ih u blockchain.
Prema vrsti izvora podataka, orakuli se mogu podijeliti u tri kategorije: softverski, hardverski i ljudski.
Softverski orakuli dobivaju i obrađuju podatke s interneta – poput temperature zraka, cijena proizvoda, kašnjenja vlakova i aviona. Informacije dolaze iz online izvora, poput API-a, a orakuli ih prikupljaju i upisuju u blockchain. O tome kako napraviti jednostavni softverski orakul pročitajte .
Hardverski orakuli prate objekte stvarnog svijeta pomoću uređaja i senzora. Na primjer, kamera kalibrirana za prelaženje linije snima automobile koji ulaze u određenu zonu. Orakul bilježi činjenicu prelaska linije u blockchain, a na temelju tih podataka, skripta decentralizirane aplikacije može, primjerice, inicirati izdavanje kazne i zaduženje tokena s računa vlasnika automobila.
Ljudski orakuli koriste podatke koje su unijeli ljudi. Smatraju se najprogresivnijima zbog neovisnog pogleda na ishod događaja.
Nedavno smo pružili alat koji omogućava upis podataka orakula u blockchain prema zadanoj specifikaciji. Radi vrlo jednostavno: potrebno je samo registrirati , popunjavanjem specifikacije. Nakon toga, moguće je objavljivati transakcije podataka prema toj specifikaciji putem sučelja Waves Oracles. Pročitajte više o alatu u .

Ovi standardizirani alati i sučelja olakšavaju život kako programerima, tako i korisnicima usluga na blockchainu. Naš alat je posebno koristan za ljudske orakule i može se koristiti, na primjer, za upisivanje certifikata ili autorskih prava na određene objekte.
No kod korištenja oracle-a postavlja se pitanje povjerenja u informacije koje od njih dolaze. Da li je izvor pouzdan? Hoće li podaci biti dobiveni na vrijeme? Osim toga, postoji rizik da oracle može prevariti korisnike kako bi ostvario vlastitu dobit namjerno pružajući netočne informacije.
Uzmimo za primjer oracle koji pruža informacije o sportskim događajima za decentraliziranu burzu klađenja.
Događaj — glavna borba turnira UFC 242, Khabib Nurmagomedov protiv Dustina Poiriera. Prema procjenama kladionica, Nurmagomedov je jasan favorit borbe. Klađenje na njegovu pobjedu moglo se staviti s koeficijentom 1,24, što odgovara vjerojatnosti od 76%. Koeficijent na pobjedu Poiriera iznosio je 4,26 (22%), a vjerojatnost neodlučenog ishoda kladionice je procijenila s koeficijentom 51,0 (2%).

Skripta prihvaća oklade korisnika na sve tri moguća ishoda, dok ne primi od oracle-a informacije o stvarnom rezultatu borbe. To je jedini kriterij za raspodjelu dobitaka.
Sada je poznato da je pobjedu odnio Nurmagomedov. Međutim, zamislimo da je nepošteni vlasnik oracle-a, unaprijed planirajući prevaru, uložio na ishod s najpovoljnijim koeficijentom — neodlučenu borbu. Kada je bank oklada dostigao veliku sumu, vlasnik oracle-a pokreće zapis u blockchain lažnih informacija o navodnom neodlučenom rezultatu borbe. Skripta decentralizirane burze nema mogućnost provjere točnosti dobivenih podataka i samo raspoređuje dobitke prema tim podacima.
Ako potencijalna dobit od takve prevare premašuje predviđeni prihod od poštenog oracle-a, a rizik od pokretanja tužbe je nizak, vjerojatnost nepoštenih radnji vlasnika oracle-a značajno se povećava.
Jedno od mogućih rješenja problema je zatražiti podatke od više oracle-a i dovesti dobivene vrijednosti do konsenzusa. Mogu se izdvojiti nekoliko tipova konsenzusa:
- svi oracle-i pružili jedinstvene informacije
- većina oracle-a pružila jedinstvene informacije (2 od 3, 3 od 4 itd.)
- dovođenje podataka oracle-a do prosječne vrijednosti (moguće je opcije u kojima se prethodno odbacuju maksimalna i minimalna vrijednost)
- svi orakuli su pružili jedinstvene informacije s unaprijed dogovorenim dopuštenim odstupanjem (na primjer, vrijednosti financijskih kotacija iz različitih izvora mogu se razlikovati za 0,00001, a postizanje točne podudarnosti je neizvedivo)
- odabrati samo jedinstvene vrijednosti iz dobivenih podataka
Vratimo se našoj decentraliziranoj burzi klađenja. Kada se koristi konsenzus „3 od 4”, jedan orakul koji je izvijestio o izjednačenju u utakmici ne bi mogao utjecati na izvršenje skripte pod uvjetom da su tri druga orakula dala pouzdane informacije.
No, nedobrovoljni korisnik može posjedovati i tri od četiri orakula, a tada može osigurati odlučujuću većinu.
U nastojanju da se osigura poštenje orakula, može se uvesti sustav ocjenjivanja ili sustav kazni za netočnost podataka. Možemo i primijeniti put „mrkve” i ponuditi nagradu za pouzdanost. No, nijedna mjera ne može potpuno izbjeći, na primjer, navodnu zavaranu ocjenu ili nedobrovoljnu većinu.
Trebamo li izmišljati složene usluge, ili će biti dovoljno imati alat za konsenzus koji će omogućiti, poput police u supermarketu, odabrati, na primjer, pet orakula koji pružaju potrebne podatke, postaviti tip konsenzusa i dobiti rezultat?
Na primjer, decentraliziranoj aplikaciji potrebni su podaci o temperaturi u stupnjevima Celzijusa. U katalogu orakula pronalazimo četiri orakula koja pružaju takve podatke, postavljamo tip konsenzusa „prosječna vrijednost” i šaljemo zahtjev.
Pretpostavimo da su orakuli dali vrijednosti: 18, 17, 19 i 21 stupanj. Razlika od tri stupnja može se pokazati prilično kritičnom za izvršenje skripte. Usluga obrađuje rezultat i dobiva prosječnu temperaturu — 18,75 stupnjeva. Tu brojku će dobiti skripta decentralizirane aplikacije i raditi s njom.

Na kraju, odluka ostaje na potrošaču: vjerovati jednom orakulu i koristiti njegove podatke, ili stvoriti konsenzus više orakula, odabranih po vlastitom nahođenju.
U svakom slučaju, podaci orakuli su relativno nova oblast. Nalaze se na toj tački gde sami korisnici mogu odrediti u kojem pravcu će se razvijati. Stoga želimo čuti vaše mišljenje. Da li je opisani alat potreban za orakule? Kako vidite budućnost podataka orakula uopšte? Podelite svoje misli u komentarima i u našoj službenoj grupi na .
Izvor: habr.com
