Hvad er intelligente kontrakter?
Hjem
Artikler
Hvad er intelligente kontrakter?

Hvad er intelligente kontrakter?

Let √łvet
Offentliggjort Sep 16, 2019Opdateret Jun 9, 2023
9m

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.