Vad Àr smarta kontrakt?
Hem
Artiklar
Vad Àr smarta kontrakt?

Vad Àr smarta kontrakt?

Avancerad
Publicerad Sep 16, 2019Uppdaterad Jun 9, 2023
9m

Introduktion

Nick Szabo beskrev smarta kontrakt redan pÄ 1990-talet. DÄ definierade han ett smart kontrakt som ett verktyg som formaliserar och sÀkrar datornÀtverk genom att kombinera protokoll med anvÀndargrÀnssnitt.

Szabo diskuterade den potentiella anvĂ€ndningen av smarta kontrakt inom olika omrĂ„den som involverar kontrakt och avtal – sĂ„som kreditsystem, betalningshantering och hantering av innehĂ„llsrĂ€ttigheter.

Inom kryptovalutornas vÀrld kan vi definiera ett smart kontrakt som en applikation eller ett program som körs pÄ en blockkedja. Vanligtvis fungerar det som ett digitalt avtal som upprÀtthÄlls av en specifik uppsÀttning regler. Dessa regler Àr fördefinierade av datorkod, som replikeras och verkstÀlls av alla nÀtverksnoder.

Blockkedjans smarta kontrakt möjliggör skapandet av trustless-protokoll. Det innebÀr att tvÄ parter kan göra Ätaganden via blockkedjan utan att behöva kÀnna till eller lita pÄ varandra. De kan vara sÀkra pÄ att om villkoren inte Àr uppfyllda sÄ kommer kontraktet inte att verkstÀllas. Utöver detta kan anvÀndningen av smarta kontrakt ta bort behovet av mellanhÀnder, vilket minskar driftskostnaderna avsevÀrt.

Även om Bitcoin-protokollet stöder smarta kontrakt sedan Ă„r tillbaka, bidrog skaparen och medgrundaren av Ethereum, Vitalik Buterin, till att de blivit populĂ€ra. Varje blockkedja kan presentera olika metoder för att implementera smarta kontrakt. 

Den hÀr artikeln fokuserar pÄ de smarta kontrakt som körs pÄ Ethereum Virtual Machine (EVM), som Àr en viktig del av Ethereums blockkedja.


Hur fungerar de?

Enkelt uttryckt fungerar ett smart kontrakt som ett deterministiskt datorprogram. Det utför en viss uppgift nĂ€r och om vissa villkor Ă€r uppfyllda. DĂ€rför följer ett smart kontraktssystem ofta "om 
 dĂ„ 
 "-uttalanden. Men trots den populĂ€ra terminologin Ă€r smarta kontrakt inte juridiska kontrakt och inte heller smarta. De Ă€r bara en bit kod som körs pĂ„ ett distribuerat system (blockkedjan).

PÄ Ethereum-nÀtverket ansvarar smarta kontrakt för att utföra och hantera blockkedje-operationerna som sker nÀr anvÀndarna (adresser) interagerar med varandra. Varje adress som inte Àr ett smart kontrakt kallas ett externt Àgt konto (externally owned account/EOA). DÀrför styrs smarta kontrakt av datorkod och EOA:er kontrolleras av anvÀndare.

I grund och botten Àr Ethereums smarta kontrakt gjorda av en kontraktskod och tvÄ offentliga nycklar. Den första offentliga nyckeln Àr den som tillhandahÄlls av skaparen av kontraktet. Den andra nyckeln representerar sjÀlva kontraktet och fungerar som en digital identifierare som Àr unik för varje smart kontrakt.

Utplaceringen av alla smarta kontrakt görs genom en blockkedje-transaktion och de kan endast aktiveras nÀr de anropas av en EOA (eller av andra smarta kontrakt). Den första triggern orsakas dock alltid av en EOA (anvÀndare).


Nyckelfunktioner

Ett smart kontrakt pÄ Ethereum har ofta följande egenskaper:

Distribuerad. Smarta kontrakt replikeras och distribueras i alla noder pÄ Ethereum-nÀtverket. Detta Àr en av de stora skillnaderna frÄn andra lösningar som Àr baserade pÄ centraliserade servrar.

Deterministisk. Smarta kontrakt utför bara de ÄtgÀrder som de var designade för, förutsatt att kraven Àr uppfyllda. Dessutom kommer resultaten alltid att vara detsamma, oavsett vem som utför dem.

Autonom. Smarta kontrakt kan automatisera alla typer av uppgifter och fungerar som ett sjÀlvutförande program. Men om ett smart kontrakt inte triggas förblir det i de flesta fall "vilande" och utför inte nÄgon ÄtgÀrd.

OförÀnderligt. Smarta kontrakt kan inte Àndras efter implementeringen. De kan bara "tas bort" om en viss funktion har implementerats tidigare. DÀrför kan smarta kontrakt tillhandahÄlla manipuleringssÀker kod.

Anpassningsbar. Före implementeringen kan smarta kontrakt kodas pÄ mÄnga olika sÀtt. De kan dÀrför anvÀndas för att skapa mÄnga typer av decentraliserade applikationer (DApps). Detta Àr relaterat till det faktum att Ethereum Àr en Turingkomplett-blockkedja.

Trustless. TvÄ eller flera parter kan interagera via smarta kontrakt utan att behöva kÀnna till eller lita pÄ varandra. Dessutom sÀkerstÀller blockkedjetekniken att data Àr korrekt.

Transparent. Eftersom smarta kontrakt Àr baserade pÄ en offentlig blockkedja Àr deras kÀllkod inte bara oförÀnderlig utan Àven synlig för alla.


Kan jag Àndra eller ta bort ett smart kontrakt?

Det Ă€r omöjligt att lĂ€gga till nya funktioner i nĂ„got av Ethereums smarta kontrakt efter att det har implementerats. Men om dess skapare inkluderar en funktion som kallas SELFDESTRUCT i koden kan denne "ta bort" det smarta kontraktet i framtiden – och ersĂ€tta det med ett nytt. Om funktionen dĂ€remot inte Ă€r inkluderad i koden i förvĂ€g gĂ„r det inte att ta bort den.

De sÄ kallade uppgraderingsbara smarta kontrakten gör att utvecklarna har större flexibilitet över kontraktens oförÀnderlighet. Det finns mÄnga sÀtt att skapa uppgraderingsbara och smarta kontrakt med varierande grad av komplexitet.

LÄt oss med ett förenklat exempel förestÀlla oss att ett smart kontrakt Àr uppdelat i flera mindre kontrakt. Vissa av dem Àr designade för att vara oförÀnderliga, medan andra har en "ta bort"-funktion aktiverad. Detta innebÀr att en del av koden (smarta kontrakt) kan tas bort och ersÀttas, medan andra funktioner förblir intakta.


Fördelar och anvÀndningsomrÄden

Som programmerbar kod Àr smarta kontrakt mycket anpassningsbara och kan utformas pÄ mÄnga olika sÀtt och erbjuder mÄnga olika typer av tjÀnster och lösningar.

Som decentraliserade och sjÀlvutförande program kan smarta kontrakt ge ökad transparens och minskade driftskostnader. Beroende pÄ genomförandet kan de Àven öka effektiviteten och minska byrÄkratiska utgifter.

Smarta kontrakt Àr sÀrskilt anvÀndbara i situationer som involverar överföring eller utbyte av tillgÄngar mellan tvÄ eller flera parter.

Med andra ord kan smarta kontrakt utformas för en mÀngd olika anvÀndningsomrÄden. NÄgra exempel inkluderar skapandet av tokeniserade tillgÄngar, röstsystem, kryptoplÄnböcker, decentraliserade börser, spel och mobilapplikationer. De kan ocksÄ distribueras tillsammans med andra blockkedjelösningar som tar itu med omrÄdena sjukvÄrd, vÀlgörenhet, försörjningskedjor, styrning och decentraliserad finans (DeFi).


ERC-20

Token utfÀrdade pÄ Ethereum-blockkedjan följer en standard som kallas ERC-20. Standarden beskriver kÀrnfunktionerna för alla Ethereum-baserade token. DÀrför kallas dessa digitala tillgÄngar ofta som ERC-20-token och de representerar en stor del av de befintliga kryptovalutorna.
MÄnga blockkedje-företag och startups implementerade smarta kontrakt för att utfÀrda sina digitala token pÄ Ethereum-nÀtverket. Efter emissionen distribuerade majoriteten av dessa företag sina ERC-20-token genom ICO-evenemang (Initial Coin Offering). I de flesta fall möjliggjorde anvÀndningen av smarta kontrakt utbyte av tillgÄngar och distribution av token pÄ ett trustless och effektivt sÀtt.


BegrÀnsningar

Smarta kontrakt Àr gjorda av datorkod skriven av mÀnniskor. Detta medför mÄnga risker, eftersom koden Àr kan ha sÄrbarheter och buggar. Helst bör de skrivas och distribueras av erfarna programmerare, sÀrskilt nÀr det handlar om kÀnslig information eller stora summor pengar.

Förutom det hÀvdar vissa att centraliserade system kan tillhandahÄlla de flesta av de lösningar och funktioner som erbjuds av smarta kontrakt. Den största skillnaden Àr att smarta kontrakt körs pÄ ett distribuerat P2P-nÀtverk, istÀllet för pÄ en centraliserad server. Och eftersom de Àr baserade pÄ ett blockkedjesystem tenderar de att vara antingen oförÀnderliga eller mycket svÄra att Àndra.

Att vara oförÀnderlig kan vara bra i vissa situationer, men vÀldigt dÄligt i andra. NÀr till exempel en decentraliserad autonom organisation (DAO) kallad "The DAO" blev hackad 2016, stals miljontals ether (ETH) pÄ grund av brister i deras smarta kontraktskod.

Eftersom deras smarta kontrakt var oförÀnderligt kunde utvecklarna inte fixa koden. Detta ledde sÄ smÄningom till en hÄrd gaffel som födde en andra Ethereum-kedja. Enkelt uttryckt Àr det en kedja som "ÄterstÀllde" hackningen och returnerade tillgÄngarna till dess rÀttmÀtiga Àgare (detta Àr en del av den nuvarande Ethereum-blockkedjan). Den andra kedjan bestÀmde sig för att inte störa hackningen och sa att saker som hÀnder pÄ en blockkedja aldrig bör Àndras (denna kedja heter nu Ethereum Classic).

Viktigt att komma ihÄg Àr att problemet inte kom frÄn Ethereums blockkedja. IstÀllet orsakades det av en felaktig implementering av ett smart kontrakt.

En annan begrÀnsning av smarta kontrakt Àr relaterad till deras osÀkra juridiska status. Inte bara för att det Àr i en grÄzon i de flesta lÀnder, utan ocksÄ för att smarta kontrakt inte passar nuvarande rÀttsliga ramar.

Till exempel krĂ€ver mĂ„nga kontrakt att bĂ„da parter Ă€r korrekt identifierade och över 18 Ă„r gamla. Den pseudonymitet som blockkedjetekniken tillhandahĂ„ller, i kombination med bristen pĂ„ mellanhĂ€nder, kan hota dessa krav. Även om det finns potentiella lösningar pĂ„ detta Ă€r den rĂ€ttsliga verkstĂ€llbarheten av smarta kontrakt en verklig utmaning – sĂ€rskilt nĂ€r det kommer till grĂ€nslösa, distribuerade nĂ€tverk.


Kritik

Vissa blockkedje-entusiaster ser smarta kontrakt som en lösning som snart ersĂ€tter och automatiserar en stor del av vĂ„ra kommersiella och byrĂ„kratiska system. Även om detta Ă€r en möjlig verklighet, Ă€r det förmodligen lĂ„ngt ifrĂ„n att bli standard.

Smarta kontrakt Àr verkligen en intressant teknik. Men att vara distribuerad, deterministisk, transparent och nÄgot oförÀnderlig kan göra dem mindre tilltalande i vissa situationer.

I huvudsak bygger kritiken pÄ det faktum att smarta kontrakt inte Àr en lÀmplig lösning för mÄnga verkliga problem. Faktum Àr att vissa organisationer fÄr fler fördelar genom att anvÀnda konventionella serverbaserade alternativ. 

JÀmfört med smarta kontrakt Àr centraliserade servrar enklare och billigare att underhÄlla och tenderar att presentera en högre effektivitet nÀr det gÀller hastighet och kommunikation över olika nÀtverk (interoperabilitet).


Sammanfattningsvis

Det rĂ„der ingen tvekan om att smarta kontrakt har orsakat en stor inverkan pĂ„ kryptovalutornas vĂ€rld och att de verkligen har revolutionerat blockkedjevĂ€rlden. Även om slutanvĂ€ndarna kanske inte interagerar direkt med smarta kontrakt driver dessa sannolikt ett brett utbud av applikationer i framtiden, med allt frĂ„n finansiella tjĂ€nster till hantering av försörjningskedjan.

Tillsammans har smarta kontrakt och blockkedjor potentialen att Àndra nÀstan alla delar av vÄrt samhÀlle. Tiden kommer att utvisa om dessa banbrytande teknologier lyckas övervinna alla hinder för storskalig anvÀndning.