Hoe bouw je je eigen Oracle met behulp van Ethereum Smart Contracts? PlatoBlockchain-gegevensintelligentie. Verticaal zoeken. Ai.

Hoe bouw je je eigen Oracle met behulp van Ethereum Smart Contracts?

Leestijd: 5 minuten

Ethereum is de allereerste blockchain die de kwaliteiten heeft geรซrfd van het maken van dapps, het verhandelen van crypto-activa op de blockchain, enzovoort.

Het heeft zijn programmeertaal om slimme contracten te schrijven en deze op de virtuele Ethereum-machine te implementeren om decentralisatie te bewerkstelligen bij het uitvoeren van activiteiten. 

Slimme contracten voeren de vooraf gedefinieerde coderegels uit en vervullen de beoogde taak. Maar wat als we de slimme contracten willen laten functioneren op basis van de resultaten van de realtime happening?

Om dit te bereiken, moeten we het concept van blockchain-orakels begrijpen waarmee slimme contracten input uit de echte wereld kunnen ontvangen. 

Wat is een orakel in crypto en hoe maak je een orakel in het Ethereum Smart-contract? We zullen dit in detail bespreken in de volgende sectie. 

Belangrijkste onderwerpen van de blog

  • Wat is een crypto-orakel en hoe werken orakels?
  • Verschillende soorten orakels
  • De gegevensstroom van orakels naar slimme Ethereum-contracten
  • Hoe Ethereum-orakels te coderen
  • Problemen met crypto-orakel

Wat is een orakel en waarom is het nodig?

orakels zijn entiteiten die fungeren als een brug die de blockchain verbindt met externe systemen. Met andere woorden, orakels leveren de off-chain gebeurtenisgegevens aan het slimme contract om een โ€‹โ€‹actie uit te voeren op basis van de invoer.

Bij gokevenementen mogen gebruikers bijvoorbeeld wedden op de spelers waarvan ze denken dat ze de wedstrijd zullen winnen. Op basis van het realtime gebeuren worden beloningen verdeeld onder de gebruikers die op de winnaar hebben gewed. 

Blockchain-orakels helpen gegevens over de winnaar aan te vullen met slimme contracten. De gegevensstroom op Oracle is bidirectioneel en kan worden gebruikt om realtime gegevens van weerberichten naar beursstatus te vertalen naar slimme contracten. 

Elk knooppunt in de Ethereum-blockchain bezit informatie over de transacties, die uniform zou moeten zijn. Daarom kan het ophalen van gegevens uit API's leiden tot discrepanties. Oracle laadt daarentegen de gegevens op de blockchain, die onveranderlijk op alle knooppunten hetzelfde lijkt.

Blockchain Orakels
Blockchain Orakels

Hoe toegang krijgen tot gegevens van Oracle?

Slimme contracten gebruiken de verzoek-en-antwoordcyclus om informatie van het orakelknooppunt te verkrijgen. Het orakel geรฏmplementeerd met een HTTP GET ontvangt het verzoek van het slimme contract en de callback-functie kan de gevraagde gegevens van het orakel ophalen. 

Op deze manier worden gegevens verzameld door het slimme contract van het orakel. Elk orakel is geconfigureerd om specifieke informatie te verstrekken en u kunt services van derden zoeken om de gegevens te verkrijgen waarnaar u op zoek bent. 

Hier zijn enkele van de orakeldiensten:

  • Kettingschakel
  • Bewijsbaar
  • Witnet
  • Paralink enzovoort.

Classificatie van orakels

Oracles zijn onderverdeeld in verschillende typen, afhankelijk van het ophalen, valideren en overbrengen van de gegevens. 

Invoer orakels: Het meest algemeen erkende type waarbij de gegevens off-chain worden opgehaald uit de realtime gebeurtenissen. Voor bijv. Prijsfeeds op aandelen worden off-chain verkregen om actie op slimme contracten te activeren op basis van financiรซle marktomstandigheden.

Uitvoerorakels: Het omgekeerde van invoerorakels waarbij de slimme contracten het orakel uitlokken om de actie uit te voeren. Voor bijv. Stuur signalen naar de opslagprovider om de gegevens op te slaan of start banknetwerken om betalingen te doen.

Cross-keten orakels: Cross-chain orakels vergemakkelijken zowel het lezen als schrijven van gegevens op verschillende blockchains. Het maakt het ook mogelijk om gebeurtenissen in de ene blockchain te activeren en op een andere te laten werken. 

Orakels met rekenkracht: Orakels met rekenkracht maken gebruik van off-chain-berekeningen om diensten te verlenen. Vooral wanneer on-chain niet betrouwbaar is vanwege technische of financiรซle beperkingen, wordt dit type orakel gebruikt.

Gegevens ophalen van Oracles

Stap 1: Het slimme contract stuurt een vraag naar het orakel.

Stap 2: De zoekopdracht wordt gericht aan de gegevensdrager, die de gegevens uit de gegevensbron zoekt

Stap 3: Gegevens worden afgeleid van de bron en worden toegevoerd aan het orakel.

Stap 4: Oracle stuurt het antwoord op het slimme contract zoals gevraagd. 

Oracle in Ethereum Smart Contract maken - codestructuur

We zullen ontdekken hoe Oracle werkt bij het bepalen van de huidige prijs van Bitcoin in USD met behulp van een Oracle-service genaamd Provable. 

pragma solidity >= 0.5.0 < 0.6.0; //Declaring the Solidity version import "github.com/provable-things/ethereum-api/provableAPI.sol"; //Importing latest version of provable API contract BitcoinPrice is usingProvable { //Contract named BitcoinPrice, UsingProvable refers to the API uint public bitcoinPriceUSD; //bitcoinPriceUSD is the variable created to store the price, Provable query event that makes a constructor event LogNewBitcoinPrice(string price); event LogNewProvableQuery(string description); constructor() public { update(); } // callback function to call the smart contract after the output is received and transfers the result from callback function to the variable assigned function __callback( bytes32 _myid, string memory _result ) public { require(msg.sender == provable_cbAddress()); emit LogNewBitcoinPrice(_result); BitcoinPriceUSD = parseInt(_result, 2); // Let's save it as cents... } //passing output string and API string to fetch bitcoin price to our constructor function update() public payable { emit LogNewProvableQuery("Provable query was sent, standing by for the answer..."); provable_query("URL", "xml("https://min-api.cryptocompare.com/data/generateAvg?fsym=BTC&tsym=USD&e=Kraken" ); } } 

Oracle-problemen

Oracle-problemen zijn in wezen het conflict tussen betrouwbare slimme contracten en vertrouwde orakels van derden, gezien de veiligheid en authenticiteit van gegevens van derden.

Slimme contracten zijn afhankelijk van orakels voor het nemen van beslissingen over de uitvoering ervan, waardoor ze een enorme macht hebben over hun functioneren. In feite wordt het gedecentraliseerde karakter van slimme contracten in twijfel getrokken. 

Oracle-services zoals ChainLink en Oracle werken echter als gedecentraliseerde oplossingen die gegevens afleiden op basis van nieuwe en geverifieerde methoden. De verkregen gegevens worden dus via gedecentraliseerde middelen verkregen.  

Conclusie

De connectiviteit van de blockchain met de echte wereld is acceptabel belangrijk voor een sprong voorwaarts naar de gedecentraliseerde wereld. Oracles biedt dรฉ oplossing voor een betrouwbare interface van smart contracts met realtime data. 

Om duurzaamheid te bewerkstelligen, worden er echter vorderingen gemaakt door Oracle-services om de veiligheid en correctheid van de off-chain verkregen gegevens te waarborgen. 

Wil je relevanter blijven voor Web3-beveiliging?

Volg QuillAudits voor veel van dergelijke up-to-date artikelen over Web3.

23 keer bekeken

De post Hoe bouw je je eigen Oracle met behulp van Ethereum Smart Contracts? verscheen eerst op Blog.quillhash.

Tijdstempel:

Meer van Quillhash