
Blockchain-orakler løser problemet med at levere information til blockchain fra den eksterne verden. Men det er vigtigt for os at vide, hvilke vi kan stole på.
I om lanceringen af kataloget vi har skrevet om vigtigheden af orakler for blockchain.
Decentraliserede applikationer har ikke adgang til data uden for blockchain. Derfor oprettes små programmer – orakler – der får adgang til de nødvendige data fra den eksterne verden og registrerer dem i blockchain.
Orakler kan opdeles i tre kategorier efter type af datakilde: software, hardware og menneskelig.
Software orakler modtager og behandler data fra internettet, såsom temperatur, varepriser, forsinkelser af tog og fly. Informationen kommer fra online-kilder, fx API'er, og oraklet udtrækker den og placerer den i blockchain. Læs mere om, hvordan man laver et simpelt software orakel .
Hardware orakler overvåger objekter i den virkelige verden ved hjælp af enheder og sensorer. For eksempel tager et kamera, der er kalibreret til at registrere krydsning af en linje, billeder af biler, der entrer et bestemt område. Oraklet registrerer krydsningen af linjen i blockchain, og baseret på disse data kan en decentraliseret applikationsskript f.eks. indlede udstedelse af bøder og fradrag af tokens fra ejerens konto.
Menneskelige orakler bruger data indtastet af mennesker. De betragtes som de mest avancerede på grund af den uafhængige vurdering af begivenhedens udfald.
For nylig har vi introduceret et værktøj, der gør det muligt at registrere orakeldata i blockchain i henhold til en specificeret skabelon. Det er meget enkelt at bruge: man skal blot registrere , ved at udfylde specifikationen. Efter dette kan man offentliggøre datatransaktioner i henhold til denne specifikation via Waves Oracles-grænsefladen. Læs mere om værktøjet i .

Sådanne standardiserede værktøjer og grænseflader gør livet nemmere for både udviklere og brugere af blockchain-tjenester. Vores værktøj er nyttigt specifikt for menneskelige orakler og kan f.eks. bruges til at registrere certifikater eller ophavsret til bestemte objekter.
Men når man bruger orakler, opstår spørgsmålet om tillid til den information, der modtages fra dem. Er kilden pålidelig? Bliver dataene modtaget til tiden? Derudover er der risiko for, at oraklet vil bedrage brugerne ved bevidst at give falsk information for egen vindings skyld.
Som et eksempel kan vi se på et orakel, der leverer information om sportsbegivenheder til en decentraliseret væddemålsbørs.
Begivenheden er hovedkampen i UFC 242, Khabib Nurmagomedov mod Dustin Poirier. Ifølge bookmakerne er Nurmagomedov den klare favorit i kampen. Man kunne vædde på hans sejr med en odds på 1,24, hvilket svarer til en sandsynlighed på 76 %. Oddset for Poiriers sejr var 4,26 (22 %), og bookmakerne anslog sandsynligheden for et uafgjort resultat til en odds på 51,0 (2 %).

Scriptet accepterer brugernes væddemål på alle tre mulige udfald, indtil det modtager information fra oraklet om det faktiske resultat af kampen. Dette er det eneste kriterium for fordelingen af gevinster.
Det er nu kendt, at Nurmagomedov vandt kampen. Men lad os forestille os, at en uærlig ejer af oraklet, der planlægger at bedrage, har sat sit væddemål på det mest fordelagtige udfald — uafgjort. Når væddemålspuljen når et stort volumen, initierer ejeren af oraklet en registrering i blockchain med falsk information om et angiveligt uafgjort kampresultat. Scriptet på den decentraliserede børs har ikke mulighed for at efterkontrollere pålideligheden af de modtagne data og fordeler kun gevinsterne i henhold til disse data.
Hvis den potentielle fortjeneste fra denne form for bedrageri er højere end den forventede indtægt fra et ærligt orakel, og risikoen for retssager er lav, stiger sandsynligheden for, at ejeren af oraklet handler uetisk betydeligt.
En mulig løsning på problemet er at anmode om data fra flere orakler og bringe de modtagne værdier til konsensus. Man kan skelne mellem flere typer konsensus:
- alle orakler har givet ens information
- de fleste orakler har givet ens information (2 ud af 3, 3 ud af 4 osv.)
- bringe oraklernes data til en gennemsnitsværdi (der kan være varianter, hvor de maksimale og minimale værdier først kasseres)
- Alle orakler har givet ensartet information med en forudbestemt acceptabel afvigelse (for eksempel kan finansielle citater fra forskellige kilder variere med 0,00001, og at få en nøjagtig overensstemmelse er en umulig opgave)
- Vælg kun unikke værdier fra de indsamlede data
Lad os vende tilbage til vores decentrale væddemålsbørs. Ved at bruge konsensus "3 af 4" ville en orakel, der rapporterede om en uafgjort kamp, ikke kunne påvirke udførelsen af skriptet, hvis tre andre orakler gav pålidelig information.
Men en illoyalt bruger kan eje tre ud af fire orakler, og så ville han kunne sikre det afgørende flertal.
For at sikre oraklernes ærlighed kan der indføres et ratingsystem eller en bødesystem for unøjagtige data. Man kan også tage den positive tilgang og tilbyde belønning for pålidelighed. Men ingen foranstaltninger kan helt forhindre for eksempel manipulering af rating eller et illoyal flertal.
Er det værd at opfinde komplekse tjenester, eller vil det være tilstrækkeligt at have et værktøj til konsensus, der gør det muligt, ligesom i supermarkedets hylder, at vælge fem orakler, der udleverer de ønskede data, angive konsensusstype og få et resultat?
For eksempel har den decentrale applikation brug for temperaturdata i grader Celsius. I orakelkataloget finder vi fire orakler, der leverer sådanne data, angiver konsensusformen "gennemsnit" og sender en forespørgsel.
Antag, at oraklerne har givet værdierne: 18, 17, 19 og 21 grader. En forskel på tre grader kan være kritisk for udførelsen af skriptet. Tjenesten behandler resultatet og får gennemsnitsværdien af temperaturen — 18,75 grader. Dette tal vil skriptet for den decentrale applikation modtage og arbejde med.

I sidste ende forbliver beslutningen hos forbrugeren: Skal man stole på et enkelt orakel og bruge dets data, eller skal man danne en konsensus af flere orakler, der er valgt efter eget skøn.
Under alle omstændigheder er dataorakler et relativt nyt område. Det er på det stadie, hvor brugerne selv kan bestemme, i hvilken retning det skal udvikle sig. Derfor vil vi gerne høre din mening. Er det førnævnte værktøj nødvendigt for orakler? Hvordan ser du fremtiden for dataorakler generelt? Del din mening i kommentarerne og i vores officielle gruppe på .
Kilde: habr.com
