Hvad er intelligente kontrakter?
Indholdsfortegnelse
Introduktion
Hvordan fungerer de?
Vigtige funktioner
Fordele og brugseksempler
Begrænsninger
Kritik
Sammenfatning
Hvad er intelligente kontrakter?
Hjem
Artikler
Hvad er intelligente kontrakter?

Hvad er intelligente kontrakter?

Let øvet
Offentliggjort Sep 16, 2019Opdateret Sep 23, 2022
8m

Introduktion

Nick Szabo beskrev første gang intelligente kontrakter i 1990'erne. Dengang definerede han en intelligent kontrakt som et værktøj, der formaliserer og sikrer computernetværk ved at kombinere protokoller med brugergrænseflader.

Szabo redegjorde for den potentielle brug af intelligente kontrakter på forskellige områder, der involverer kontraktlige aftaler – såsom kreditsystemer, betalingsbehandling og administration af indholdsrettigheder.

I kryptovalutaernes verden kan vi definere en intelligent kontrakt som en applikation eller et program, der kører på en blockchain. Typisk fungerer de som en digital aftale, der håndhæves af et bestemt regelsæt. Disse regler er foruddefineret af computerkode, som replikeres og udføres af alle netværks-noder.

Intelligente kontrakter til blockchain giver mulighed for oprettelse af tillidsløse protokoller. Det betyder, at to parter kan indgå forpligtelser via blockchain, uden at skulle kende til eller stole på hinanden. De kan være sikre på, at hvis betingelserne ikke er opfyldt, vil kontrakten ikke blive udført. Bortset fra det kan brugen af intelligente kontrakter fjerne behovet for mellemmænd, hvilket reducerer driftsomkostningerne betydeligt.

Selvom bitcoin-protokollen har understøttet intelligente kontrakter i mange år, blev de gjort populære af skaberen og medstifteren af Ethereum, Vitalik Buterin. Det er dog værd at bemærke, at hver blockchain kan præsentere forskellige metoder til implementering af intelligente kontrakter. 

Denne artikel vil fokusere på de intelligente kontrakter, der kører på Ethereum Virtual Machine (EVM), som er en væsentlig del af Ethereum-blockchain.


Hvordan fungerer de?

Sagt på en enkel måde fungerer en intelligent kontrakt som et deterministisk program. Den udfører en bestemt opgave, når og hvis visse betingelser er opfyldt. Som sådan følger et intelligent kontraktsystem ofte "hvis ... så ..."-udsagn. Men på trods af den populære terminologi er intelligente kontrakter ikke lovlige kontrakter eller intelligent. De er blot et stykke kode, der kører på et distribueret system (blockchain).

På Ethereum-netværket er intelligente kontrakter ansvarlige for at udføre og administrere de blockchain-operationer, der finder sted, når brugere (adresser) interagerer med hinanden. Enhver adresse, der ikke er en intelligent kontrakt, kaldes en eksternt ejet konto (externally owned account, EOA). Således styres intelligente kontrakter af computerkode, og EOA'er styres af brugere.

Grundlæggende set er Ethereums intelligente kontrakter lavet af en kontraktkode og to offentlige nøgler. Den første offentlige nøgle er den, der leveres af skaberen af kontrakten. Den anden nøgle repræsenterer selve kontrakten, og den fungerer som en digital identifikator, der er unik for alle intelligente kontrakter.

Implementeringen af intelligente kontrakter sker gennem en blockchain-transaktion, og de kan kun aktiveres, når de tilkaldes af en EOA (eller af andre intelligente kontrakter). Den første udløser er dog altid forårsaget af en EOA (bruger).


Vigtige funktioner

En intelligent Ethereum-kontrakt præsenterer ofte følgende karakteristika:

Distribueret. Intelligente kontrakter gengives og distribueres i alle noder af Ethereum-netværket. Dette er én af de store forskelle fra andre løsninger, der er baseret på centraliserede servere.

Deterministisk. Intelligente kontrakter udfører kun de handlinger, de er designet til, såfremt kravene er opfyldt. Desuden vil resultatet altid være det samme, uanset hvem der udfører dem.

Selvstændig. Intelligente kontrakter kan automatisere alle mulige opgaver, der fungerer som et selvudførende program. Men i de fleste tilfælde, hvis en intelligent kontrakt ikke udløses, forbliver den "sovende" og udfører ingen handling.

Uforanderlig. Intelligente kontrakter kan ikke ændres efter implementering. De kan kun "slettes", hvis en bestemt funktion tidligere var implementeret. Således kan det siges, at intelligente kontrakter giver manipulationssikker kode.

Kan tilpasses. Inden implementeringen kan intelligente kontrakter kodes på mange forskellige måder. Dermed kan de bruges til at skabe mange typer decentraliserede applikationer (DApps). Dette er relateret til det faktum, at Ethereum er en Turing-komplet blockchain.

Tillidsløs. To eller flere parter kan interagere via intelligente kontrakter uden at kende eller stole på hinanden. Derudover sikrer blockchain-teknologi, at data er nøjagtige.

Gennemsigtig. Eftersom intelligente kontrakter er baseret på en offentlig blockchain, er deres kildekode ikke kun uforanderlig, men også synlig for enhver.


Kan jeg ændre eller slette en intelligent kontrakt?

Det er umuligt at føje nye funktioner til en intelligent Ethereum-kontrakt efter implementering. Men hvis dens skaber inkluderer en funktion kaldet SELFDESTRUCT i koden, er det muligt at "slette" den intelligente kontrakt i fremtiden og erstatte den med en ny. I modsætning hertil vil det ikke være muligt at slette den, hvis funktionen ikke er inkluderet i koden på forhånd.

Bemærkelsesværdigt er de såkaldte opgraderbare intelligente kontrakter med til at give udviklere mere fleksibilitet i forhold til kontrakternes uforanderlighed. Der er mange måder at skabe opgraderbare intelligente kontrakter på, med varierende grader af kompleksitet.

Med et forenklet eksempel kan vi forestille os, at en intelligent kontrakt er opdelt i flere mindre kontrakter. Nogle af dem er designet til at være uforanderlige, mens andre har "slet"-funktionen aktiveret. Det betyder, at en del af koden (intelligente kontrakter) kan slettes og erstattes, mens andre funktionaliteter forbliver intakte.


Fordele og brugseksempler

Som programmerbar kode er intelligente kontrakter meget tilpasselige og kan designes på mange forskellige måder, der tilbyder mange slags tjenester og løsninger.

Som decentraliserede og selvudførende programmer kan intelligente kontrakter give øget gennemsigtighed og reducerede driftsomkostninger. Afhængigt af implementeringen kan de også øge effektiviteten og reducere bureaukratiske udgifter.

Intelligente kontrakter er især nyttige i situationer, der involverer overførsel eller udveksling af midler mellem to eller flere parter.

Med andre ord kan intelligente kontrakter designes til en bred vifte af brugseksempler. Nogle eksempler omfatter oprettelsen af tokeniserede aktiver, afstemningssystemer, kryptotegnebøger, decentraliserede børser, spil og mobilapplikationer. De kan også implementeres sammen med andre blockchain-løsninger, der håndterer områder som sundhedspleje, velgørenhed, forsyningskæde, styring og decentraliseret finansiering (DeFi).


ERC-20

Tokens udstedt på Ethereum-blockchain, der er en standard kendt som ERC-20. Denne standard beskriver kernefunktionerne for alle Ethereum-baserede tokens. Som sådan omtales disse digitale aktiver ofte som ERC-20-tokens, og de repræsenterer en stor del af de eksisterende kryptovalutaer.

Mange blockchain-virksomheder og nystartede virksomheder implementerede intelligente kontrakter for at udstede deres digitale tokens på Ethereum-netværket. Efter udstedelsen distribuerede størstedelen af disse virksomheder deres ERC-20-tokens gennem begivenheder for indledende møntudbud (ICO). I de fleste tilfælde muliggjorde brugen af intelligente kontrakter udveksling af midler og distribution af tokens på en tillidsfri og effektiv måde.


Begrænsninger

Intelligente kontrakter er lavet af computerkode, der er skrevet af mennesker. Dette medfører adskillige risici, da koden er underlagt sårbarheder og fejl. Ideelt set bør de skrives og implementeres af erfarne programmører, især når de involverer følsomme oplysninger eller store beløb.

Derudover hævder nogle, at centraliserede systemer kan levere de fleste af de løsninger og funktionaliteter, der tilbydes af intelligente kontrakter. Den største forskel er, at intelligente kontrakter kører på et distribueret P2P-netværk i stedet for en centraliseret server. Og fordi de er baseret på et blockchain-system, har de en tendens til enten at være uforanderlige eller meget svære at ændre.

Det at være uforanderlig kan være fantastisk i nogle situationer, men meget dårligt i andre. F.eks. da en decentraliseret selvstændig organisation (Decentralized Autonomous Organization, DAO) kaldet "The DAO" blev hacket i 2016, blev millioner af ether (ETH) stjålet på grund af fejl i deres intelligente kontraktkode.

Eftersom deres intelligente kontrakt var uforanderlig, var udviklere ikke i stand til at rette koden. Dette førte til sidst til en hard fork, der affødte en anden Ethereum-kæde. Sagt på en enkel måde, én kæde fik hacket til at "vende tilbage" og returnerede midlerne til de retmæssige ejere (dette er en del af den nuværende Ethereum-blockchain). Den anden blockchain besluttede ikke at blande sig i hacket og sagde, at ting, der sker på en blockchain, aldrig bør ændres (denne blockchain hedder nu Ethereum Classic).

Det er vigtigt at bemærke, at problemet ikke kom fra Ethereums blockchain. I stedet var det forårsaget af en defekt implementering af intelligent kontrakt.

En anden begrænsning med intelligente kontrakter er relateret til deres usikre juridiske status. Det er ikke kun fordi de befinder sig i en gråzone i de fleste lande, men også fordi intelligente kontrakter ikke passer til de nuværende juridiske rammer.

F.eks. kræver mange kontrakter, at begge parter er korrekt identificeret og over 18 år gamle. Den pseudonymitet, som blockchain-teknologien medfører, kombineret med manglen på mellemled, kan true disse krav. Selvom der er potentielle løsninger på dette, er den juridiske håndhævelse af intelligente kontrakter en reel udfordring - især når det kommer til grænseløse, distribuerede netværk.


Kritik

Nogle blockchain-entusiaster ser intelligente kontrakter som en løsning, der snart vil erstatte og automatisere en stor del af vores kommercielle og bureaukratiske systemer. Selvom dette er en mulig realitet, er det sandsynligvis langt fra at blive til normen.

Intelligente kontrakter er bestemt et interessant stykke teknologi. Men at være distribueret, deterministisk, gennemsigtig og til en vis grad uforanderlig kan gøre dem mindre tiltalende i nogle situationer.

I bund og grund bygger kritikken på det faktum, at intelligente kontrakter ikke er en passende løsning på mange problemer i den virkelige verden. Faktisk er nogle organisationer bedre stillet ved at bruge konventionelle serverbaserede alternativer. 

Sammenlignet med intelligente kontrakter er centraliserede servere nemmere og billigere at vedligeholde og har en tendens til at præsentere en højere effektivitet med hensyn til hastighed og kommunikation på tværs af netværk (interoperabilitet).


Sammenfatning

Der er ingen tvivl om, at intelligente kontrakter forårsagede en stor indvirkning i kryptovalutaernes verden, og de revolutionerede helt sikkert blockchain-området. Selvom slutbrugerne muligvis ikke interagerer direkte med intelligente kontrakter, vil disse sandsynligvis drive en bred vifte af applikationer i fremtiden, lige fra finansielle tjenester til administration af forsyningskæder.

Tilsammen har intelligente kontrakter og blockchain potentialet til at forstyrre næsten alle områder af vores samfund. Men kun tiden vil vise, om disse banebrydende teknologier vil formå at overvinde de mange barrierer for storstilet indførelse.