Ett orakel möjliggör interaktion mellan en blockkedja (onchain) och extern data. (offchain). Med andra ord kan information föras över från externa källor till en blockkedja och vice versa. Tekniskt sett kan orakel fungera, och dess information valideras, på olika sätt. Men i grunden handlar det om överföring av information. Vid tillförsel av information till blockkedjan kan detta sedan hanteras inom ett smart kontrakt.
Det kan exempelvis innebära att ett orakel, i realtid, skickar aktuella aktiekurser till ett smart kontrakt på en blockkedja. Därmed kan exempelvis dAppar ta del av informationen och använda denna offchain information på blockkedjan.
Behovet av Oracle
Blockkedjor kan enbart hantera information som skapas, eller redan finns, på blockkedjan. Det är därmed ett ”slutet” system vilket är grunden för dess säkerhet. Men det innebär även en del begränsningar kring hur smarta kontrakt på blockkedjan får tillgång till information. En skillnad som blir tydlig genom att jämföra hur appar till smartphones idag får tillgång till information.
En app kan byggas med inbyggd API som därmed automatiskt, och i realtid, hämtar information från exempelvis leverantör av aktiekurser, sportresultat eller statistik från statistiska centralbyrån. Men eftersom smarta kontrakt inte kan interagera med externa källor kan inte liknande funktion byggas på blockkedjan.
Lösningen blir därmed att använda orakel som får tillgång till information offchain och sedan publicerar denna information till smarta kontrakt, dvs. onchain. Det kan självklart även ske åt andra hållet. I detta fall skulle en händelse på blockkedjan förmedlas till en extern källa.
Centraliserade orakel
En enkel lösning på problemet är att köpa denna tjänst från ett företag. Om behovet exempelvis är att få tillgång till sportresultat skulle LiveScore kunna få uppdraget att publicera alla resultat direkt till ett smart kontrakt. Men då skapas ”one point of failure” vilket innebär att om deras tjänst ligger nere, eller blir hackad, kommer inte de smarta kontrakten att få uppdaterad information. Dessutom blir informationshanteringen centraliserad. I vissa fall skulle det fungera men eftersom grundfunktionen med en blockkedja är decentralisering, och att därmed ingen behöver lita på en enskild part, vore denna lösning kontraproduktiv.
Decentraliserade orakel
För att bland annat lösa detta problem skapades blockkedjan Chainlink som agerar på Ethereum. Det är uppbyggd av ett nätverk bestående av decentraliserade orakel (DONs). Dessa nätverk har olika funktioner samt säkerhetssystem som validerar den information som distribueras.
Chainlink enables smart contracts on any blockchain to leverage extensive off-chain resources, such as tamper-proof price data, verifiable randomness, automation functions, external APIs, and much more.
I korthet innebär det att trovärdiga källor kan agera nod och sälja sin information, via Chainlink, till projekt på olika blockkedjor. Köparen betalar i så fall Chainlinks kryptovaluta, LINK, för att få tillgång till den efterfrågade informationen.
I detta fall agerar Chainlink som orakel mot de blockkedjor som tjänsten interagerar med. Inom Chainlink används däremot ofta begreppet “orakel” även för att beskriva de noder som tillför den information som valideras, och distribueras, via Chainlink.
Exempel
Ett smart kontrakt skapas på Ethereum. Fem personer låser vardera 50 USDC i kontraktet varpå det är programmerat för att överföra hela summan till den som gissar rätt vinnare i fotbolls-VM. Om ingen gissar rätt kommer samtliga få tillbaka sin insats.
Eftersom det smarta kontraktet inte kan interagera med datakällor utanför blockkedjan behövs ett orakel. Med andra ord en person eller mjukvara som förser blockkedjan med denna information. Vännerna har nu två alternativ:
- Centralt orakel – De kan välja att en av dessa fem personerna, alternativt ett företag, tillför informationen. Förutsatt att alla personerna litar på den som tillför informationen är det inget problem. Men då hade de lika gärna kunnat gett den personen pengarna direkt och inte behövt använda ett smart kontrakt.
Problemet uppstår om deltagarna inte litar på den som ska avgöra vinnaren av VM. Då är det bättre att använda ett decentraliserat orakel.
- Decentraliserat orakel – Ett decentraliserat orakel hämtar data från ett stort antal källor (noder) och sammanställer dessa. Med flera informationskällor, samt valideringsfunktioner, kan vännerna lita på att korrekt resultat tillförs till deras smarta kontrakt.
Eftersom svar kan inhämtas från flera olika källor behöver oraklet även ha en funktion som avgör vilket svar som är korrekt. I detta fall kanske svaren ser ut som följande.
- Argentina 98 %
- Tyskland 2 %.
I exemplet ovan är det säkerställt att enbart ett lag kan vinna VM vilket gör att Argentina blir korrekt svar. Hade det däremot varit temperatur eller röster i ett val kanske genomsnittet av alla angivna svar vore ett mer korrekt svar. Vid andra tillfällen kanske minst 75 % av alla svar måste vara lika för att informationen ska kunna anges vara korrekt. Inom Chainlink finns även möjlighet att ge noderna olika ”röststyrka” exempelvis beroende på tidigare validerade korrekta svar, trovärdighet osv.
AccuWeather & Chainlink
I slutet av 2021 valde AccuWeather, ett av världens största företag inom väderprognoser, att bli nod på det decentraliserade orakelnätverket Chainlink. De blev därmed det första företaget, inom denna bransch, som valde att även utnyttja blockkedjor för att sälja och distribuera sin information. Genom att AccuWeather agerar nod kan därmed blockkedjebaserade applikationer ta del av dess realtidsdata. Betalning för denna information sker i LINK.
I teorin skulle därmed en försäkring kunna upprättas, via ett smart kontrakt, som anger att en person ska få 100 USDC utbetalat om medeltemperaturen i Florida är över 40 grader i tre dagar i följd. Information skulle även kunna användas i blockkedjebaserade spel för att därmed simulera väderleken från specifika städer.
Utöver AccuWeather har även andra internationella företag valt att agera nod inom Chainlink. Bland annat de tre stora telekomföretagen Deutsche Telekom, Swisscom och stc Bahrain.