Blockchain Oracles uitgelegd
HomeArticles

Blockchain Oracles uitgelegd

Gemiddeld
6d ago
6m

Communautaire inzending - Auteur: Vallery Mou


Inhoudsopgave


Wat is een blockchain-oracle?

Blockchain-oracles zijn third-party services die smart contracts voorzien van externe informatie. Ze leggen de brug tussen blockchains en de buitenwereld.

Blockchains en smart contracts kunnen geen verbinding maken met off-chain gegevens (gegevens die zich buiten het netwerk bevinden). Voor veel contractuele overeenkomsten is het echter van vitaal belang om relevante informatie van de buitenwereld te verkrijgen om de overeenkomst te sluiten.

Dit is waar blockchain-oracles van pas komen, omdat ze een link vormen tussen off-chain en on-chain data. Oracles zijn van vitaal belang binnen het blockchain-ecosysteem omdat ze de reikwijdte vergroten waarbinnen smart contracts kunnen opereren. Zonder blockchain-oracles zouden smart contracts zeer beperkt toepasbaar zijn, omdat ze enkel gegevens vanuit hun eigen netwerken kunnen gebruiken.

Let op dat een blockchain-oracle niet de gegevensbron zelf is, maar eerder de laag die externe gegevensbronnen opvraagt, verifieert, authentiseert en die informatie vervolgens doorgeeft. De gegevens die door oracles worden verzonden, komen in verschillende vormen voor: prijsinformatie, transacties of de temperatuur gemeten door een sensor.

Om gegevens van de buitenwereld op te roepen, moet het smart contract worden geactiveerd en moeten netwerkbronnen worden aangeboord. Sommige oracles kunnen niet alleen informatie door geven aan smart contracts, maar deze ook terug te sturen naar de externe bronnen.

Er bestaan veel verschillende soorten oracles - hoe een blockchain-oracle werkt, is volledig afhankelijk van het doel waar het voor ontworpen is. Dit artikel zal enkele van die ontwerpen doornemen.


Voorbeeld van een blockchain-oracle

Stel dat Alice en Bob wedden wie de winnaar van de Amerikaanse presidentsverkiezingen zal worden. Alice gelooft dat de Republikeinse kandidaat zal winnen, terwijl Bob gelooft dat de Democraat de winnaar zal zijn. Ze komen de voorwaarden van de weddenschap overeen en zetten hun geld vast in een smart contract, dat het automatisch het geld vrijgeeft aan de winnaar na de verkiezingen.

Aangezien het smart contract geen interactie kan hebben met externe gegevens, is het afhankelijk van een oracle om het van de nodige informatie te voorzien - in dit voorbeeld de resultaten van de presidentsverkiezingen. Nadat de verkiezingen zijn afgelopen, vraagt het oracle via een trusted API welke kandidaat heeft gewonnen en geeft deze informatie door aan het smart contract. Het contract stuurt het geld vervolgens naar Alice of Bob, afhankelijk van de uitkomst.

Zonder een oracle dat gegevens doorgeeft, zou er geen manier zijn geweest om deze weddenschap af te handelen die op een manier die niet door een van de deelnemers zou kunnen worden beïnvloed.


Wat zijn de verschillende soorten blockchain-oracles?

Blockchain-oracles kunnen worden geclassificeerd afhankelijk van een aantal verschillende kwaliteiten:

  • Bron - zijn de gegevens afkomstig van software of hardware?
  • Richting van informatie - is deze binnenkomend of uitgaand?
  • Vertrouwen - is het gecentraliseerd of gedecentraliseerd?

Een oracle kan ook in meerdere categorieën vallen. Een oracle dat bijvoorbeeld informatie van een bedrijfswebsite haalt, is een gecentraliseerd inkomend softwareoracle.


Software oracles

Software-oracles werken samen met online informatiebronnen en verzenden deze naar de blockchain. Deze informatie kan afkomstig zijn van online databases, servers, websites - in principe dus elke gegevensbron die beschikbaar is op het web.

Het feit dat software-oracles zijn verbonden met internet, stelt hen niet alleen in staat om informatie te verstrekken aan smart contracts, maar ook om deze informatie in realtime te verzenden. Dit gegeven maakt ze daadoor een van de meest voorkomende soorten blockchain-oracles.

Informatie die doorgaans wordt geleverd door software-oracles kunnen bijvoorbeeld wisselkoersen, digitale activaprijzen of realtime vluchtinformatie bevatten.


Hardware oracles

Sommige smart contracts moeten een connectie hebben met de echte wereld. Hardware-oracles zijn ontworpen om informatie uit de fysieke wereld te halen en beschikbaar te maken voor smart contracts. Dergelijke informatie kan in dat geval worden doorgegeven via elektronische sensoren, barcodescanners en andere apparaten die data verzamelen.

Een hardware-oracle "vertaalt" real-world gebeurtenissen in digitale waarden die kunnen worden vertaald door smart contracts.

Dit kan bijvoorbeeld een sensor zijn die controleert of een vrachtwagen die goederen vervoert bij een laadperron is gearriveerd. Als dat dan zo is, dan stuurt het de informatie door naar een smart contract dat vervolgens op basis van deze info de actie kan uitvoeren.

Als je meer wilt lezen over een soortgelijk onderwerp, bekijk dan Blockchain Use Cases: Supply Chain.


Inkomende en uitgaande oracles

Inkomende oracles verzenden informatie van externe bronnen naar smart contracts, terwijl uitgaande oracles juist informatie van smart contracts naar de externe wereld verzenden.

Een voorbeeld van een inkomende oracle is wanneer de temperatuur wordt gemeten door een sensor dat hij deze doorgeeft aan een smart contract. Een voorbeeld van een uitgaand oracle kan zijn het gebruik van een smart lock. Als geld op een adres wordt gestort, verzendt het smart contract deze informatie via een uitgaande oracle naar een mechanisme dat het smart lock ontgrendelt.


Gecentraliseerde en gedecentraliseerde oracles

Een gecentraliseerd oracle wordt beheerd door een enkele entiteit en is daardoor ook tevens de enige aanbieder van informatie voor het smart contract. Het gebruik van slechts één informatiebron kan risico’s opleveren, aangezien de effectiviteit van het contract volledig afhangt van de entiteit die het oracle beheert. Ook kunnen de slechte intenties van kwaadwillende een negatieve invloed uitoefenen op het smart contract. Het grootste probleem met gecentraliseerde oracles is het ‘single point of faillure, waardoor de contracten minder bestand zijn tegen aanvallen.

Gedecentraliseerde oracles delen dezelfde doelen als openbare blockchains - waarbij tegenpartijrisico wordt vermeden. Ze verhogen de betrouwbaarheid van de informatie die wordt verstrekt aan smart contracts door niet enkel gebruik te maken van een enkele bron. Het smart contract vraagt meerdere oracles om de geldigheid en nauwkeurigheid van de gegevens vast te stellen. Dit is de reden waarom gedecentraliseerde oracles ook wel consensus oracles kunnen worden genoemd.

Sommige blockchain-projecten bieden gedecentraliseerde Oracle-services aan andere blockchains. Gedecentraliseerde oracles kunnen ook nuttig zijn bij voorspellingsmarkten, waar de geldigheid van een bepaalde uitkomst kan worden geverifieerd door sociale consensus.

Hoewel gedecentraliseerde oracles gericht zijn op het bereiken van betrouwbaarheid, is het belangrijk op te merken dat gedecentraliseerde oracles, net als vertrouwde blockchain-netwerken, volledig betrouwbaar zijn in te richten, maar de betrouwbaarheid eerder verdelen onder veel deelnemers.


Contractspecifieke oracles

Een contractspecifiek oracle is ontworpen om door een enkel smart contract te worden gebruikt. Dit houdt in dat als men meerdere smart contracts wil inzetten, een evenredig aantal contractspecifieke oracles moet worden ontwikkeld.

Dit type oracle wordt als zeer tijdrovend en duur in het onderhoud gezien. Bedrijven die gegevens uit verschillende bronnen willen halen, kunnen deze aanpak onpraktisch vinden. Aan de andere kant, omdat contractspecifieke oracles uit het niks worden ontworpen voor een specifieke use case, hebben ontwikkelaars meer flexibiliteit om ze aan specifieke eisen te laten voldoen.


Menselijke oracles

Soms kunnen personen met specialistische kennis op een bepaald gebied ook als oracles ingezet worden. Ze kunnen de authenticiteit van informatie uit verschillende bronnen onderzoeken en verifiëren en die informatie vertalen naar smart contracts. Aangezien menselijke oracles hun identiteit kunnen verifiëren met behulp van cryptografie, is de mogelijkheid dat een fraudeur zijn identiteit vervalst en corrupte gegevens verstrekt relatief klein.


Het Oracle-probleem

Omdat smart contracts beslissingen nemen op basis van gegevens die door oracles worden verstrekt, zijn ze essentieel voor een gezond blockchain-ecosysteem. De belangrijkste uitdaging bij het ontwerpen van oracles is dat als het oracle gecompromitteerd is, het smart contract dat erop vertrouwt ook gecompromitteerd is. Dit wordt vaak het Oracle-probleem genoemd.

Aangezien oracles geen bestanddeel uitmaken van de blockchain, vallen ze helaas ook niet onder de beveiligingsmechanismen die openbare blockchains kunnen bieden. Het probleem in vertrouwen tussen third-party oracles en de uitvoering van smart contracts blijft grotendeels onopgelost tot op heden.

Man-in-the-middle-aanvallen kunnen ook een bedreiging vormen. Dit is als een kwaadwillende toegang krijgt tot de data flow tussen de oracles en het contract en vervolgens de gegevens wijzigt of vervalst.


Tot slot

Een betrouwbaar mechanisme dat de communicatie tussen smart contracts en de externe wereld tot stand brengt, is van vitaal belang voor wereldwijde acceptatie van blockchains. Zonder blockchain-oracles zouden smart contracts alleen moeten vertrouwen op informatie die zich al in hun netwerken bevindt, wat hun mogelijkheden aanzienlijk zou beperken.

Gedecentraliseerde oracles hebben de mogelijkheid om beveiligingsmechanismen te bieden die veel systeemrisico's van het blockchain-ecosysteem kunnen wegnemen. Blockchain-oracles blijven een van de kritieke bouwstenen die op een veilige, betrouwbare en betrouwbare manier moeten worden geïmplementeerd om het blockchain-ecosysteem te laten groeien.