Binnen een blockchaincontext is een oracle een externe invoer van data naar een blockchain toe, meestal naar smart contracts.
Een oracle zorgt voor de verbinding tussen de niet-digitale, analoge wereld en informatie die opgeslagen moet worden op een blockchain en/of eerst verwerkt in/door een smart contract. Een voorbeeld van een oracle is een systeem dat de uitslag van een voetbalwedstrijd beschikbaar maakt, waardoor het in een smart contract te gebruiken is.
Een oracle moet zowel met de externe databron communiceren als de data verifiëren en bevestigen dat de data kloppen. Dat laatste is de lastige stap in het verbinden van de wereld buiten de betreffende blockchain en de blockchain en/of smart contracts zelf.
Er bestaan verschillende oracles die met blockchains interacteren, zoals:
-Software oracles: ontvangen data van externe applicaties en api’s, zoals weerdata, status van vliegtuigen, prijzen van cryptovaluta, etc.
-Hardware oracles: integraties met hardware, zoals sensoren, RFID-chips, NFC-chips, scansystemen, etc.
-Consensus oracles: oracles die data ontvangen van andere oracles met eigen consensussystemen om te zorgen dat de verzamelde data gevalideerd en accuraat zijn.
Oracleprobleem
Of het probleem dat oracles gecentraliseerd zijn en smart contracts met de data vervolgens acties uitvoeren, wat voor een conflict zorgt bij trustless smart contracts en gecentraliseerde, niet-trustless-systemen.