Vad är smart contracts? – Enkel och begriplig förklaring
Smart contracts ”smarta kontrakt” är elektroniska kontrakt baserade på datorprogram som automatiserar affärsprocesser på ett säkert sätt, även mellan partnerföretag. Smarta kontrakt bygger på blockkedjeteknik och utnyttjar fördelarna med denna teknik, t.ex. transparens, förfalskningsskydd och tillgänglighet.
Smart contracts är jämförbara med konventionella kontrakt, t.ex. sådana som ingås när man köper en bil eller tar emot ett jobb. Smart contracts används ofta i leveranskedjor (Supply chains) för att styra varuflöden mellan partnerföretag, för att genomföra automatiska beställningar och därmed också automatiska betalningar.
Smarta kontrakt används också inom sakernas internet (Internet of Things, IoT) för att bearbeta automatiska transaktioner från slutenheter. I Internet of Things är olika enheter kopplade till varandra via internet. Det kan vara fordon, apparater, övervakningskameror, sensorer och andra maskiner som kommunicerar med varandra och utbyter data. Smart contracts kan också användas för att syra utbytet av data. Detta möjliggör automatiserade köpekontrakt, avvecklingar med smarta kontrakt och hantering av IoT-enheter, inklusive transaktioner.
Smarta kontrakt är helt enkelt datorprogram. De kostar mindre pengar och fungerar effektivare än manuella processer och kontrakt i ett företag, t.ex. för att utlösa beställningar och övervaka varuflöden. I blockkedjor används ofta decentraliserade applikationer (dApps) som inte ansluts till en servertjänst utan körs på deltagarnas noder i blockkedjenätverket.
Decentraliserade applikationer (dApps) är appar som fungerar och drivs med blockchains, t.ex. smarta kontrakt. De har en viktig roll i blockkedjevärlden, även när det gäller att skapa blockkedjeapplikationer baserade på Ethereum.
Man kan även minska påverkan av den mänskliga faktorn, om koden är välutvecklad kan den praktiskt taget elimineras när man använder dApps och smart contracts. Den mest kända blockkedjeplattformen som erbjuder smart contracts är Ethereum. Det finns såklart andra kryptoprojekt som också erbjuder smart contracts. Företag med fokus på blockkedjor förlitar sig ofta också på Hyperledger.
Definition av smart contracts
Smart contracts är självutförande kontrakt (datorprogram med en specifik funktion) där villkoren för avtalet mellan köper och säljare skrivs in direkt i koden. Smarta kontrakt är datorprogram (dApps) som arbetar tillsammans med en blockchain. Koden för smart contracts och de avtal som de innehåller finns i ett distribuerat, decentraliserat blockkedjenätverk.
Smart contracts gör det möjligt att ingå i säkra transaktioner och avtal mellan olika (anonyma) parter utan att det behövs en central myndighet, ett rättssystem eller en extern kontrollmekanism. Smarta kontrakt gör alla transaktioner spårbara, transparenta och irreversibla. Det finns ingen central myndighet, utan nätverket och dess deltagare verifierar transaktionerna utifrån det smarta kontraktet.
Det är värt att nämna att ett smart contract endast är så ”smart” som koden utvecklarna skrev, kontraktet kan alltså inte genomföra något som inte är kodat. Tekniken har inte någon integrerad AI för utvecklingen och genomförandet. Det betyder såklart även att den mänskliga faktorn spelar roll i utvecklandet av koden, men för etablerade system och applikationer är koden väl testad. Koden är såklart också open-source så du kan själv in och undersöka den vid behov.
Hur fungerar smart contracts?
Smart contracts beskrevs för första gången 1993 av datorforskaren Nick Szabo. Han insåg att smart contracts kan användas i en blockkedja och att de kan förenkla affärstransaktioner mellan företag enormt, oavsett bransch eller avdelning.
Konventionella icke-digitala kontrakt är skriftliga avtal innehåller information om de avtalsslutande parterna. De innehåller även information om parternas krav och vad som måste genomföras för att uppnå det avtalade målet. I det här avseende skiljer det sig inget mellan konventionella kontrakt och smart contracts.
I ett enkelt exempel innehåller ett bilförsäljningsavtal information om det företaget (säljande part) och kunden (köpande part).
I det här exemplet ska återförsäljaren sälja en bil till kunden. I kontraktet måste då det framgå avsikten att sälja bilen av företaget. Kunden måste också fastställa avsikten att köpa bilen i kontraktet. Information om vad kunden måste betala och vilken bil kunden köper måste framgå i kontraktet.
Smart contracts innehåller samma information som konventionella kontrakt. Kontraktsinformationen definieras dock i programkoden. Det viktigaste med smart contracts är att koden är lag ”Code is law”.
Återförsäljaren i exemplet kan använda ett smart contract för att definiera vilken bil kunden ska få, om han betalar 100 000 kronor för den. Det är så här smart contracts fungerar: de innehåller regler för if/then krav. Om ett villkor i avtalet uppfylls, leder detta automatiskt av en påföljd.
Det innebär att specificerade aktiviteter för att förverkliga avtalets vilja utförs automatiskt när en nödvändig händelse inträffar. Samtidigt informeras alla parter om statusförändringar i realtid.
Blockchains decentraliserade arkitektur kräver att alla datorer i nätverket måste ha tillgång till den aktuella informationsstatusen för att den ska vara säker. Ju fler medlemmar som samarbetar i en blockchain, desto högre är säkerheten och manipuleringsskyddet. Det finns ingen central punkt att attackera.
Ett exempel på en blockchain-plattform som erbjuder smart contracts är Ethereum. Ethereum-plattformen bygger på Bitcoins Peer-to-Peer (P2P) transaktionssystem. Bitcoin nätverket fungerar med ett decentraliserat nätverk av datorer som alla är anslutna i realtid.
Alla datorer i Bitcoins nätverk har Bitcoin-blockkedjan lagrad helt eller delvis. När en Bitcoin-transaktion utförs skickas denna information automatiskt till och lagras av alla datorer i nätverket.
Ethereum gör samma sak med smart contracts, vilket gör dem särskilt säkra. Programmeringsspråket Solidity används för att skapa smart contracts på Ethereum-plattformen.
Fördelar med smart contracts
Smart contracts byggda på en blockchain har flera fördelar jämfört med traditionella kontrakt. Några av fördelarna är:
Tillförlitlighet: Om ett smart contract är korrekt programmerat, kommer kontraktet att genomföras enligt parternas villkor. Det förhindrar också förlust av dokument.
Säkerhet: Om smart contracts programmeras på en blockchain är de säkra mot hackare genom kryptografiska metoder. Ingen kan ändra de förhandlade avtalsvillkoren i efterhand.
Effektivitet: Programmering av ett smart contract tar mindre tid än motsvarande byråkratiska process. Det sparar både tid och pengar för avtalsparterna.
Oberoende: Smart contracts eliminerar behovet av en tredje part som advokater eller bankirer. Den oföränderliga blockkedjan används för att verifiera ett kontrakt. Därför gäller principen ”kod är lag”. Det är endast programkoden för ett avtal som avgör om avtalsvillkoren uppfylls korrekt eller inte.
Dessutom finns det möjlighet att införa en kryptovaluta i de digitala kontrakten. Det innebär att fullgörandet av kontraktet kan (men behöver inte) betalas direkt i en kryptovaluta.
Nackdelar med smart contracts
Begreppet digitala avtal är ännu inte fullt utvecklat. De kan också orsaka problem. Det är till exempel tänkbart att programkoden är felaktig och eftersom informationen i en blockkedja är oföränderlig kan sådana fel inte ändras i efterhand.
Ett fel i programkoden för ett mer komplex digitalt kontrakt i form av en DAO, gjorde det möjligt för hackare att komma åt Ether till ett värde av 50 miljoner dollar den 17 juni 2016. Det resulterade i att Ethereum genomförde en hard fork och det medförde två blockkedjor: Ethereum och Ethereum Classic.
Det är också tänkbart att bakdörrar programmeras in i koden. Tillförlitligheten och oföränderligheten hos ett digital kontrakt byggt på en blockkedja beror därför på programmeraren.
Det krävs alltså väldefinierad kod och alla punkter för ett avtal behandlas i koden. Om vi tar vårt tidigare exempel med inköpet av en bil. Om bilen är skadad vid leverans, kommer bilen returneras eller betalas?
En annan aspekt är de begränsade tillämpningsmöjligheterna. Alla i världen har inte tillgång till internet eller en enhet med internet anslutning.
Användningen av smart contracts innebär också att blockkedjeteknik måste användas i företag. Detta kräver att man driver sin egen infrastruktur eller att man använder en molnlösning. För detta behövs teknisk kunskap om blockchain inom företaget och dessutom extern rådgivning.
Handelspartnerna måste samtycka till användningen av smart contracts och måste också vara anslutna till infrastrukturen. Detta innebär mycket arbete och naturligtvis ganska höga investeringskostnader.