Blockchain Oracles

Maak jij al gebruik van applicaties die op de blockchain draaien (dApps)? Waarschijnlijk zijn er nog maar weinig mensen die dit doen. Ze maken nog gebruik van gecentraliseerde applicaties, en dat is logisch, omdat er met zulke applicaties nu eenmaal nog meer mogelijk is. Maar dat is iets waar blockchain Oracles verandering in moeten brengen. Al is dat nog helemaal niet zo makkelijk, en dat komt door het Oracle-probleem. We leggen je in dit artikel graag uit wat het Oracle-probleem is, en hoe blockchain Oracles ervoor moeten zorgen dat gebruik van dApps een stuk makkelijk wordt.

Wat zijn blockchain Oracles?

In blockchain-technologie is een Oracle een informatiebron waarmee variabelen uit de echte wereld kunnen worden geïntegreerd in smart contracts.

Dit komt omdat blockchain niet toestaat dat gegevens worden verzameld uit externe bronnen (buitenwereld). Dit noemen we ook wel off-chain data, omdat het om data gaat die niet van de blockchain afkomstig is. De data die al op de blockchain beschikbaar is, wordt on-chain data genoemd. Het is vaak lastig om off-chain data op de blockchain te krijgen, en on-chain data naar de buitenwereld te transporteren.

Echter is het model om externe data aan de blockchain te leveren niet levensvatbaar omdat de externe inhoud via een derde partij in een blok zou moeten worden geüpload. Dus, elke keer als de blockchain wordt gedownload, worden de externe gegevens aangeroepen. Als de externe gegevens niet beschikbaar zouden worden, zou dat de werking van de blockchain in gevaar brengen.

Het is daarom belangrijk dat de externe gegevens ten alle tijden beschikbaar zijn, om zo een blockchain altijd te kunnen laten werken. Het Oracle is verantwoordelijk voor het verstrekken van de externe gegevens die gedecentraliseerde applicaties (dApps) en smart contracts kan laten werken op de blockchain.

Wat zijn smart contracts?

Smart contracts zijn contracten die alleen worden uitgevoerd als aan bepaalde, vooraf vastgestelde, voorwaarden is voldaan. Dit activeert een gebeurtenis op de blockchain, zoals de overdracht van een bepaald aantal cryptomunten. Met smart contracts is ontzettend veel mogelijk, en deze worden nu voornamelijk gebruikt op de Ethereum blockchain. Echter zijn er steeds meer blockchains die werken met smart contracts.

dApps

Gedecentraliseerde applicaties zijn applicaties die op de blockchain draaien. Ethereum is ook voor dApps een geliefde blockchain, gezien de structuur en technische werking van de blockchain. Echter zouden dApps veel beter gebruikt kunnen worden wanneer er ook off-chain data naar de dApps gestuurd kan worden. Wanneer dit niet mogelijk is, wordt het lastig voor dApps om de huidige en dus centrale applicaties te vervangen.

Waar wordt een Oracle voor gebruikt?

Het Oracle maakt het mogelijk gegevens van de buitenwereld toe te voegen aan een blockchain. Deze Oracle zijn diensten van derden die veel gegevens leveren zoals verkiezingsuitslagen, weersomstandigheden, uitslag van sportwedstrijden en vluchtvertragingen. Er zijn ontzettend veel verschillende soorten gegevens te bedenken die door een Oracle aangeleverd zou kunnen worden.

Zij fungeren als autoriteit en waarheid. Afhankelijk van de informatie die door de Oracles wordt verstrekt, zal het smart contract al dan niet in werking worden gesteld. Vergeet niet dat de blockchain geen toegang heeft tot gegevens die buiten zijn netwerk zijn opgeslagen.

Er zijn verschillende soorten oracles:
  • Software Oracles: zij beheren informatie die op het internet beschikbaar is. Hun bronnen zijn meestal websites. Ze kunnen gegevens als temperaturen, wedstrijduitslagen of vluchtvertragingen ophalen van verschillende bronnen. Een voorbeeld van een software Oracle is Chainlink; zij leveren namelijk data die beschikbaar is op het internet.
  • Fysieke Oracles: zij zenden informatie rechtstreeks uit de echte wereld. Het kan bijvoorbeeld gaan om bewegingssensoren of RFID-chips die het via GPS mogelijk maken de locatie van een voorwerp te bepalen.
Fysieke en software Oracles worden Inkomende Oracles genoemd. Zij maken het mogelijk om gegevens van de buitenwereld in de blockchain te integreren, met name via smart contracts.

Er bestaan echter ook nog andere soorten Oracles:
  • Uitgaande Oracles: zij maken het mogelijk om gegevens van de blockchain naar de buitenwereld te sturen. Een overdracht van bepaalde waardes vindt bijvoorbeeld plaats op de blockchain, waardoor een ‘slot’ in de echte wereld kan worden ontgrendeld.
  • Voorspellende Oracles: Augur en Gnosis zijn de voorlopers van deze soorten Oracles. Zij maken bevestiging van toekomstige uitkomsten mogelijk, vooral door middel van de Wisdom of Crowds. Het is namelijk vaak zo dat als een grote groep mensen denkt dat iets gebeurt, het ook op die manier gebeurt. Dit noemen we dus de Wisdom of Crowds.

Betrouwbaarheid en veiligheid van Oracles

De betrouwbaarheid en veiligheid van Oracle is ontzettend belangrijk. Want hoe weet je zeker dat de aangeleverde data betrouwbaar is? Dit noemen we ook wel het Oracle-probleem. Veel blockchains of blockchain projecten worstellen met het Oracle-probleem, al zijn er enkele projecten die beweren de oplossing in handen te hebben.

Om Oracles te vertrouwen is het noodzakelijk om niet één enkele gegevensbron te kiezen. Stel je voor dat deze bron foute informatie levert (dit kan door hacking, een foutje of manipulatie), dan zou de blockchain ook gebaseerd zijn op foute gegevens. Dat kan ervoor zorgen dat gebruikers van de blockchain afstappen, omdat deze niet bruikbaar is.

Het verdient daarom de voorkeur verschillende Oracles te selecteren, zodat de bronnen elkaar kruiselings kunnen controleren. De informatie die door het grootste aantal Oracles wordt aangeleverd, wordt gekozen en toegevoegd aan de blockchain. Het is dan noodzakelijk om bij het maken van het smart contract te kiezen met welke Oracles rekening zal worden gehouden.

Voorbeeld

Stel dat we willen dat Oracles de resultaten van een voetbalwedstrijd in de blockchain integreert, vragen we hen de informatie van 30 betrouwbare websites op het gebied van sportnieuws te halen. Als 27 websites aangeven dat Ajax-Feyenoord is geëindigd in een 2-0 overwinnen voor Ajax, en drie websites een andere uitslag aangeven, wordt de 2-0 uitslag als waarheid aangenomen.

Het is dus belangrijk dat deze gegevens veilig en betrouwbaar zijn. Dit is van cruciaal belang omdat er in geval van een fout geen weg terug is als het contract wordt uitgevoerd, zelfs als de gegevens onjuist zijn. Zo werkt de blockchain nu eenmaal, en dat zorgt voor problemen die Oracle crypto projecten proberen op te lossen.

Oracle crypto projecten

Er zijn verschillende Oracle crypto projecten die zich bezighouden met blockchain Oracles. Zij proberen om externe data te leveren aan blockchains, en het Oracle-probleem hiermee op te lossen. De bekendste projecten die doet doen zijn Chainlink, Augur en Gnosis.

Bij Augur en Gnosis is het voor gebruikers mogelijk om een voorspellingsmarkt op te zetten. Dit is een soort weddenschap, waar gebruikers aan kunnen deelnemen. Zo kan iemand een voorspellingsmarkt opzetten voor de verkiezingsuitslag. Winnaars van de voorspellingsmarkt kunnen hier vervolgens tokens mee winnen.

Hier wordt gebruik gemaakt van Wisdom of Crowds. Dat houdt in dat op basis van de verwachtingen van de deelnemers de mogelijkheid wordt berekend dat iets ook daadwerkelijk zo zal gebeuren. Met de verwachtingen van een grote groep mensen proberen deze crypto projecten een waarde te genereren die ze kunnen leveren via blockchain Oracles.

Chainlink is een project dat smart contracts beschikbaar wil maken voor de hele wereld. Dat doen ze door externe data te leveren aan de blockchain. Deze gegevens worden door verschillende nodes geleverd, en vervolgens kijkt Chainlink naar welke informatie juist is. Vervolgens zal de juiste informatie door het Oracle geleverd worden.