Vad är smarta kontrakt? Så fungerar de – och riskerna

Foto av författare

By Karl Larsson

Smarta kontrakt (engelska: smart contracts) är en central del av blockkedjetekniken och ligger bakom mycket av det som byggs inom krypto, från DeFi till NFT:er. I den här guiden går vi igenom vad ett smart kontrakt är, hur det fungerar, vad det används till – och vilka risker och begränsningar man bör känna till.

Snabbfakta: Smarta kontrakt

Vad det ärSjälvutförande program på en blockkedja
Vanligast påEthereum (programspråket Solidity)
Körs närFörutbestämda villkor uppfylls
EgenskapOföränderligt när det väl publicerats
Används tillTokens, DeFi, NFT, DAO m.m.
ViktigtKan innehålla buggar – är inte ”omöjliga att hacka”

Vad är ett smart kontrakt?

Ett smart kontrakt är ett datorprogram som lagras på en blockkedja och körs automatiskt när förutbestämda villkor uppfylls. Villkoren är skrivna direkt i kod – enkelt uttryckt ”om X händer, gör Y”.

Tanken är att automatisera avtal så att parter kan göra affärer utan en mellanhand som verkställer överenskommelsen. Smarta kontrakt är vanligast på blockkedjan Ethereum, där de ofta skrivs i programspråket Solidity.

Hur fungerar smarta kontrakt?

Ett smart kontrakt publiceras (deployas) till blockkedjan och får en egen adress. Därefter kan vem som helst interagera med det enligt samma regler. Några centrala egenskaper:

  • Automatisk körning: när villkoren uppfylls utför kontraktet sina instruktioner av sig självt.
  • Registreras permanent: varje transaktion sparas i blockkedjan och går att granska i efterhand.
  • Oföränderligt: när kontraktet väl är publicerat kan koden i regel inte ändras.
  • Avgifter (gas): på Ethereum betalar man en avgift, ”gas”, för att köra kontraktets funktioner.

Ett smart kontrakt kan fungera enskilt eller tillsammans med andra kontrakt, vilket gör det möjligt att bygga mer avancerade tjänster.

Vad kan smarta kontrakt användas till?

Smarta kontrakt är byggstenar för många tillämpningar, framför allt inom krypto:

  • Tokens: många kryptotillgångar och ”tokens” skapas och hanteras med smarta kontrakt.
  • Decentraliserad finans (DeFi): tjänster för att låna, spara, byta och handla utan traditionella mellanhänder.
  • NFT:er (Non-Fungible Tokens): ägande av digitala tillgångar kan överföras enligt villkor i ett kontrakt.
  • DAO:er: decentraliserade organisationer som styrs via regler i kod.
  • Spel: spelekonomier där spelare kan äga och byta digitalt innehåll.

Ett förtydligande: en kryptovaluta är inte i sig ett ”smart kontrakt”. Bitcoin, den första kryptovalutan, har till exempel inte den typen av avancerade kontrakt. Däremot bygger väldigt mycket av det som sker på plattformar som Ethereum på just smarta kontrakt. Vill du förstå grunderna först, läs vad kryptovalutor är och vad du bör veta.

En varning på vägen: kryptotokens handlas på olika börser, men var mycket skeptisk mot ”handelsrobotar” som lovar automatisk eller garanterad vinst. Sådana tjänster är ofta rena bedrägerier.

Viktiga punkter

  • Ett smart kontrakt är ett program som lagras på en blockkedja och körs automatiskt när förutbestämda villkor uppfylls.
  • De är vanligast på Ethereum och skrivs ofta i programspråket Solidity.
  • När ett kontrakt väl publicerats är koden i regel oföränderlig, och transaktioner registreras permanent.
  • Smarta kontrakt används bland annat för tokens, decentraliserad finans (DeFi), NFT:er och DAO:er.
  • De är inte omöjliga att hacka – buggar i koden har lett till stora förluster, och felen går ofta inte att rätta i efterhand.
  • Var skeptisk mot ”handelsrobotar” som lovar automatisk vinst; sådana är ofta bedrägerier.

Fördelar med smarta kontrakt

  • Automation: avtal verkställs automatiskt, vilket sparar tid.
  • Färre mellanhänder: kan minska kostnader när tredje part inte behövs.
  • Transparens: koden och transaktionerna är synliga och spårbara på blockkedjan.
  • Förutsägbarhet: alla följer samma regler som är inbyggda i kontraktet.

Risker och begränsningar

Det är här den vanligaste missuppfattningen finns. Smarta kontrakt är inte magiskt säkra eller ”omöjliga att hacka”. De är program, och som all kod kan de innehålla buggar:

  • Sårbarheter kan utnyttjas. Fel i koden har lett till stora förluster. Det mest kända exemplet är ”The DAO”-hacket 2016, där en bugg (en så kallad reentrancy-sårbarhet) utnyttjades för att tömma kontraktet på ether till ett värde av tiotals miljoner dollar. Sedan dess har mycket stora belopp gått förlorade i olika DeFi-hack.
  • Oföränderligheten är ett tveeggat svärd. Eftersom koden inte kan ändras i efterhand blir ett fel i regel permanent – man kan inte bara ”lappa” hålet som i vanlig programvara.
  • Oåterkalleliga transaktioner. Går något fel går det sällan att ångra.
  • Beroende av extern data. Kontrakt som behöver information från omvärlden förlitar sig på så kallade oraklet, vilket kan vara en svag punkt.
  • Oklart rättsläge. Ett smart kontrakt är kod, inte nödvändigtvis ett juridiskt bindande avtal.

Just därför är noggrann kodgranskning (revision/audit) och testning avgörande innan ett kontrakt publiceras.

Smarta kontrakt och kryptovalutor

Smarta kontrakt kan ses som en vidareutveckling av idén bakom kryptovalutor: i stället för att bara skicka värde mellan parter kan man bygga in logik och villkor. Det är grunden för hela ekosystemet av tokens, DeFi och NFT:er. Fler guider och nyheter finns i respektive kategori.

Vanliga frågor (FAQ)

Vad är ett smart kontrakt?

Ett program som lagras på en blockkedja och körs automatiskt när förutbestämda villkor uppfylls, utan att en mellanhand behöver verkställa avtalet.

På vilken blockkedja används smarta kontrakt?

Vanligast är Ethereum, där kontrakten ofta skrivs i programspråket Solidity. Även andra blockkedjor stöder smarta kontrakt.

Är smarta kontrakt säkra och omöjliga att hacka?

Nej. De kan innehålla buggar som utnyttjas, och eftersom koden ofta är oföränderlig går fel sällan att rätta i efterhand. Kodgranskning är därför viktig.

Vad används smarta kontrakt till?

Bland annat tokens, decentraliserad finans (DeFi), NFT:er, DAO:er och spelekonomier.

Är en kryptovaluta samma sak som ett smart kontrakt?

Nej. En kryptovaluta är inte i sig ett smart kontrakt, men mycket inom krypto – som tokens och DeFi – byggs med hjälp av smarta kontrakt.

Kan ett smart kontrakt ändras efter att det publicerats?

I regel inte. Koden är oföränderlig, vilket är en styrka för förutsägbarheten men en risk om det finns fel.