Smart kontrakter forklart

smart kontrakter forklart

Hva er en smart kontrakt? Det er et av de viktigste begrepene når det gjelder kryptovalutaer og blockchains. En smart kontrakt er egentlig et stykke programkode som er lagret i en blockchain. Denne artikkelen forklarer smart kontrakter. Vi går gjennom nøkkelfunksjonene i disse distribuerte programmene.

Blockchains og kryptovalutaer

For å forstå smart kontrakter må du ha en grunnleggende forståelse av blockchains og kryptovalutaer.

Kort sagt, en blockchain er en distribuert hovedbok. Den engelske forkortelsen DLT sier alt: Distributed Ledger Technology. Blockchains er databaser over kryptovalutaer og lagrer transaksjonsdataene til nettverket.

Det finnes forskjellige typer blockchains. Bitcoin ble opprettet i 2009, og den har en blockchain med visse begrensninger. Bitcoins blockchain må opprettholdes med fysiske minere, som ikke lenger er nødvendige i blockchains med høy kapasitet.

Det finnes også forskjellige typer kryptovalutaer. Den beste måten er å dele dem inn i tre hovedkategorier: plattformer, tokens og valutaer.

blockchain smart contract

Plattformer kalles økosystemer og Dapp-operativsystemer. Det mest kjente eksemplet på en plattform er Ethereum. De viktigste rivalene er Cardano, Binance Smart Chain og Polkadot. Disse prosjektene er designet for å støtte Dapps og smart kontrakter.

Tokens er opprettet inne i slike plattformer. Derfor har de ikke sine egne blockchains. Tokener har verktøy- eller styringsfunksjoner i et bestemt program. Populære tokener inkluderer Chainlink, Aave og Uniswap.

Valutakategorien inkluderer Bitcoin og dets rivaler (Litecoin, Bitcoin Cash, Digibyte). Vær imidlertid forsiktig med å påstå at Bitcoin ikke støtter smart kontrakter i det hele tatt. Noen ting kan bygges også på toppen av Bitcoin, men det er virkelig ikke designet for det.

Utviklingen av Bitcoin utvikler seg sakte. Kjernefunksjonene er nesten umulige å endre. Derfor ble mange plattformer designet i 2014-2016 for å støtte smart kontrakt programmering. Nye kommer ut på markedet hvert år.

I denne artikkelen studerer vi smart kontrakter gjennom Ethereum. Det er den mest kjente plattformen og derfor et naturlig valg.

Hva er en smart kontrakt?

Begrepet smart kontrakt er faktisk villedende. Det er ikke spesielt smart, og det er ikke nødvendigvis en kontrakt heller. Du ser ofte smart kontrakter forklart som “programmerbare kontrakter lagret på en blockchain”. Dette er for generisk og forteller ikke hele sannheten.

En smart kontrakt er et stykke kode skrevet med språket Solidity. Dette er språket utviklere bruker til å lage Ethereum-kompatible smart kontrakter. Andre plattformer støtter forskjellige språk.

Dette er et enkelt eksempel på en kode skrevet i Solidity (kilde).

solidity

Når programkoden er skrevet, må den kompileres til bytekode. Dette er formatet Ethereum Virtual Machine (EVM) forstår.

EVM er et program som er lagret på hver node i Ethereum-nettverket. Dens oppgave er å behandle koden og utføre de ønskede transaksjonene.

Når en smart kontrakt får en kommandoforespørsel, går Ethereum-minerene inn. Smart kontrakter behandles hver gang en ny blokk opprettes på blockchain. Dette betyr at hver miner har en kopi av hver smart kontrakt, og de kjører den i sin EVM.

Det betyr også at hver miner alltid vil få samme resultat av å behandle en smart kontrakt. Det er ikke mulig at det vil være forskjellige versjoner av en smart kontrakt (eller EVM) på blockchain.

Dapps vs Smart kontrakter

Når vi snakker om smart kontrakter, blir ordet Dapp ofte nevnt. Du har sett det i denne artikkelen også. Hva er forskjellen mellom en Dapp og en smart kontrakt?

Dapps er applikasjoner akkurat som “tradisjonelle apper” du bruker på mobilen eller den bærbare datamaskinen. Tenk på Facebook, Twitter eller nettleseren din. Dette er populære applikasjoner vi bruker daglig.

Den store forskjellen er at Dapps er distribuerte apper, noe som betyr at de er bygget på blockchain. En Dapp kan være en skrivebordsapp, mobilapp eller nettleserapp.

dapps

Smart kontrakter er programmer som utfører kommandoer på blockchain. En Dapp er et program med et GUI – grafisk brukergrensesnitt. En Dapp gjør det mulig for sluttbrukere å kommunisere med smart kontrakter.

Dapp er applikasjonen du faktisk ser og bruker. Det er fronten. “Motorrommet” består av smart kontrakter, som utføres av sluttbrukeren ved å klikke på knapper.

Ordet protokoll brukes ofte i samme kontekst. Setningen “mest populære DeFi-protokoller” betyr det samme som “mest populære DeFi Dapps”.

Smart kontrakt revisjon og feil

Hvis du har opprettet en smart kontrakt, kaster du den ikke bare ut på Ethereum MainNet. Dette er hva Ethereum TestNets er for. Du kan kjøre programmet uten risiko for å miste noens penger.

Når en smart kontrakt er publisert på blockchain, kan den ikke endres. Det finnes ingen angre- eller administratorkommando for å endre den etterpå. Hvis det var det, ville hele ideen om en uforanderlig kontrakt forsvinne.

Når vi snakker om populære Dapps, har de milliarder av dollar av brukermidler låst inn. Derfor er det helt avgjørende at programkoden er feilfri. Alle kan se programkoden til en blockchain Dapp og lete etter sårbarheter.

Dessverre blir bugs funnet av ondsinnede personer hele tiden.

Noen ganger gjør programmerere feil, noen ganger utnytter angriperen et prisorakel. Det er flere måter en Dapp kan angripes på.

Disse problemene forhindres med koderevisjoner. Det er selskaper som er spesialisert på kodeinspeksjoner. Her er et eksempel på en koderevisjon utført av OpenZeppelin. De største Dapps blir vanligvis revidert av flere selskaper.

Ethereum kontotyper

La oss dykke litt dypere. Så langt har du lært at en smart kontrakt ganske enkelt er en programkode, som drives av Ethereum minere. Den er bare så smart som utvikleren som opprettet den. Det er ikke nødvendigvis en kontrakt heller.

Smart kontrakter er muliggjort av Ethereums kontomodell. Bitcoin bruker for eksempel en UTXO-modell og har ingen brukerkontoer. Det er bare adresser og transaksjoner i Bitcoin-nettverket.

Ethereum fungerer annerledes. Det finnes to typer kontoer: en EOA (Externally Owned Account, eller eksternt eid konto) og en kontraktkonto.

En EOA er en brukerkontrollert konto. Tilgang gis gjennom brukerens private nøkkel, akkurat som i Bitcoin-nettverket. En EOA har en Ether (ETH)-saldo, og den kan sende og motta transaksjoner. Det er ingen programkode knyttet til den, og det koster ingen ETH å opprette en.

private key

En kontraktkonto kalles også en smart kontraktkonto fordi den faktisk er en smart kontrakt. En slik konto har også en Ethereum-adresse. En kontraktkonto kan også sende og motta transaksjoner, som kan være Ether eller annen informasjon.

Forskjellen er at det ikke er gratis å opprette eller bruke en kontraktkonto. Hver linje med programkode som EVMer må behandle, krever datakraften til nettverket. Derfor må programutviklere betale et gebyr. Dette kalles gass.

Jo mer komplekse programmer (smart kontrakter) du bygger, jo mer gass kreves. Det er fornuftig, ikke sant? Det begrenser også spamming og ondsinnet bruk av nettverket.

Når vi snakker om Ethereum-plattformen, betales gass i Ether (ETH). Det er noen plattformer, som har opprettet et annet token for dette formålet, også kalt gass. For eksempel har NEO sitt opprinnelige NEO-token og også et eget gasstoken, som begge kan kjøpes fra kryptovalutabørser.

Viktige funksjoner ved smart kontrakter

Smart kontrakter har flere viktige funksjoner, som for det meste allerede er dekket. Disse er:

  • Smart kontrakter er open source-programmer
  • Programkoden lagres på en blockchain
  • Programkoden kan ikke endres når den er publisert
  • En smart kontrakt utfører alle kommandoer automatisk
  • Programkoden, logikken og resultatene av en smart kontrakt er synlige for alle
  • Smart kontrakter kan ikke endres eller stoppes fra å kjøre

En smart kontrakt er et distribuert program som er lagret på en blockchain, som er åpen for alle, uforanderlige og sikre samtidig.

Selvfølgelig kan hvem som helst bygge sin egen private blockchain, som styres av en sentralisert enhet. Hvis nettverket ikke virkelig distribueres, ødelegger det hele ideen om en blockchain og smart kontrakter. Hvorfor ville du ikke da bruke en tradisjonell database og programmer i stedet?

Eksempler på bruk av smart kontrakter

La oss gå gjennom noen av de virkelige eksemplene på smart kontrakter. Hvordan de kan brukes og utføres?

Generelt er det uendelige brukstilfeller for smart kontrakter. Alle virkelige instrumenter kan tokeniseres på en blockchain og administreres med smart kontrakter.

Fordelene er åpenbare: besparelser i kostnader, hastighet og pålitelighet. Dette gjelder selvsagt bare hvis smart kontraktene

Smart kontrakter bidrar til å fjerne mellommennene fra enhver økonomisk prosess. Dette gjør hele prosessen raskere, enklere og mer pålitelig. Det er ikke mer rom for menneskelig feil, og hver part kan alltid være sikker på at de ønskede resultatene blir utført.

Investere

Det enkleste eksemplet er handel. Du kan tenke på å kjøpe et hus, en bil, aksjer eller andre finansielle instrumenter. Det er her du ser begrepet tokenisering, noe som betyr å konvertere virkelige objekter til tokens på en blockchain.

Tenk for eksempel på bilen din. Eierskapsloggen er for øyeblikket lagret i en sentralisert database. I fremtiden kan det være i blockchain. Du kan ha bevis på eierskap i et tokenformat.

Hvis du vil selge bilen din, kan det gjøres gjennom en smart kontrakt. Når ønsket mengde Ether ville bli sendt til en bestemt smart kontrakt, ville det endre eierskapet automatisk og flytte biltokenet til en ny person.

Prediksjonsmarkeder

Prediksjonsmarkedene bruker allerede smart kontrakter. Tradisjonelt har disse markedene vært dominert av sentraliserte enheter, noe som gir lite eller ingen rom for klager i tilfelle feil.

smartkontrakter

Det er allerede online plattformer, der betting gjøres P2P på blockchain. Dette kan være fremtidens vei. Alle prediksjonsmarkeder kan være blockchainbaserte, og resultatene vil alltid være 100% nøyaktige og utbetalinger automatisert.

Smart kontrakter kan bidra til å fjerne mellomleddet i spillindustrien.

Forsikringer

Forsikringer brukes ofte som eksempler på hvordan smart kontrakter kan revolusjonere verden vi kjenner. Det er tilfeller hele tiden, hvor forsikringsselskapet nekter å betale krav til personen som tror han var dekket.

Med smart kontrakter ville det ikke være behov for argumenter eller advokater. Alle vilkårene for forsikringen vil bli lagret på blockchain, hvor de er synlige for alle parter og uforanderlige. Hvis noe skjer, vil smart kontrakten utløses automatisk.

DeFi og NFT

DeFi (Decentralized Finance) og NFT (Non-Fungible Token) sektorer nådde endelig mainstream i 2020-2021. Denne økonomiske revolusjonen kunne ikke vært mulig uten smart kontrakter.

De mest populære DeFi-protokollene har over 20 milliarder dollar i likviditet. Hele DeFi-markedet har over 150 milliarder dollar av brukermidler låst inn. Den har vokst 100x på mindre enn to år.

DeFi-programmer inkluderer desentraliserte børser (Uniswap, PancakeSwap), likviditetsprotokoller (Aave, Compound) og yield-aggregatorer (Yearn.Finance).

Dette er alle 100% automatiserte Dapps. Alt drives med smart kontrakter. Det betyr at det ikke er noen KYC og ingen mellommenn mellom sluttbrukeren og protokollen. Investorer har også full kontroll over midlene sine hele tiden.

ICO-er

Kryptoboomen i 2017 var så massiv takket være ICO-er. De bidro til å øke Ethereum og andre tokens opprettet på plattformen. En ICO er crowdfunding gjort i kryptoverdenen. Et nytt prosjekt samler inn penger ved å selge deler av sine tokens til publikum.

Smart kontrakter brukes i ICO hele tiden. Hvis du vil delta i en ICO, sender du ganske enkelt Ether til en kontraktsadresse. En smart kontrakt utløses deretter og sender deg tilbake X antall nye tokens.

Chainlink orakler

La oss gå gjennom orakler også, som er kritiske komponenter i blockchainverdenen.

Den store begrensningen i en smart kontrakt er at den ikke får tilgang til ekstern informasjon. Den kan bare operere med informasjonen som finnes på blockchain. Du kan for eksempel ikke programmere en smart kontrakt for å hente værinformasjon, fotballresultater eller aksjekurser.

Dette er grunnen til at det er orakler. De gir datastrømmer fra omverdenen. Men det er et problem. Hvis en smart kontrakt bruker et orakel levert av en tredjepart, er desentraliseringsfordelene borte.

Et orakel kan inneholde falsk informasjon, eller det kan kobles fra. Dette ville sette hele smart kontrakten i fare.

Det er problemet Chainlink vil løse.

chainlink api

Chainlink har skapt et distribuert nettverk av orakler med insentiver for å gi riktig informasjon hele tiden. Dette er egentlig programvare bygget på Ethereum, men det vil utvide seg til andre plattformer også. For øyeblikket bruker de fleste populære Dapps Chainlinks orakler.

Avsluttende ord

Denne artikkelen forklarte smart kontrakter og Dapps. Nå forstår du hvorfor begrepet smart kontrakt er misvisende. Det er ingenting “smart” eller ingen “kontrakt” innebygd i den.

En smart kontrakt er ganske enkelt en blokk med Solidity-kode, som kan programmeres til å utføre visse oppgaver. Den er bare så smart som utvikleren er som opprettet den. Det er heller ikke nødvendigvis en kontrakt.

Det er for tiden flere plattformer opprettet for å støtte smart kontrakter og Dapps. Ethereum er den mest kjente, men Binance Smart Chain, Zilliqa, TRON og mange andre tilbyr lignende støtte.

Det er viktig å forstå at fordelene med smart kontrakter kommer fra et virkelig distribuert miljø. Hvis en blockchain styres av en enkel enhet, mister hele konseptet sin mening.

Orakelproblemet er også veldig viktig å forstå. Smart kontrakter trenger orakler for å få tilgang til omverdenen. Oracles må også desentraliseres for å sikre at smart kontrakt informasjonen ikke er feil.

Be the first to comment

Leave a Reply

Your email address will not be published.


*