Wat is een blockchain-oracle? Uitleg over oracles

Home Woordenlijst Wat is een blockchain-oracle? Uitleg over oracles

Een blockchain-oracle is een dienst die gegevens van buiten de blockchain, zoals koersen, wisselkoersen, weer, sportuitslagen of leverstatus, beschikbaar maakt voor smart contracts. Smart contracts kunnen alleen gegevens lezen die al op hun eigen blockchain staan; ze kunnen geen API op internet aanroepen. Een oracle vult dat gat door externe gegevens on-chain te publiceren op een manier die het contract kan vertrouwen. Zonder oracles zou het meeste DeFi niet werken.

Hoe werkt een oracle?

  • Gegevens verzamelen: onafhankelijke node-operators halen gegevens op uit meerdere bronnen, zoals exchanges en dataleveranciers.
  • Samenvoegen: de waarden worden gecombineerd, bijvoorbeeld door de mediaan te nemen, zodat één foute of gemanipuleerde bron weinig invloed heeft.
  • On-chain publiceren: het resultaat wordt in een oraclecontract gezet, op vaste momenten en bij voldoende koersbeweging (push-model) of op verzoek in de transactie van de gebruiker (pull-model).
  • Gebruiken: smart contracts lezen de laatste waarde, bij voorkeur samen met een tijdstempel om te controleren dat die actueel is.

Chainlink is het meest gebruikte gedecentraliseerde oraclenetwerk; ook Pyth, RedStone en andere worden veel gebruikt, vooral voor snel bewegende koersdata.

Waarvoor worden oracles gebruikt?

  • Koersfeeds: leenprotocollen gebruiken ze om onderpand te waarderen en liquidaties te starten; ook derivaten en stablecoins zijn ervan afhankelijk.
  • Willekeur: controleerbare willekeurige getallen voor games, loterijen en verdeling van NFT's.
  • Gebeurtenissen in de echte wereld: verzekeringsuitkeringen op basis van weer of vluchtvertraging, afwikkeling van voorspellingen, leverbevestigingen.
  • Proof of reserve: aantonen dat tokens worden gedekt door bezittingen die elders worden aangehouden.
  • Automatisering en cross-chain: contractfuncties starten volgens schema of bij een voorwaarde, en berichten tussen chains doorgeven.

Het oracleprobleem en de risico's

Een smart contract is zo betrouwbaar als de gegevens die het ontvangt: klopt de oracle niet, dan voert het contract feilloos uit op foute gegevens. Protocollen die de spotprijs van één exchange als oracle gebruikten, zijn leeggehaald via koersmanipulatie met flash loans. Veiligere ontwerpen gebruiken gedecentraliseerde oraclenetwerken of tijdgewogen gemiddelde prijzen, controleren op verouderde gegevens, stellen grenzen aan redelijke waarden, en hebben een terugvaloptie of pauze als feeds uitvallen. Zie onze DeFi liquiditeitsmonitoring, on-chain automatisering en EVM event listeners.

Veelgestelde vragen over oracles

Waarom kunnen smart contracts niet zelf een API aanroepen?

Omdat elke node bij het uitvoeren van een transactie precies hetzelfde resultaat moet krijgen. Een API kan op verschillende momenten verschillende antwoorden geven, wat de consensus zou breken.

Wat is Chainlink?

Een gedecentraliseerd oraclenetwerk waarvan de node-operators koersfeeds, willekeur, automatisering en cross-chain messaging leveren aan smart contracts op veel blockchains.

Wat is oraclemanipulatie?

Een aanval waarbij iemand de koers die een oracle doorgeeft tijdelijk verschuift, bijvoorbeeld via een dunne handelspool, om te veel te lenen of oneerlijke liquidaties te veroorzaken.

Kan ik een eigen oracle draaien?

Ja, bijvoorbeeld om eigen bedrijfsgegevens on-chain te publiceren. U wordt dan zelf de vertrouwde partij, dus dat past het best als gebruikers u als gegevensbron al vertrouwen.