Blockchain-orakels zijn entiteiten die blockchains verbinden met externe systemen, waardoor slimme contracten kunnen worden uitgevoerd, afhankelijk van real-world inputs en outputs. Oracles geven het Web 3.0-ecosysteem een methode om verbinding te maken met bestaande legacy-systemen, databronnen en geavanceerde berekeningen.
Gedecentraliseerde Oracle-netwerken (DON's) maken de implementatie mogelijk van hybride slimme contracten, waarin off-chain infrastructuur en on-chain code zijn gekoppeld om complexe gedecentraliseerde applicaties (DApps) te bieden die reageren op gebeurtenissen in de echte wereld en interactie met traditionele systemen.
Stel dat Alice en Bob een weddenschap willen plaatsen op de uitkomst van een paardenrace. Het totaal van $ 80 wordt in escrow gehouden door een slim contract, waarbij Alice $ 50 inzet op team X en Bob $ 30 inzet op team Y. Hoe weet het slimme contract of het geld aan Alice of Bob moet worden gegeven als het spel voorbij is? De oplossing is dat er een orakelmechanisme nodig is om nauwkeurige matchresultaten buiten de keten op te halen en deze veilig en betrouwbaar aan de blockchain te leveren.
Vanwege het gedistribueerde grootboekaspect van de blockchain, moet elk knooppunt in het netwerk hetzelfde resultaat behalen met dezelfde invoer. Als een knooppunt bijvoorbeeld de transactie van een ander knooppunt probeert te valideren, krijgt dit een ander resultaat. Deze architectuur is gemaakt om deterministisch te zijn.
Consensus is de techniek om overeenstemming te bereiken over een gegevenswaarde in blockchain, en determinisme is vereist voor knooppunten om consensus te bereiken. Sommigen van hen zullen u misschien bekend voorkomen, zoals proof-of-work (PoW) met Nakamoto-consensus en proof-of-stake (PoS) met Byzantijnse consensus. Een van de belangrijkste factoren die ervoor zorgen dat blockchain werkt, is consensus.
De blockchain-wereld moet echter verbinding maken met de werkelijke wereld. Om DeFi te hebben, moeten we de prijs van Ether (ETH) en andere cryptocurrencies in een contract krijgen. We hebben meteorologische gegevens nodig om een gedecentraliseerde, betrouwbare verzekering te kunnen bieden. Om blockchain te gebruiken voor een van de meest essentiële toepassingen, slimme contracten, hebben we gegevens nodig. Dus, gezien deze beperking, hoe verbinden we de werelden?
Deze gids is bedoeld om uit te leggen wat blockchain-orakels doen, het blockchain-orakelprobleem en om verschillende blockchain-orakelprojecten te introduceren.
Het blockchain-orakeldilemma benadrukt een belangrijke beperking van slimme contracten, d.w.z. ze kunnen op geen enkele manier verbinding maken met gegevens en systemen buiten hun oorspronkelijke blockchain-context. Externe bronnen worden "off-chain" genoemd, terwijl gegevens die momenteel op de blockchain zijn vastgelegd, "on-chain" worden genoemd.
Blockchains bereiken hun meest gunstige eigenschappen door doelbewust gescheiden te zijn van externe systemen, zoals het voorkomen van dubbele uitgaven, sterke consensus over de authenticiteit van gebruikerstransacties en het verminderen van netwerkuitval. Om veilig te communiceren met off-chain systemen van een blockchain en om de kloof tussen twee omgevingen te overbruggen, heb je een extra stuk infrastructuur nodig dat een 'orakel' wordt genoemd.
Omdat de overgrote meerderheid van smart contract use-cases, zoals DeFi, kennis van real-world data en gebeurtenissen buiten de keten vereisen, is het van cruciaal belang om het orakelprobleem op te lossen. Als gevolg hiervan verbreden orakels de soorten digitale contracten die blockchains mogelijk maken door een universele toegangspoort te bieden tot off-chain bronnen met behoud van de belangrijkste beveiligingskwaliteiten van de blockchain.
Activaprijzen voor financiën, identiteitsverificatie voor de overheid, willekeur voor gaming, weersinformatie voor verzekeringen zijn slechts enkele van de sectoren die profiteren van de integratie van orakels met slimme contracten.
Elk apparaat of entiteit dat een deterministische blockchain verbindt met off-chain data wordt een blockchain-orakel genoemd. Elke gegevensinvoer wordt gerouteerd via een externe transactie in deze orakels.
We kunnen er echter zeker van zijn dat de blockchain alle informatie bevat die nodig is om zichzelf op deze manier te authenticeren. Oracles worden beschouwd als blockchain-middleware omdat ze dienen als een link tussen de twee rijken.
Chainlink is de industriestandaard voor gedecentraliseerde orakels omdat het zowel de toegang tot externe gegevens als de centralisatie van smart contract-problemen overwint. Dus, wat zijn Chainlink-orakels?
Chainlink is een gedecentraliseerd Oracle-netwerk dat real-world gegevens voedt met slimme blockchain-contracten. LINK-tokens zijn tokens voor digitale activa die worden gebruikt om te betalen voor netwerkdiensten.
Aan de andere kant veroorzaakt een enkel gecentraliseerd orakel het specifieke probleem dat een gedecentraliseerd, blockchain-beveiligd slim contract zou moeten oplossen:een enkel storingspunt. Dus hoe weet u of uw gegevens correct zijn als het orakel defect of gecompromitteerd is? Wat heb je aan een veilig, betrouwbaar, slim contract op de blockchain als de gegevens waarop het vertrouwt verdacht zijn?
Dit probleem wordt opgelost door Chainlink (een gedecentraliseerd netwerk van knooppunten), dat orakels gebruikt om gegevens en informatie van off-blockchain-bronnen te leveren aan on-blockchain slimme contracten. Deze techniek neemt, samen met andere veilige technologie, de betrouwbaarheidsproblemen weg die zouden kunnen ontstaan als slechts één enkele centrale bron wordt gebruikt.
Chainlink is blockchain-agnostisch omdat het alle grote publieke en private blockchain-omgevingen met elkaar verbindt met behulp van een enkel raamwerk, dat een typisch abstractieniveau biedt voor communicatie tussen netwerken.
Daarom kun je verwijzen naar gedecentraliseerde gegevens in de keten die al uit de echte wereld zijn gehaald en verzameld met behulp van services zoals Chainlink, die vergelijkbaar is met een openbare bibliotheek, met uitzondering van gedecentraliseerde gegevens. U kunt zelfs uw modulaire Oracle-netwerken creëren om alle specifieke informatie te verkrijgen die u nodig heeft. Bovendien kunt u off-chain berekeningen uitvoeren en gegevens naar de echte wereld overbrengen.
Andere top blockchain-orakels zijn Witnet, Paralink, Provable en Dos.Network. Deze services bieden orakels die bestaan uit een slim contract en enkele off-chain componenten die applicatiegebruikersinterfaces (API's) kunnen opvragen en vervolgens transacties kunnen verzenden om de gegevens in het slimme contract regelmatig bij te werken.
Oracles geven een blockchain of smart contract om met externe data te communiceren. In plaats daarvan dienen ze als een interface naar de wereld buiten de blockchain. Externe gegevens moeten in veel omstandigheden naar het gesloten blockchain-systeem worden overgebracht, vooral wanneer slimme contracten zijn gekoppeld aan gebeurtenissen in de echte wereld. Externe gegevens worden opgevraagd, geverifieerd en geverifieerd door crypto-orakels, die ze vervolgens doorsturen naar het gesloten systeem. Daarna zouden de gevalideerde gegevens worden gebruikt om een slim contract te valideren.
Hoewel dit niet altijd het geval is, analyseren de meeste crypto-orakels digitale gegevens. Hardware-orakels leveren gegevens uit de fysieke wereld, terwijl software-orakels gegevens leveren uit digitale bronnen zoals websites, servers of databases. Bovendien kan informatie van camerabewegingssensoren en radiofrequentie-identificatie (RFID)-sensoren worden geleverd en doorgegeven door hardware-orakels. Realtime gegevens, zoals wisselkoersen, prijsvariaties en reisinformatie, kunnen via software-orakels worden aangeleverd.
Oracles brengen een tweerichtingscommunicatiekanaal tot stand met blockchains, die gegevens in en uit verzenden. Terwijl uitgaande orakels blockchain-gegevens aan de buitenwereld kunnen leveren, is de kans groter dat inkomende orakels off-chain - of real-world - gegevens aan de blockchain leveren. Bovendien kunnen de geïmporteerde gegevens bijna alles vertegenwoordigen, van prijsschommelingen van activa tot meteorologische omstandigheden tot verificatie van voltooide betalingen.
Voor inkomende orakels kan een veelvoorkomend programmeerbaar scenario zijn:als een item een specifieke prijs bereikt, plaats dan een kooporder. Aan de andere kant waarschuwen uitgaande orakels de buitenwereld voor een gebeurtenis die zich in de keten heeft voorgedaan.
Een gecentraliseerd orakel wordt beheerd door een enkele entiteit en dient als de enige gegevensbron van het slimme contract. Het gebruik van slechts één informatiebron kan gevaarlijk zijn, omdat de effectiviteit van het contract uitsluitend afhangt van de entiteit die de leiding heeft over het orakel.
De vijandige interventie van een slechte acteur heeft ook rechtstreekse gevolgen voor het slimme contract. Het fundamentele probleem met gecentraliseerde orakels is dat ze één enkel storingspunt hebben, waardoor contracten kwetsbaarder worden voor aanvallen en zwakke punten.
Sommige doelen van gedecentraliseerde orakels zijn vergelijkbaar met die van openbare blockchains, zoals het minimaliseren van het tegenpartijrisico. Ze maken bijvoorbeeld de informatie die aan slimme contracten wordt geleverd betrouwbaarder door niet afhankelijk te zijn van één enkele waarheidsbron.
Het slimme contract raadpleegt verschillende orakels om de validiteit en nauwkeurigheid van de gegevens te beoordelen; daarom worden gedecentraliseerde orakels ook wel consensusorakels genoemd. Andere blockchains kunnen gedecentraliseerde Oracle-services gebruiken die door sommige blockchain Oracle-projecten worden geleverd.
Individuen met gespecialiseerde kennis in een specifieke sector kunnen soms als orakels optreden. Ze kunnen informatie uit verschillende bronnen verzamelen, de legitimiteit ervan controleren en deze omzetten in slimme contracten. Omdat menselijke orakels cryptografie kunnen gebruiken om hun identiteit te verifiëren, is de kans klein dat een fraudeur hen imiteert en met gegevens geknoeid heeft.
Deze orakels zijn gemaakt om te werken met slimme contracten die enkelvoudig zijn. Als de ontwikkelaar van plan is om meerdere slimme contracten in te zetten, zal het nodig zijn om verschillende contractspecifieke orakels te bouwen.
Contract-specifieke orakels zijn de tijd en het werk niet waard om ze up-to-date te houden. In plaats daarvan zijn ze onhandig en mogen ze alleen in specifieke situaties worden gebruikt.
We hebben het tot nu toe gehad over orakels in termen van het zoeken en verstrekken van gegevens (ook bekend als gegevensdrager-orakels of geautomatiseerde orakels). Orakels kunnen echter worden gebruikt om elke willekeurige "off-chain" rekenoplossing uit te voeren, wat vooral gunstig is gezien de inherente blokgasbeperking van Ethereum en de zeer hoge berekeningskosten.
Berekeningsorakels, in plaats van alleen de resultaten van een query door te geven, kunnen worden gebruikt om berekeningen uit te voeren op een reeks invoer en een berekend resultaat te retourneren dat anders onmogelijk in de keten zou kunnen worden berekend. Om bijvoorbeeld het rendement van een obligatiecontract te schatten, kan een rekenorakel worden gebruikt om een rekenkundig complexe regressieberekening uit te voeren.
Per definitie vervullen alle besproken orakels een aantal sleutelrollen. Deze mogelijkheden omvatten de mogelijkheid om:
Zodra gegevens zijn opgeslagen in de opslag van een slim contract, kunnen andere geautomatiseerde overeenkomsten er toegang toe krijgen via berichtaanroepen die de "ophaal"-functie van het slimme contract van het orakel oproepen. Het kan ook rechtstreeks worden "aangeroepen" door Ethereum-knooppunten of netwerkclients door in de opslag van het orakel te "kijken".
De drie belangrijkste manieren om een orakel op te zetten kunnen als volgt worden gecategoriseerd:
Onmiddellijk leesbare orakels bieden informatie die alleen nodig is voor een snelle beslissing, zoals "is deze student ouder dan 25?" Degenen die dit soort gegevens willen opvragen, doen dit meestal op een "just-in-time"-basis, wat betekent dat het opzoeken alleen wordt gedaan wanneer de informatie nodig is.
Voorbeelden zijn kiescodes, academische certificaten, institutionele lidmaatschappen, luchthavenidentificatie en andere orakels.
Een orakel dat in feite een uitzendservice biedt voor gegevens die waarschijnlijk zullen veranderen (misschien zowel regelmatig als vaak) wordt ofwel gepolst door een smart contract on-chain of wordt gecontroleerd op updates door een off-chain daemon . Weergegevens, prijsfeeds, economische of sociale statistieken en verkeersgegevens zijn slechts enkele voorbeelden van de publiceer-abonneer-configuratie.
De meest uitdagende categorie is verzoek-antwoord:dit is waar de gegevensruimte te groot is om in een slim contract te worden opgeslagen, en gebruikers zullen naar verwachting slechts een klein deel van de volledige informatie gebruiken op een bepaald moment. tijd. Het is ook een haalbare bedrijfsstrategie voor gegevensproviders.
In de praktijk kan een dergelijk orakel worden geïmplementeerd als een systeem van on-chain slimme contracten en off-chain infrastructuur voor het bewaken van verzoeken en het ophalen en retourneren van gegevens. Een gegevensverzoek van een gedecentraliseerde applicatie is vaak een asynchrone procedure met meerdere stappen als volgt:
Oracle is een mechanisme om de kloof te overbruggen tussen de off-chain-wereld en slimme contracten die door veel DApps op de markt worden gebruikt. Hier volgen enkele voorbeelden van gegevens die orakels kunnen leveren:
Tijd- en intervalgegevens worden gebruikt voor gebeurtenistriggers op basis van exacte tijdmetingen.
Gegevens van de kapitaalmarkten, zoals prijsbundels van tokenized activa en effecten.
Benchmark-referentiegegevens, zoals rentetarieven, opgenomen in slimme financiële derivaten.
Weergegevens worden bijvoorbeeld gebruikt om verzekeringspremies te berekenen op basis van weersvoorspellingen.
Geolocatiegegevens, zoals die worden gebruikt bij het volgen van de toeleveringsketen.
Voor verzekeringscontracten is controle van de schade vereist.
Sportevenementen worden gebruikt om voorspellingsmarkten en fantasiesportcontracten op te lossen.
Vluchtstatistieken, zoals die door groepen en clubs worden gebruikt om vliegtickets te bundelen.
Oracles spelen een cruciale rol bij de uitvoering van slimme contracten door externe gegevens mee te nemen. Aan de andere kant vormen orakels een enorm gevaar, aangezien ze, als ze betrouwbare bronnen zijn en kunnen worden gehackt, de uitvoering van de slimme contracten die ze voeden in gevaar kunnen brengen.
Over het algemeen moet bij het overwegen van het gebruik van een orakel het vertrouwensmodel zorgvuldig worden overwogen. Mogelijk offert u de beveiliging van het slimme contract op door het bloot te stellen aan mogelijk onjuiste invoer als we aannemen dat het orakel te vertrouwen is. Als de beveiligingsaannames echter zorgvuldig worden overwogen, kunnen orakels waardevol zijn.
Sommige van deze problemen kunnen worden aangepakt via gedecentraliseerde orakels, waardoor slimme Ethereum-contracten externe gegevens krijgen die niet worden vertrouwd. Je moet het zorgvuldig selecteren voordat je de orakelsbrug tussen Ethereum en de echte wereld kunt gaan verkennen.