Elegant og sikker matematik? Blockchain-kontrakter kan også have smuthuller

Klumme: Et smuthul i en blockchain-kontrakt udformet på blockchain-platformen Ethereum kunne potentielt have kostet investorer over en halv milliard kroner i tab. Der var endda tale om et kendt smuthul, som var blevet opdaget mere end en uge før, episoden fandt sted. Hvad betyder det for brugen af smarte kontrakter på en blockchain?

Artikel top billede

Ligesom internettet revolutionerede kommunikation, er blockchain-teknologien blevet spået som den næste revolution inden for handel.

Eksempelvis har blockchainteknologien ved anvendelse inden for den finansielle sektor potentialet til at overflødiggøre mange tredjemænd (typisk bankerne) ved overførsler af midler mellem to parter.

Teknologien er matematisk elegant, sikker og gennemsigtig.

Sat på spidsen svarer det til, at når du betaler din ven via MobilePay, er det ikke Danske Bank, der gennemfører overførslen, men derimod en krypteret forbindelse direkte fra din e-wallet til din vens e-wallet (de såkaldte e-wallets svarer typisk til en almindelig bankkonto, men bruges i stedet til opbevaring af blockchain-valuta).

Teknologien er allerede blevet anvendt til valuta, også kaldet 'cryptocurrency', hvor vi blandt andet har set tiltag som BitCoin få en meget blandet modtagelse.

Det nye inden for blockchainteknologi er dog anvendelsen af de såkaldte smarte kontrakter. Jeg har tidligere beskrevet visse juridiske udfordringer i forbindelse smarts contracts og blockchain.

Blockchain-kontrakter

En blockchain-kontrakt er egentlig bare udtryk for en blockchainoverførsel (som beskrevet ovenfor) tilknyttet vilkår. Når dette vilkår opfyldes, gennemføres kontrakten - ganske som ved en almindelig kontrakt.

I almindelige kontrakter må vi i dag stole på, at vores modpart overholder vilkårene, og vi kan ikke som sådan tvinge ham til at overholde dem - i sidste ende kan man selvfølgelig indirekte tvinge ham med domstolenes hjælp.

Fuldbyrdelsen af en blockchain-kontrakt er derimod funktionelt bundet af opfyldelsen af det pågældende vilkår.

Det er enten opfyldt, hvorefter kontrakten automatisk fuldbyrdes for eksempel ved en overførsel af penge, eller også er den ikke opfyldt, hvorefter kontrakten automatisk bringes til ophør.

Blockchain-kontrakten ligner derfor mere et computerprogram end en kontrakt i gængs forstand.

Det lyder jo umiddelbart ret smart. Og det er det også.

Men det betyder samtidig, at blockchain-kontrakter er helt og aldeles nådesløs over for huller og/eller forglemmelser i en kontrakt.

Og netop dette faktum har en flok investorer måtte sande sidste år i den nævnte episode.

The DAO

Her var tale om en crowd-baseret venturekapitalfond, kaldet The DAO, som var reguleret i en blockchain-kontrakt.

Kontrakten, som blandt andet regulerede investeringer, drift og udtrækning af midler fra fonden, var baseret på platformen Ethereum, som er en platform, der kan håndtere blockchain-kontrakter og som har sin egen cryptocurrency tilknyttet kaldet 'Ether' (svarende til BitCoin).

Basalt set udveksles ydelser for Ether gennem blockchain-kontrakterne. Ethereum har sit eget JavaScript-baserede programmeringssprog tilknyttet platformen, som man skal skrive sine kontrakter i.

Kontrakten til grund for The DAO var baseret på en blockchain-kontraktskabelon særligt udviklet til fonde, som var udviklet af Slock.it.

Mere end en uge før episoden var der opdaget en såkaldt 'recursive call'-sårbarhed i kontraktskabelonen, men denne blev ikke betragtet som alvorlig, da stifteren af Slock.it i en blogpost mente, den kun vedrørte en lille del af kontraktskabelonen, som alligevel ikke håndterede værdier (Ether).

Alligevel formåede en snedig investor i The DAO at udnytte fejlen - med store økonomiske konsekvenser.

Investoren oprettede en separat konto og overførte alt Ether i The DAO hertil. Der blev i alt overført 8,26 millioner Ether svarende til 643,5 millioner kroner.

Men hvordan kunne det overhovedet gå så galt?

Smuthullet

The DAO-kontrakten - altså denne udgave af en smart contract - regulerede som nævnt investorernes muligheder for at trække Ether ud af fonden. Dette er der intet unaturligt i.

Når der er tale om en blockchain-kontrakt foregår en sådan regulering ved hjælp af en "funktion".

Funktionen, som regulerede udbetalingen af Ether, var delt op i flere dele, hvoraf to af disse i kombination udgjorde smuthullet.

Den ene del af funktionen bestod af selve udbetalingen af indestående Ether til investoren.

Den anden del af funktionen bestod af opdateringen af balancen på investorens konto.

Det lykkedes investoren at udnytte blockchain-kontraktens selveksekverende natur til at genbruge den første del af funktionen adskillige gange, før den anden del blev eksekveret.

Oversat til dansk: Det svarer til at gå ned i banken, hæve alle pengene på sin konto og derefter bede bankassistenten om at hæve alle pengene en gang til, før bankassistenten når at opdatere balancen på kontoen.

De juridiske aspekter

Det er meget svært at forestille sig, at en sådan situation kunne have opstået, hvis forholdet havde været reguleret af en almindelig kontrakt.

Var en investor kommet og ville hæve sit indestående i en venturekapitalfond flere gange, var han nok blevet mødt med en måbende bestyrelse og et klart og tydeligt nej.

Havde kontrakten været uklar - altså indeholdt et lignende smuthul - ville fonden sandsynligvis i første omgang nægte udbetalingen alligevel og dernæst søge hjælp i aftaleretten, regler om ond tro eller andre retlige midler for måske endeligt at gå rettens vej - det er ikke sikkert fonden ville få medhold i sidste ende, men processerne tager alle en vis tid og involverer ofte flere parter.

Det havde under alle omstændigheder ikke været muligt for investoren uhæmmet at tappe venturekapitalfonden for alle dens midler, med mindre han direkte stjal eller bedragede sig til det.

I sådanne situationer fremstår ulemperne ved blockchain-kontrakternes selveksekverende natur tydeligt. Der er ingen tredjemand eller udefrakommende forhold, som kan "bremse" en utilsigtet udnyttelse af kontrakten.

Det hele sker fra det ene øjeblik til det andet, og så længe handlingen stemmer overens med kontrakten, får man teoretisk set frit spil.

Det kan diskuteres, om udnyttelsen kan betegnes som hacking, hvorfor han i så fald kunne straffes efter den danske straffelov for databedrageri.

Emin Gün Sirer, lektor i datalogi ved Cornell University, er da også usikker på, hvorvidt det kan betegnes som hacking. Han udtaler: "For at betegne noget som et hack, en fejl eller uønsket adfærd, er vi nødt til at have en specifikation af den ønskede adfærd. Vi havde ingen specifikationer af den art for The DAO."

Som resultat af episoden faldt værdien af én Ether med næsten 50 procent over bare fire dage.

Ethereums dilemma

Episoden satte Ethereum i en paradoksal situation. Man ønskede at tilgodese de resterende investorer i The DAO ved at fryse kontoen, hvortil Etherne blev overført med henblik på at tilbageføre dem til rette ejer.

Dette nødvendiggør, at den underliggende kode for Ethereum-platformen laves om (et såkaldt "hard fork"), hvilket kræver at et flertal af alle brugere af Ethereum-platformen, som bidrager til verificeringen af blockchain-kontrakterne (svarende til "BitCoin-miners"), godkender dette.

Det vil ligeledes betyde et brud på et af de fundamentale koncepter bag blockchain-kontrakterne - nemlig at afskære indblanding fra tredjeparter.

Der var tale om en ægte lose-lose situation for Ethereum.

Det var også efter en nøje afvejning af alle hensyn, at Ethereums community besluttede at lave den såkaldte hard fork, hvilket medførte, at de 3 blocks, hvori "hacken" blev udført, manuelt blev omprogrammeret af Ethereums brugere.

Man kan sammenligne det med, at man dirigerer trafikken uden om et stykke ødelagt vej, idet hard forken så ud som denne illustration (kilde: Ethereum.org)

Udfaldet kan synes fair og pragmatisk på den korte bane, men det åbner imidlertid også for, at andre problemer løses på tilsvarende vis, hvilket grundlæggende stri (der imod blockchainens filosofi og på den lange bane unægteligt forringer dens legitimitet, fordi tredjemand alligevel til en vis grad kan udøve bestemmende indflydelse på et ellers decentralt, autonomt system.

Og i hvert fald har hele The DAO-miseren sat et stort spørgsmål ved påstanden fra mange tidlige blockchain- og smart contract-entusiaster om, at disse nye organisationer kunne leve i et totalt vakuum uden traditionel juridisk indblanding.

(Tak til junior associate, Mathias Bartholdy, for hjælp med at skrive dette indlæg.)

Klummer er læsernes platform på Computerworld til at fortælle de bedste historier, og samtidig er det vores meget populære og meget læste forum for videndeling. 

Har du en god historie eller har du specialviden, som du synes trænger til at blive delt? 

Læs vores klumme-guidelines og send os noget tekst, så kontakter vi dig - måske bliver du en del af vores hurtigt voksende korps af klummeskribenter.

Læses lige nu
    Computerworld Events

    Vi samler hvert år mere end 6.000 deltagere på mere end 70 events for it-professionelle.

    Ekspertindsigt – Lyt til førende specialister og virksomheder, der deler viden om den nyeste teknologi og de bedste løsninger.
    Netværk – Mød beslutningstagere, kolleger og samarbejdspartnere på tværs af brancher.
    Praktisk viden – Få konkrete cases, værktøjer og inspiration, som du kan tage direkte med hjem i organisationen.
    Aktuelle tendenser – Bliv opdateret på de vigtigste dagsordener inden for cloud, sikkerhed, data, AI og digital forretning.

    Digital transformation | Aarhus C

    Computerworld Summit 2026 - Aarhus

    Styrk din digitale strategi med konkret brug af AI og ny teknologi. Mød 200 it-professionelle, få indsigter, løsninger og netværk på én dag. Computerworld Summit i Aarhus viser hvordan teknologi skaber forretningsværdi – her og nu.

    Infrastruktur | Frederiksberg

    Roundtable: Vækst, skalering og internationalisering i en ny virkelighed

    Vækst og internationalisering kræver it, der kan skifte retning uden at knække. Lær at designe løst koblede platforme, planlægge leverandørskift og skalere til nye markeder uden tab af tempo og kontrol. Deltag i dette lukkede roundtable med...

    Digital transformation | København

    Computerworld Summit 2026 - København

    Styrk din digitale strategi med konkret brug af AI og ny teknologi. Mød 250 it-professionelle, få indsigter, løsninger og netværk på én dag. Computerworld Summit i København viser hvordan teknologi skaber forretningsværdi – her og nu.

    Se alle vores events inden for it

    Navnenyt fra it-Danmark

    Pentos har pr. 2. juni 2025 ansat Erik Ebert som Country Manager. Han skal især beskæftige sig med udvidelsen af Pentos til Danmark og Norden. Det kræver bl.a. etablering af et lokalt leverance team og SAP Partnerskab. Han kommer fra en stilling som Senior Director hos Effective People. Han har tidligere beskæftiget sig med HR systemer baseret på SAP SuccessFactors hos en række danske større og mellemstore virksomheder. Nyt job

    Erik Ebert

    Pentos

    Netip A/S har pr. 1. februar 2026 ansat Henrik Mejnhardt Nielsen som ny kollega til Product Sales Teamet i Herlev. Han kommer fra en stilling som Business Development Manager hos Arrow. Nyt job
    Renewtech ApS har pr. 1. marts 2026 ansat Emil Holme Fisker som Customer Service Specialist. Han skal især beskæftige sig med at levere høj kvalitets kundeservice og hjælpe Renewtechs kunder med at få de rette løsninger til deres behov. Han kommer fra en stilling som Key Account Manager hos Camro A/S. Han er uddannet som salgselev hos Camro A/S. Han har tidligere beskæftiget sig med at udvikle gode kunderelationer, opsøgende salg og udvikling af salgsaktiviteter. Nyt job

    Emil Holme Fisker

    Renewtech ApS

    Khaled Zamzam, er pr. 1. marts 2026 ansat hos Immeo som Consultant. Han er nyuddannet i Informationsteknologi fra DTU. Nyt job