Kuidas luua oma Oraakel Ethereumi nutikate lepingute abil? PlatoBlockchaini andmete luure. Vertikaalne otsing. Ai.

Kuidas luua oma Oraakel Ethereumi nutikate lepingute abil?

Lugemise aeg: 5 protokoll

Ethereum on esimene plokiahel, mis on pärinud dappide loomise, plokiahelas krüptovaradega kauplemise jms omadused.

Sellel on oma programmeerimiskeel nutikate lepingute kirjutamiseks ja nende rakendamiseks Ethereumi virtuaalmasinas, et sisendada tegevuste detsentraliseerimist. 

Nutikad lepingud täidavad eelnevalt määratletud koodiridu ja täidavad ettenähtud ülesande. Aga mis siis, kui tahame panna nutikad lepingud toimima reaalajas toimuvate sündmuste tulemuste põhjal?

Selle saavutamiseks peame mõistma plokiahela oraaklite kontseptsiooni, mille kaudu nutikad lepingud saavad reaalsest maailmast sisendeid vastu võtta. 

Mis on oraakel krüptos ja kuidas luua oraakel Ethereum Smarti lepingus? Arutame seda üksikasjalikult järgmises jaotises. 

Blogi põhiteemad

  • Mis on krüptooraakel ja kuidas oraakel töötab
  • Erinevat tüüpi oraaklid
  • Andmevoog oraaklitest Ethereumi nutikatesse lepingutesse
  • Kuidas kodeerida Ethereumi oraakleid
  • Probleemid krüptooraakliga

Mis on Oraakel ja miks seda vaja on?

Oraaklid on üksused, mis toimivad sillana, mis ühendavad plokiahelat väliste süsteemidega. Teisisõnu edastavad oraaklid nutikale lepingule ahelaväliste sündmuste andmed, et sooritada sisendil põhinevaid toiminguid.

Näiteks kihlveosündmuste puhul on kasutajatel lubatud panustada mängijatele, kes nende arvates matši võidavad. Reaalajas toimuvate sündmuste põhjal jagatakse auhindu kasutajatele, kes panustavad võitjale. 

Plokiahela oraaklid aitavad nutikatele lepingutele lisada andmeid võitja kohta. Oracle'i andmevoog on kahesuunaline ja seda saab kasutada mis tahes reaalajas andmete tõlkimiseks ilmateadetest aktsiaturu olekuni nutikateks lepinguteks. 

Igal Ethereumi plokiahela sõlmel on teave tehingute kohta, mis peaks olema ühtne. Seetõttu võib API-dest andmete toomine põhjustada lahknevusi. Seevastu Oracle laadib andmed plokiahelasse, mis on kõigis sõlmedes muutumatult sama.

Blockchain Oracles
Blockchain Oracles

Kuidas pääseda juurde Oracle'i andmetele?

Nutikad lepingud kasutavad Oraakli sõlmest teabe saamiseks päringu ja vastuse tsüklit. HTTP GET-iga rakendatud oraakel saab päringu nutikalt lepingult ja tagasihelistamise funktsioon saab oraaklilt nõutud andmed kätte saada. 

Nii kogutakse nutilepinguga andmeid oraaklilt. Iga oraakel on konfigureeritud pakkuma konkreetset teavet ja otsitavate andmete hankimiseks võite otsida kolmanda osapoole teenuseid. 

Siin on mõned oraakli teenused

  • Chainlink
  • Tõestatav
  • witnet
  • Paralink ja nii edasi.

Oraaklite klassifikatsioon

Oracle'id liigitatakse andmete toomisest, valideerimisest ja edastamisest olenevalt erinevatesse tüüpidesse. 

Oraaklite sisend: Kõige laialdasemalt tunnustatud tüüp, mille puhul andmed hangitakse reaalajas toimuvatest sündmustest ahelast välja. Näiteks Aktsiate hinnaallikad saadakse ahelaväliselt, et käivitada finantsturu tingimustes põhinevate arukate lepingute meetmed.

Oraaklite väljund: Sisendoraaklite vastupidine värss, kus nutikad lepingud provotseerivad oraakli toimingut sooritama. Näiteks Saatke salvestusteenuse pakkujale signaale andmete salvestamiseks või algatage maksete tegemiseks pangavõrke.

Ristahelalised oraaklid: Cross-chain oracle hõlbustab nii andmete lugemist kui ka kirjutamist erinevatele plokiahelatele. Samuti võimaldab see käivitada sündmusi ühes plokiahelas ja muuta need toimivaks teises. 

Arvutustoega oraaklid: Arvutustoega oraaklid kasutavad teenuste osutamiseks ahelavälist arvutust. Seda tüüpi oraaklit kasutatakse eriti siis, kui ahelasisene ühendus ei ole tehniliste või rahaliste piirangute tõttu usaldusväärne.

Andmete toomine Oraclesist

1. toiming: nutikas leping saadab oraaklile päringu.

2. samm: päring suunatakse andmekandjale, mis otsib andmeid andmeallikast

3. samm: andmed saadakse allikast ja edastatakse oraaklile.

4. toiming: Oracle saadab vastuse nutilepingule, nagu nõutud. 

Oracle'i loomine Ethereumi nutikas lepingus – koodistruktuur

Leiame, kuidas oraakel töötab Bitcoini hetkehinna määramisel USD-des, kasutades Oracle'i teenust nimega 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'i probleemid

Oracle'i probleemid on põhimõtteliselt vastuolud usaldusväärsete nutikate lepingute ja usaldusväärsete kolmandate osapoolte oraaklite vahel, võttes arvesse kolmandate osapoolte andmete turvalisust ja autentsust.

Nutikad lepingud tuginevad nende täitmisega seotud otsuste tegemisel oraaklitele, andes neile tohutu võimu oma toimimise üle. Tegelikult seatakse arukate lepingute detsentraliseeritud olemus kahtluse alla. 

Oracle'i teenused, nagu ChainLink ja Oraclize, töötavad aga detsentraliseeritud lahendustena, mis toovad andmeid uudsetel ja autentitud meetoditel. Seega saadakse andmed detsentraliseeritud vahenditega.  

Järeldus

Plokiahela ühenduvus reaalse maailmaga on detsentraliseeritud maailma suunas liikumiseks vastuvõetavalt oluline. Oracles pakub lahendust nutikate lepingute usaldusväärse liidese loomiseks reaalajas andmetega. 

Jätkusuutlikkuse esilekutsumiseks teevad oraakliteenused aga edusamme, et sisendada ahelaväliselt saadud andmete turvalisust ja õigsust. 

Tahad jääda asjakohasemaks Web3 turvalisus?

järgima QuillAudits paljude selliste ajakohaste kirjutiste jaoks Web3 kohta.

23 views

Postitus Kuidas luua oma Oraakel Ethereumi nutikate lepingute abil? ilmus esmalt Blog.quillhash.

Ajatempel:

Veel alates Quillhash