Hva er smartkontrakt?
En smartkontrakt er en selvutførende avtale der kontraktsvilkårene er skrevet inn i kodelinjer. Smartkontrakter bruker distribuerte hovedbøker som blockchain til å dokumentere og validere kontraktstransaksjoner på en sikker og transparent måte uten behov for tilsyn fra en sentral myndighet.
En av de største fordelene med smartkontrakter i forhold til tradisjonelle kontrakter er at de kan automatisere hvert trinn i kontraktens utførelse når forhåndsbestemte hvis/så-betingelser er oppfylt. I næringslivet brukes smartkontrakter til å
- Automatisere finansielle transaksjoner.
- Spore varebevegelser og verifisere ekthet og eierskap på hvert trinn i en forsyningskjede.
- Opprette og administrere desentraliserte systemer for identitets- og tilgangskontroll.
- Verifisere eierskap til digitale eller fysiske eiendeler.
- Støtte applikasjoner som kjører i et desentralisert blockchain-miljø (DApps).
Techopedia forklarer smartkontrakt
Ideen om smartkontrakter ble først foreslått av informatikeren og juristen Nick Szabo på midten av 1990-tallet. Szabo så for seg et system der kontrakter kunne være selvutførende ved hjelp av datakode for å håndheve kontraktsvilkårene.
Det var imidlertid først med Bitcoin og den utbredte bruken av distributed ledger-teknologi for kryptovalutaer at konseptet med smartkontrakter virkelig begynte å vekke interesse, særlig i bransjer som finans og leverandørkjedestyring.
Her er et eksempel på hvordan en smartkontrakt kan brukes i leverandørkjedestyring (SCM):
- En leverandørkjedeleder ber IT-avdelingen om å lage en smartkontrakt som dokumenterer forflytningen av en vare fra en leverandør til lederens lager.
- Produktutviklerne bruker Solidity til å skrive kode som spesifiserer de involverte partene, kontraktsvilkårene og betingelsene for kontraktens utførelse.
- Smartkontrakten distribueres på en Ethereum-blokkjede, og alle involverte parter i forsyningskjeden får tilgang til kontraktens adresse på blokkjeden.
- Etter hvert som varen beveger seg gjennom forsyningskjeden, dokumenterer smartkontrakten transaksjonen, verifiserer informasjonen som er registrert i blokkjeden, og sikrer at kontraktens betingelser er oppfylt.
- Hvis vilkårene er oppfylt, utfører smartkontrakten kontraktens forhåndsdefinerte if/then-setninger.
- Hvis noen av betingelsene i kontrakten ikke er oppfylt, utløser smartkontrakten en forhåndsdefinert handling, for eksempel å varsle relevante parter eller hindre at varen går videre i forsyningskjeden.
- Når varen når frem til leverandørkjedelederens lager, iverksetter kontrakten betaling til leverandøren.
Fordeler med smartkontrakter
Ved å implementere en smartkontrakt på en distribuert hovedbok får alle involverte parter i leverandørkjeden tilgang til en sikker og manipuleringssikker oversikt over transaksjonen som sikrer at informasjonen er nøyaktig, oppdatert og transparent.
Hvis en av de involverte partene når som helst under kontraktens utførelse ønsker å sjekke kontraktens status, kan de bruke en klientapplikasjon eller et webgrensesnitt til å kalle en funksjon i kontrakten som returnerer dataene de er interessert i. Funksjonskallet kringkastes til nettverket, og de forespurte dataene returneres hvis kallet er vellykket.
Utfordringer med smartkontrakter
En av de største utfordringene ved å bruke smartkontrakter i næringslivet er at det fortsatt er stor usikkerhet knyttet til regelverket rundt bruken av smartkontrakter, særlig i sterkt regulerte bransjer som finans og helse.
Selv om smartkontrakter er utformet for å være sikre og beskyttet mot manipulering, er det fortsatt risiko for feil eller sårbarheter i koden som kan utnyttes av ondsinnede aktører.
Når det oppstår spørsmål om hvordan tvister eller feil i smartkontrakter skal løses, kan det oppstå forvirring om hvorvidt ulike geopolitiske regioner skal anvende sine tradisjonelle kontraktslover på smartkontrakter. Som svar på dette har noen jurisdiksjoner i USA forsøkt å gi smartkontrakter en ny juridisk anerkjennelse, med blandede resultater.
Smartkontrakter og kryptovalutaer
Smartkontrakter spiller en avgjørende rolle i forvaltningen og overføringen av kryptovalutaer. Der de brukes til å:
- Automatisere betalinger med kryptovaluta.
- Legge til rette for lynlån og andre typer peer-to-peer-handel.
- Utstede og administrere blockchain-tokens som representerer en form for verdi.
- Opprette sperretjenester som sikrer at midler bare frigjøres når visse betingelser er oppfylt.
Smartkontrakter og DApps
En DApp er en applikasjon som kjører på en distribuert hovedbok. DApps bruker smartkontrakter til å automatisere utførelsen og håndhevelsen av applikasjonens regler og logikk. En DApp som muliggjør peer-to-peer-utlån, kan for eksempel bruke en smartkontrakt til automatisk å overføre penger fra en utlåner til en låntaker basert på forhåndsdefinerte betingelser, for eksempel mottak av sikkerhet.
Distribuerte hovedbøker med smartkontrakter
Selv om Ethereum er den mest kjente og brukte blockchain-plattformen for smartkontrakter, er det ikke den eneste blockchain-plattformen som støtter smartkontrakter.
Andre populære distribuerte hovedbøker som støtter opprettelse og utførelse av smartkontrakter og DApps, er blant annet:
- Binance Smart Chain
- Tron
- Solana
- Dfinity
- Cardano
Selv om alle plattformene ovenfor støtter smartkontrakter, varierer det fra plattform til plattform hvilke funksjoner de tilbyr og hvordan kontraktene implementeres. Noen blokkjeder, som Ethereum og Binance Smart Chain, støtter for eksempel flere programmeringsspråk for utvikling av smartkontrakter, mens andre, som Cardano og Tron, bruker et spesifikt språk for utvikling av smartkontrakter.
Leverandører av smartkontrakt-tjenester
Det kan være vanskelig å finne utviklere som har kompetanse til å utvikle og implementere smartkontrakter, så det er ingen overraskelse at leverandørene bruker en “as-a-service”-modell. Noen av de største leverandørene av smartkontrakter er blant annet:
ScienceSoft – er kjent for å hjelpe kunder med å integrere orakler med smartkontrakter. I forbindelse med smartkontrakter er orakler tredjepartstjenester som leverer data utenfor kjeden til smartkontrakten.
Innowise – er kjent for å hjelpe kunder med å velge den mest hensiktsmessige blokkjedeplattformen for sine smartkontrakter.
Avalanche – hevder å være den raskeste plattformen for smartkontrakter i blokkjedeindustrien, målt i tid til ferdigstillelse.
4soft – er kjent for å hjelpe kunder med å optimalisere smartkontrakter.
VeriDoc Sign – en e-signaturtjeneste som støttes av smartkontrakter.
Smartkontrakters sikkerhet
Selv om smartkontrakter som utføres på en distribuert hovedbok, har mange sikkerhetsfordeler, er det fortsatt sikkerhetsrisikoer forbundet med bruken av dem, blant annet:
- Feil og sårbarheter: Smartkontrakter er skrevet i kode, og som all annen programvare kan de inneholde feil og sårbarheter som kan utnyttes av angripere til å stjele penger, forstyrre nettverket eller manipulere resultater på en ondsinnet måte.
- Oracle-angrep: Smartkontrakter er ofte avhengige av eksterne datakilder (såkalte orakler) for å utføre visse funksjoner. Når et tredjeparts orakel har blitt kompromittert, kan det brukes til å gi en smartkontrakt unøyaktige data.
- Sårbarheter knyttet til kodeutførelse: Smartkontrakter er sårbare for angrep som utnytter feil i måten koden utføres på. En angriper kan for eksempel utnytte race conditions til å utføre et reentrancy-angrep.
- Angrep på nettverksnivå: Smartkontrakter utføres på et blokkjedenettverk, og som alle andre nettverk kan de utsettes for tjenestenektangrep (DoS-angrep) og andre angrep som har til hensikt å forstyrre nettverket og svekke sikkerheten.
For å håndtere disse problemene må utviklere av smartkontrakter iverksette robuste sikkerhetstiltak, inkludert koderevisjoner, kontroller med flere signaturer og regelmessige sikkerhetsvurderinger. Kunstig intelligens (AI) og maskinlæring (ML) brukes i økende grad til å overvåke utførelsen av smartkontrakter og utløse tiltak eller varsler når forhåndsdefinerte betingelser ikke er oppfylt eller når det oppdages avvik i datamønstrene.