Ethereum: hur fungerar smarta kontrakt?

Smarta kontrakt är huvudfunktionen som har gjort Ethereum så framgångsrik. 

Vad är smarta kontrakt och vad är de till för

Bitcoin-protokollet ger inte möjlighet till skapa verkligt komplexa smarta kontrakt, eftersom det i princip endast utformades för att möjliggöra transaktioner. 

Däremot designades Ethereum, som föddes 6 år efter Bitcoin, från början för att i princip vara ett nätverk som kan hosta och utföra smarta kontrakt

2014 var Ethereum medgrundare Vitalik Buterin skrev uttryckligen i vitt papper att nätverket han designade var ett nästa generations plattform baserad på smarta kontrakt, och att alternativa applikationer till Bitcoin baserade på blockkedjeteknik också innefattade användningen av digitala tillgångar för att representera anpassade valutor och finansiella instrument, icke-fungibla tillgångar och mer komplexa applikationer. 

Framför allt definierades de senare, det vill säga smarta kontrakt, som tillämpningar som involverade direkt kontroll av digitala tillgångar genom en kod som implementerar godtyckliga regler, eller decentraliserade autonoma organisationer baserade på blockchain, s.k. Dao.  

Vitalik skrev: 

"Vad Ethereum avser att tillhandahålla är en blockkedja med ett inbyggt Turing-komplett programmeringsspråk som kan användas för att skapa "kontrakt" som kan användas för att koda godtyckliga tillståndsövergångsfunktioner, vilket gör det möjligt för användare att skapa något av systemen som beskrivs ovan – liksom många andra som vi ännu inte har föreställt oss – helt enkelt genom att skriva logik i några rader kod”.

Således är smarta kontrakt på Ethereum kodrader som det är möjligt att programmera den automatiska exekveringen av instruktioner av nätverket, när vissa villkor är uppfyllda, utan att behöva anförtro deras verkställighet till en mellanhand.

Faktum är att Buterin själv satte termen "kontrakt" inom citattecken, eftersom de snarare än verkliga kontrakt mellan parter är datorprogram som körs av en decentraliserad nätverk. 

Ur allmän synvinkel är deras funktion därför inte särskilt komplicerad. 

smart kontrakt
Smarta kontrakt verkställs när villkoren i dem har verifierats

Installera smarta kontrakt på Ethereum blockchain

Först och främst måste en eller flera utvecklare uppenbarligen skapa det smarta kontraktet genom att skriva lämpliga kodrader, och sedan måste de skicka den till Ethereum-nätverket. 

Rent tekniskt innebär att publicera det på Ethereum blockchain att få alla noder i nätverket att ta emot och exekvera det. När den väl har publicerats kommer alla instruktioner i den alltid att utföras av alla noder på exakt samma sätt. 

Därför inte bara dess publicering utan också utförandet av instruktioner är oåterkalleligt när det publiceras på blockchain. 

Det som verkligen betyder något är därför instruktionerna den innehåller – som kan vara de mest olika – och hur många som använder den. För att instruktionerna i ett smart kontrakt verkligen ska kunna utföras måste det finnas en eller flera transaktioner som åberopar dem

Det är också värt att komma ihåg att dessa instruktioner i allmänhet involverar användning av resurser, såsom data eller tokens, så att de faktiskt kan köras, alla nödvändiga villkor måste vara uppfyllda. 

Ibland kommer denna data utifrån, tack vare så kallade orakel, medan det ibland helt enkelt kommer från transaktioner på blockkedjan. 

Vanligtvis är transaktionen som utlöser utförandet av instruktionerna i ett smart kontrakt innebär betalning av en avgift i ETH, och i många fall för att faktiskt utlösa exekveringen innebär det också betalning eller sändning av tokens som är specifika för själva det smarta kontraktet, eller andra smarta kontrakt. 

Tekniskt sett är smarta kontrakt en typ av konto på Ethereum blockchain, "kontrollerad" av nätverket snarare än en central enhet. De kan lagra ETH eller tokens, och kan också skicka transaktioner på nätverket självständigt.

Hur man interagerar med koden och mer allmänt med dApps

Användare kan interagera med smarta kontrakt genom att skicka transaktioner som utlösa en av funktionerna som definieras i deras kod. 

Därför är funktionen för smarta kontrakt på Ethereum i allmänhet mycket enkel: skicka bara en transaktion av en viss typ till ett smart kontrakt, och detta kommer att utlösa exekveringen av noderna av alla instruktioner som finns i funktionen för det smarta kontraktet som åberopas av själva transaktionen. 

Uppenbarligen, beroende på vilka instruktioner som finns i den anropade funktionen, kan mycket olika konsekvenser genereras, varierande inte bara från smart kontrakt till smart kontrakt, utan också från funktion till funktion. 

Den enorma komplexiteten hos smarta kontrakt härrör därför just från vad de enskilda smarta kontrakten gör, och inte generellt från det faktum att Ethereum-nätverket stöder och utför dem. Dessutom är det absolut omöjligt att lista hur alla typer av smarta kontrakt på nätverket faktiskt fungerar. 


Källa: https://en.cryptonomist.ch/2022/06/11/ethereum-smart-contracts-3/