Hvordan bygge ditt eget Oracle ved å bruke Ethereum Smart Contracts? PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Hvordan bygge ditt eget Oracle ved å bruke Ethereum Smart Contracts?

Lesetid: 5 minutter

Ethereum er den første blokkjeden noensinne som har arvet egenskapene til å lage dapps, handle kryptoaktiva på blokkjeden, og så videre.

Den har sitt programmeringsspråk for å skrive smarte kontrakter og implementere dem på den virtuelle Ethereum-maskinen for å tilføre desentralisering i utførelse av aktiviteter. 

Smarte kontrakter utfører de forhåndsdefinerte kodelinjene og oppfyller den tiltenkte oppgaven. Men hva om vi ønsker å få de smarte kontraktene til å fungere basert på resultatene av sanntidshendelsen?

For å oppnå dette, må vi forstå konseptet med blokkjede-orakler der smarte kontrakter kan motta input fra den virkelige verden. 

Hva er et orakel i krypto, og hvordan lage et orakel i Ethereum Smart-kontrakten? Vi skal diskutere dette i detalj i neste avsnitt. 

Bloggens nøkkelemner

  • Hva er et kryptoorakel, og hvordan fungerer orakler
  • Ulike typer orakler
  • Dataflyten fra orakler til Ethereum smarte kontrakter
  • Hvordan kode Ethereum-orakler
  • Problemer med kryptoorakel

Hva er et orakel, og hvorfor er det nødvendig?

Orakler er enheter som fungerer som en bro som forbinder blokkjeden med eksterne systemer. Med andre ord gir orakler hendelsesdata utenfor kjeden til den smarte kontrakten for å utføre en handling basert på input.

For eksempel i betting-arrangementer har brukere lov til å satse på spillerne de tror vil vinne kampen. Basert på det som skjer i sanntid, blir belønninger delt ut til brukerne som satser på vinneren. 

Blockchain-orakler hjelper til med å supplere data om vinneren til de smarte kontraktene. Dataflyten på oracle er toveis og kan brukes til å oversette alle sanntidsdata fra værmeldinger til aksjemarkedsstatus til smarte kontrakter. 

Hver node i Ethereum-blokkjeden har informasjon om transaksjonene, som burde være ensartet. Derfor kan henting av data fra APIer føre til avvik. I motsetning til dette laster oracle dataene på blokkjeden, som uforanderlig fremstår likt på alle nodene.

Blockchain Orakler
Blockchain Orakler

Hvordan få tilgang til data fra Oracle?

Smarte kontrakter bruker forespørsel-og-svar-syklusen for å få informasjon fra orakelnoden. Oraklet implementert med en HTTP GET vil motta forespørselen fra smartkontrakten, og tilbakeringingsfunksjonen kan hente de forespurte dataene fra oraklet. 

På denne måten samles data inn av den smarte kontrakten fra oraklet. Hvert orakel er konfigurert til å gi spesifikk informasjon, og du kan søke tredjepartstjenester for å skaffe dataene du ser etter. 

Her er noen av orakeltjenestene

  • lenke
  • bevislig
  • witnet
  • Paralink og så videre.

Klassifisering av orakler

Orakler er kategorisert i ulike typer avhengig av henting, validering og overføring av dataene. 

Skriv inn orakler: Den mest anerkjente typen der dataene hentes utenfor kjeden fra sanntidshendelsene. For eks. Prisfeed på aksjer innhentes fra off-chain for å utløse handling på smarte kontrakter basert på finansmarkedsforhold.

Output orakler: Omvendt vers av input-orakler der de smarte kontraktene provoserer oraklet til å utføre handlingen. For eks. Send signaler til lagringsleverandøren for å lagre dataene eller sette i gang banknettverk for å foreta betalinger.

Tverrkjedede orakler: Cross-chain orakler letter både lesing og skriving av data på ulike blokkjeder. Det gjør det også mulig å utløse hendelser i én blokkjede og gjøre dem operative på en annen. 

Datamaskinaktiverte orakler: Databehandlingsaktiverte orakler bruker off-chain-beregning for å tilby tjenester. Spesielt når on-chain ikke er pålitelig på grunn av tekniske eller økonomiske begrensninger, brukes denne typen orakel.

Henter data fra Oracles

Trinn 1: Den smarte kontrakten sender en spørring til oraklet.

Trinn 2: Spørringen rettes til databæreren, som søker etter dataene fra datakilden

Trinn 3: Data hentes fra kilden og mates til oraklet.

Trinn 4: Oracle sender svaret på den smarte kontrakten som forespurt. 

Opprette Oracle In Ethereum Smart Contract – Kodestruktur

Vi vil finne hvordan oracle fungerer for å bestemme gjeldende pris på Bitcoin i USD ved å bruke en orakeltjeneste kalt 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 i bunn og grunn konflikten mellom pålitelige smarte kontrakter og pålitelige tredjeparts orakler, med tanke på sikkerheten og autentisiteten til data fra tredjeparter.

Smarte kontrakter er avhengige av orakler for å ta beslutninger angående utførelse, og gir dem enorm makt over hvordan de fungerer. Faktisk blir den desentraliserte naturen til smarte kontrakter stilt spørsmål ved. 

Oracle-tjenester som ChainLink og Oraclize fungerer imidlertid som desentraliserte løsninger som utleder data basert på nye og autentiserte metoder. Dermed er dataene som er oppnådd gjennom desentraliserte midler.  

konklusjonen

Forbindelsen mellom blokkjeden og den virkelige verden er akseptabelt viktig for et sprang fremover mot den desentraliserte verden. Oracles tilbyr løsningen for et pålitelig grensesnitt av smarte kontrakter med sanntidsdata. 

Men for å frembringe bærekraft, gjøres fremskritt av oracle-tjenester for å innføre sikkerheten og korrektheten til dataene som innhentes utenfor kjeden. 

Ønsker å holde deg mer relevant for Web3 sikkerhet?

Følg QuillAudits for mange slike oppdaterte artikler om Web3.

23 Visninger

Innlegget Hvordan bygge ditt eget Oracle ved å bruke Ethereum Smart Contracts? dukket først på Blog.quillhash.

Tidstempel:

Mer fra Quillhash