Sådan bygger du dit eget Oracle ved hjælp af Ethereum Smart Contracts? PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Sådan bygger du dit eget Oracle ved hjælp af Ethereum Smart Contracts?

Læsetid: 5 minutter

Ethereum er den første blockchain nogensinde, der har arvet kvaliteterne ved at skabe dapps, handle kryptoaktiver på blockchain og så videre.

Det har sit programmeringssprog til at skrive smarte kontrakter og implementere dem på den virtuelle Ethereum-maskine for at indgyde decentralisering i udførelsen af ​​aktiviteter. 

Smarte kontrakter udfører de foruddefinerede linjer med koder og opfylder den tilsigtede opgave. Men hvad nu hvis vi ønsker at få de smarte kontrakter til at fungere baseret på resultaterne af real-time happeningen?

For at opnå dette er vi nødt til at forstå konceptet med blockchain-orakler, hvorigennem smarte kontrakter kan modtage input fra den virkelige verden. 

Hvad er et orakel i krypto, og hvordan opretter man et orakel i Ethereum Smart-kontrakten? Vi vil diskutere dette i detaljer i det følgende afsnit. 

Bloggens nøgleemner

  • Hvad er et kryptoorakel, og hvordan fungerer orakler
  • Forskellige typer orakler
  • Strømmen af ​​data fra orakler til Ethereum smarte kontrakter
  • Sådan kodes Ethereum-orakler
  • Problemer med crypto oracle

Hvad er et orakel, og hvorfor er det nødvendigt?

orakler er enheder, der fungerer som en bro, der forbinder blockchain med eksterne systemer. Med andre ord leverer orakler data om begivenheder uden for kæden til den smarte kontrakt for at udføre en handling baseret på inputtet.

For eksempel, i betting-begivenheder, har brugere lov til at satse på de spillere, de tror vil vinde kampen. Baseret på det, der sker i realtid, uddeles belønninger til de brugere, der satser på vinderen. 

Blockchain-orakler hjælper med at supplere data om vinderen til de smarte kontrakter. Datastrømmen på oracle er tovejs og kan bruges til at oversætte alle realtidsdata fra vejrrapporter til aktiemarkedsstatus til smarte kontrakter. 

Hver node i Ethereum blockchain har information om transaktionerne, som burde være ensartede. Derfor kan hentning af data fra API'er resultere i uoverensstemmelser. I modsætning hertil indlæser oracle dataene på blockchainen, som uforanderligt fremstår ens på alle noderne.

Blockchain Orakler
Blockchain Orakler

Sådan får du adgang til data fra Oracle?

Smarte kontrakter bruger anmodning-og-svar-cyklussen til at få oplysninger fra orakelknuden. Oraklet implementeret med en HTTP GET vil modtage anmodningen fra den smarte kontrakt, og tilbagekaldsfunktionen kan hente de anmodede data fra oraklet. 

På denne måde indsamles data af den smarte kontrakt fra oraklet. Hvert orakel er konfigureret til at give specifikke oplysninger, og du kan søge tredjepartstjenester for at få de data, du leder efter. 

Her er nogle af orakeltjenesterne

  • chainlink
  • Beviselig
  • vidnet
  • Paralink og så videre.

Klassificering af orakler

Orakler er kategoriseret i forskellige typer afhængigt af hentning, validering og overførsel af data. 

Input orakler: Den mest anerkendte type, hvor data hentes off-chain fra real-time happenings. F.eks. Prisfeeds på aktier opnås fra off-chain for at udløse handling på intelligente kontrakter baseret på finansielle markedsforhold.

Output orakler: Det omvendte vers af input-orakler, hvor de smarte kontrakter provokerer oraklet til at udføre handlingen. F.eks. Send signaler til lagerudbyderen for at gemme dataene eller starte banknetværk til at foretage betalinger.

Tværkædede orakler: Cross-chain orakler letter både læsning og skrivning af data på forskellige blockchains. Det gør det også muligt at udløse hændelser i én blockchain og gøre dem operative på en anden. 

Computer-aktiverede orakler: Computer-aktiverede orakler gør brug af off-chain beregninger til at levere tjenester. Især når on-chain ikke er pålidelig på grund af tekniske eller økonomiske begrænsninger, bruges denne type orakel.

Datahentning fra Oracles

Trin 1: Den smarte kontrakt sender en forespørgsel til oraklet.

Trin 2: Forespørgslen rettes til databæreren, som søger dataene fra datakilden

Trin 3: Data udledes fra kilden og føres til oraklet.

Trin 4: Oracle sender svaret på den smarte kontrakt som anmodet. 

Oprettelse af Oracle i Ethereum Smart Contract – Kodestruktur

Vi vil finde ud af, hvordan oracle fungerer ved at bestemme den aktuelle pris på Bitcoin i USD ved hjælp af en orakeltjeneste kaldet 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 problemer

Oracle-problemer er grundlæggende konflikten mellem pålidelige smarte kontrakter og betroede tredjeparts-orakler, i betragtning af sikkerheden og ægtheden af ​​data fra tredjeparter.

Smarte kontrakter er afhængige af orakler til at træffe beslutninger vedrørende deres udførelse, hvilket giver dem enorm magt over deres funktion. Faktisk stilles der spørgsmålstegn ved den decentraliserede karakter af smarte kontrakter. 

Oracle-tjenester som ChainLink og Oraclize fungerer dog som decentrale løsninger, der udleder data baseret på nye og autentificerede metoder. De opnåede data er således decentraliserede.  

Konklusion

Forbindelsen mellem blockchain og den virkelige verden er acceptabelt betydningsfuld for et spring fremad mod den decentraliserede verden. Oracles tilbyder løsningen til en pålidelig grænseflade af smarte kontrakter med realtidsdata. 

Men for at frembringe bæredygtighed, er fremskridt foretaget af oracle-tjenester for at indgyde sikkerheden og korrektheden af ​​de data, der opnås uden for kæden. 

Ønsker at forblive mere relevant til Web3 sikkerhed?

Følge QuillAudits for mange sådanne up-to-date skrive-ups om Web3.

23 Views

Stillingen Sådan bygger du dit eget Oracle ved hjælp af Ethereum Smart Contracts? dukkede først på Blog.quillhash.

Tidsstempel:

Mere fra Quillhash