Grunnleggende om Web3- og DApp-utvikling · leksjon

Oracle-problemet

Forstå hvorfor smartkontrakter ikke kan få direkte tilgang til data utenfor blokkjeden, og hvilke utfordringer dette skaper for DApp-funksjonalitet.

Leksjon 1 av 311 trinn

Oracle-problemet er en gratis leksjon i Grunnleggende om Web3- og DApp-utvikling på CoddyKit. Dette er leksjon 1 av 3. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Grunnleggende om Web3- og DApp-utvikling, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Grunnleggende om Web3- og DApp-utvikling inneholder totalt 3 leksjoner.

Hva er data utenfor kjeden?

Velkommen! I Web3 trenger DApp-er ofte informasjon som ikke er lagret direkte på blokkjeden. Dette kalles data utenfor kjeden.

Tenk på ting som gjeldende aksjekurser, værmeldinger i sanntid eller resultatet av en sports­kamp. Disse dataene finnes i den «virkelige verden», utenfor blokkjedenettverket.

Blokkjeder lever i en boble

Blokkjeder er utformet som isolerte og selvstendige miljøer. Dette er avgjørende for sikkerheten og påliteligheten deres.

Hver node i nettverket må være enig om blokkjedenes nøyaktige tilstand. Hvis en smartkontrakt kunne hente eksterne data direkte, kunne ulike noder fått ulike resultater, noe som ville brutt konsensus.

Definere orakelproblemet

Orakelproblemet viser til utfordringen med å hente eksterne data utenfor kjeden inn på en sikker og pålitelig måte til en blokkjede.

Smartkontrakter kan av hensyn til utformingen ikke «se» eller «hente» data direkte fra internett. De opererer i et deterministisk, lukket system.

Smartkontrakter kan ikke surfe

Hvorfor kan ikke en smartkontrakt bare foreta et API-kall, slik en vanlig nettapplikasjon gjør?

  • Determinisme: Alle transaksjoner må gi samme resultat på tvers av alle noder. Et eksternt API-kall kan returnere ulike data på ulike tidspunkter.
  • Sikkerhet: Direkte kall til eksterne kilder introduserer sårbarheter og mulige angrepsvektorer.
  • Konsensus: Hvordan skulle alle noder kunne kontrollere at de eksterne dataene faktisk var det API-et returnerte?

DApp-begrensninger uten orakler

Mange kraftige DApp-er trenger data fra den virkelige verden for å fungere. Uten en måte å hente inn disse dataene på er nytteverdien deres svært begrenset.

Se for Dem en desentralisert finansplattform (DeFi) for utlån som trenger gjeldende aktivapriser, eller en forsikrings-DApp basert på hendelser i den virkelige verden, som vær eller flyforsinkelser.

Tillitsdilemmaet

Hvis en DApp er avhengig av én enkelt kilde for å levere eksterne data, blir denne kilden et sentralisert feilpunkt.

Dette undergraver desentraliseringens grunnleggende prinsipp. Dataleverandøren kan være ondsinnet, bli hacket eller ganske enkelt gå offline, noe som kan sette hele DAppen i fare.

Orakler: databroen

For å løse orakelproblemet introduserer vi orakler. Et orakel er en tredjepartstjeneste som finner og verifiserer data fra den virkelige verden, og deretter sender dataene til en smartkontrakt.

Det fungerer som en sikker bro som lar smartkontrakter samhandle med omverdenen uten å bryte med deres deterministiske natur.

Sikre pålitelige data

Selv om orakler løser problemet med «tilgang», introduserer de en ny utfordring: Hvordan kan vi stole på selve oraklet?

Dataene et orakel leverer, må være korrekte, manipulasjonssikre og tilgjengelige. Hvis oraklet leverer feilaktige data, vil smartkontrakten utføre handlinger basert på disse feilaktige dataene.

Behovet i et eksempel fra virkeligheten

Se for Dem en enkel desentralisert tippe-DApp:

  • Brukere tipper på utfallet av en fotballkamp.
  • Smartkontrakten må vite sluttresultatet.
  • Den kan ikke hente data direkte fra ESPN eller andre sportsnettsteder.
  • Et orakel er nødvendig for å levere sluttresultatet til kontrakten, slik at utbetalinger kan gjennomføres.

Hurtigsjekk: Orakelproblemet

Hva er hovedgrunnen til at smartkontrakter ikke kan hente data fra den virkelige verden direkte, slik en tradisjonell nettapplikasjon kan?

Oppsummering: Orakelproblemet

De har lært om det kritiske orakelproblemet i Web3-utvikling:

  • Blokkjeder er isolerte og deterministiske.
  • Smartkontrakter kan ikke hente data utenfor kjeden direkte.
  • Mange DApp-er trenger data fra den virkelige verden for å fungere.
  • Orakler fungerer som broer, men introduserer nye tillitsutfordringer.

Deretter skal vi se på hvordan desentraliserte orakelnettverk som Chainlink tilbyr løsninger på dette problemet!

Gratis å komme i gang

Lær deg Grunnleggende om Web3- og DApp-utvikling med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
29
Leksjoner
105

Ofte stilte spørsmål

Er leksjonen «Oracle-problemet» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Grunnleggende om Web3- og DApp-utvikling, inkludert «Oracle-problemet», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Grunnleggende om Web3- og DApp-utvikling inneholder totalt 3 leksjoner.

Hva lærer jeg i «Oracle-problemet»?

Forstå hvorfor smartkontrakter ikke kan få direkte tilgang til data utenfor blokkjeden, og hvilke utfordringer dette skaper for DApp-funksjonalitet. Du øver på Grunnleggende om Web3- og DApp-utvikling med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Grunnleggende om Web3- og DApp-utvikling?

Ingen tidligere erfaring er nødvendig. Grunnleggende om Web3- og DApp-utvikling på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 3.

Hvor lang tid tar leksjonen «Oracle-problemet»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Grunnleggende om Web3- og DApp-utvikling-leksjonen?

Ja. Alle Grunnleggende om Web3- og DApp-utvikling-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Oracle-problemet
  2. Grunnleggende om Chainlink
  3. Hente data utenfor blokkjeden
← Tilbake til Grunnleggende om Web3- og DApp-utvikling