Analyser
15
jun

Den här webbplatsen innehåller affiliatelänkar. Bitcoincenter kan få ersättning om du besöker tjänster som vi rekommenderar via våra länkar. Läs mer om annonsering på informationssidan.

Smart kontrakt förklarad

Vad är ett smart kontrakt? Det är en av nyckeltermerna när det kommer till kryptovalutor och blockkedjor. Ett smart kontrakt är i grunden en bit programkod som lagras i en blockkedja. Den här artikeln förklarar smarta kontrakt. Vi går igenom nyckelfunktionerna i dessa distribuerade program.

Blockkedjor och kryptovalutor

För att förstå smarta kontrakt måste du ha en grundläggande förståelse för blockkedjor & kryptovalutor.

Kort sagt, en blockkedja är en distribuerad huvudbok. Den engelska förkortningen DLT säger allt: Distributed Ledger Technology. Blockkedjor är databaser med kryptovalutor och lagrar nätverkets transaktionsdata.

Det finns olika typer av blockkedjor. Bitcoin skapades 2009 och den har en blockkedja med vissa begränsningar. Bitcoins blockkedja måste underhållas med fysiska miningenheter (miners), som inte längre behövs i blockkedjor med hög kapacitet.

Det finns också olika typer av kryptovalutor. Det bästa sättet är att dela upp dem i tre huvudkategorier: plattformar, tokens och valutor.

blockchain smart contract

Plattformar kallas ekosystem och Dapp-operativsystem. Det mest kända exemplet på en plattform är Ethereum. Dess främsta rivaler är Cardano, Binance Smart Chain, och Polkadot. Dessa projekt är designade för att stödja Dapps och smarta kontrakt.

Tokens skapas inuti sådana plattformar. Därför har de inte sina egna blockkedjor. Tokens har hjälp- eller styrningsfunktioner i ett specifikt program. Populära tokens inkluderar Chainlink, Aave och Uniswap.

Valutakategorin inkluderar Bitcoin och dess rivaler (Litecoin, Bitcoin Cash, Digibyte). Var dock försiktig med att hävda att Bitcoin inte alls stöder smarta kontrakt. Vissa saker kan byggas även ovanpå Bitcoin, men den är verkligen inte designad för det.

Utvecklingen av Bitcoin går långsamt framåt. Kärnfunktionerna är nästan omöjliga att ändra. Därför designades många plattformar under 2014-2016 för att stödja smart-kontraktsprogrammering. Nya kommer ut på marknaden varje år.

I den här artikeln studerar vi smarta kontrakt genom Ethereum. Det är den mest kända plattformen och därför ett naturligt val.

Vad är ett smart kontrakt?

Termen smart kontrakt är faktiskt missvisande. Det är inte särskilt smart och det är inte nödvändigtvis ett kontrakt heller. Du ser ofta smarta kontrakt förklarade som ”programmerbara kontrakt lagrade på en blockkedja”. Detta är för generiskt och säger inte hela sanningen.

Ett smart kontrakt är en kod som är skriven med Solidity-språket. Detta är språket som utvecklarna använder för att skapa Ethereum-kompatibla smarta kontrakt. Andra plattformar stöder olika språk.

Detta är ett enkelt exempel på en kod skriven i Solidity (Källa).

solidity

Efter att programkoden skrivits måste den kompileras till bytecode. Detta är formatet Ethereum Virtual Machine (EVM) förstår.

EVM är ett program lagrat på varje nod i Ethereum-nätverket. Dess uppgift är att bearbeta den smarta-kontraktskoden och utföra de önskade transaktionerna.

När ett smart kontrakt får en kommandoförfrågan går Ethereum-miners in. Smarta kontrakt bearbetas varje gång ett nytt block skapas på blockkedjan. Detta innebär att varje miner har en kopia av varje smart kontrakt och att de kör det i sin EVM.

Det betyder också att varje miner alltid kommer att få samma resultat av att bearbeta ett smart kontrakt. Det är inte möjligt att det skulle finnas olika versioner av ett smart kontrakt (eller EVM) på blockkedjan.

Dapps vs smarta kontrakt

När vi pratar om smarta kontrakt nämns ofta ordet Dapp. Du har också sett det i den här artikeln. Vad är skillnaden mellan en Dapp och ett smart kontrakt?

Dapps är applikationer precis som ”traditionella appar” du använder på din mobil eller laptop. Tänk på Facebook, Twitter eller din webbläsare. Det här är populära applikationer vi använder dagligen.

Den stora skillnaden är att Dapps är distribuerade appar, vilket innebär att de är byggda på blockkedjan. En Dapp kan vara en stationär app, mobilapp eller webbläsarapp.

dapps

Smarta kontrakt är program som utför kommandon på blockkedjan. En Dapp är en applikation med ett GUI – grafiskt användargränssnitt. En Dapp gör det möjligt för slutanvändare att kommunicera med smarta kontrakt.

Dapp är applikationen du faktiskt ser och använder. Det är front-end. ”Motorrummet” består av smarta kontrakt, som exekveras av slutanvändaren genom att klicka på knappar.

Ordet protokoll används ofta i samma sammanhang. Meningen ”mest populära DeFi-protokoll” betyder detsamma som ”mest populära DeFi Dapps”.

Smart kontraktsrevision och buggar

Om du har skapat ett smart kontrakt, slänger du det inte bara på Ethereum MainNet. Det här är vad Ethereum TestNets är för. Du kan köra programmet utan risk att förlora någons pengar.

När ett smart kontrakt väl har publicerats på blockkedjan kan det inte ändras. Det finns inget ångra eller admin-kommando för att ändra det efteråt. Om det fanns skulle hela idén med ett oföränderligt kontrakt försvinna.

När vi pratar om populära Dapps har de miljarder dollar av användarmedel inlåsta. Därför är det helt avgörande att programkoden är felfri och buggfri. Vem som helst kan se programkoden för en blockkedje-Dapp och söka sårbarheter.

Tyvärr hittas buggar av illvilliga aktörer hela tiden.

Ibland gör programmerare misstag, ibland utnyttjar angriparen ett prisorakel. Det finns flera sätt som en Dapp kan attackeras på.

Dessa problem förhindras med kodrevisioner. Det finns företag som är specialiserade på kodinspektioner. Här är ett exempel på en kodrevision gjord av OpenZeppelin. De största Dapparna granskas vanligtvis av flera företag.

Ethereum-kontotyper

Låt oss dyka lite djupare. Hittills har du lärt dig att ett smart kontrakt helt enkelt är en programkod, som drivs av Ethereum-miners. De är bara lika smarta som utvecklarna som skapade de. De är inte nödvändigtvis ett kontrakt heller.

Smarta kontrakt möjliggörs av Ethereums kontomodell. Till exempel använder Bitcoin en UTXO-modell och har inga användarkonton. Det finns bara adresser och transaktioner i Bitcoin-nätverket.

Ethereum fungerar annorlunda. Det finns två typer av konton: ett EOA (externt ägt konto) och ett kontraktskonto.

En EOA är ett användarkontrollerat konto. Åtkomst ges via användarens privata nyckel, precis som i Bitcoin-nätverket. En EOA har ett Ether-saldo (ETH) och den kan skicka och ta emot transaktioner. Det finns ingen programkod kopplad till den och det kostar ingen ETH att skapa en.

private key

Ett kontraktskonto kallas också ett smart-kontraktskonto eftersom det i själva verket är ett smart kontrakt. Ett sådant konto har också en Ethereum-adress. Ett kontraktskonto kan också skicka och ta emot transaktioner, som kan vara Ether eller annan information.

Skillnaden är att det inte är gratis att skapa eller använda ett kontraktskonto. Varje rad med programkod som EVM:er måste bearbeta kräver nätverkets datorkraft. Därför måste programutvecklare betala en avgift. Detta kallas gas.

Ju mer komplexa program (smarta kontrakt) du bygger, desto mer gas krävs. Det är vettigt, eller hur? Det begränsar också spam och skadlig användning av nätverket.

När vi pratar om Ethereum-plattformen betalas gas i Ether (ETH). Det finns några plattformar som har skapat en annan token för detta ändamål, även kallad gas. NEO har till exempel sin egna NEO-token och även en separat gastoken, som båda kan köpas på kryptobörser.

Nyckelfunktioner i smarta kontrakt

Smarta kontrakt har flera nyckelfunktioner, som till största delen redan har täckts. Dessa är:

  • Smarta kontrakt är program med öppen källkod
  • Programkoden lagras på en blockkedja
  • Programkoden kan inte ändras när den väl har publicerats
  • Ett smart kontrakt utför alla kommandon automatiskt
  • Programkoden, logiken och resultaten av ett smart kontrakt är synliga för alla
  • Smarta kontrakt kan inte ändras eller stoppas från att köras

Ett smart kontrakt är ett distribuerat program lagrat på en blockkedja, som är öppet för alla, oföränderligt och säkert på samma gång.

Naturligtvis kan vem som helst bygga sin egen privata blockkedja, som kontrolleras av en centraliserad enhet. Om nätverket inte är riktigt distribuerat, förstör det hela idén med en blockkedja och smarta kontrakt. Varför skulle du då inte använda en traditionell databas och program istället?

Exempel på användning av smarta kontrakt

Låt oss gå igenom några av de verkliga exemplen på smarta kontrakt. Hur kan de användas och utföras?

I allmänhet finns det oändliga användningsfall för smarta kontrakt. Alla verkliga instrument kan tokeniseras till en blockkedja och hanteras med smarta kontrakt.

Fördelarna är uppenbara: besparingar i kostnader, hastighet och tillförlitlighet. Detta är naturligtvis bara om de smarta kontrakten lagras på en verkligt decentraliserad blockkedja.

Smarta kontrakt hjälper till att ta bort mellanhänderna från alla ekonomiska processer. Detta gör hela processen snabbare, enklare och mer pålitlig. Det finns inte längre utrymme för mänskliga fel och varje part kan alltid vara säker på att de önskade resultaten uppnås.

Investera

Det enklaste exemplet är trading eller handel. Du kan tänka dig att köpa ett hus, en bil, ett gäng aktier eller andra finansiella instrument. Det är här du ser termen tokenisation, vilket betyder att konvertera verkliga objekt till tokens på en blockkedja.

Tänk på din bil till exempel. Ägarhistoriken lagras för närvarande i en centraliserad databas. I framtiden kan det vara i blockkedjan. Du kan ha ägarbeviset i ett tokenformat.

Om du vill sälja din bil skulle det kunna ske genom ett smart kontrakt. När en önskad mängd Ether skulle skickas till ett visst smart kontrakt, skulle det ändra ägandet automatiskt och flytta biltoken till en ny person.

Förutsägelsemarknader

Förutsägelsemarknader använder redan smarta kontrakt. Traditionellt har dessa marknader dominerats av centraliserade enheter, som lämnar lite eller inget utrymme för klagomål vid fel.

Förutsägelsemarknader

Det finns redan onlineplattformar där vadslagning sker P2P på blockkedja. Detta kan vara framtidens väg. Alla förutsägelsemarknader skulle kunna vara blockkedjebaserade, och resultaten skulle alltid vara 100% korrekta och utbetalningar automatiserade.

Smarta kontrakt kan hjälpa till att ta bort mellanhanden i spelbranschen.

Försäkringar

Försäkringar används ofta som exempel på hur smarta kontrakt skulle kunna revolutionera den värld vi känner. Det finns fall hela tiden, där försäkringsbolaget vägrar att betala skadestånd till den person som tror att han var täckt.

Med smarta kontrakt skulle det inte behövas några argument eller advokater. Alla villkor i försäkringen skulle lagras på blockkedjan, där de är synliga för alla parter och oföränderliga. Om något händer, skulle det smarta kontraktet utlösas automatiskt.

DeFi & NFT

Sektorerna DeFi (Decentralized Finance) och NFT (Non-Fungible Token) slog äntligen igenom till mainstreamen 2020-2021. Denna finansiella revolution skulle inte vara möjlig utan smarta kontrakt.

Det mest populära DeFi-protokollet har över 20 miljarder dollar i likviditet. Hela DeFi-marknaden har över 150 miljarder dollar av användarmedel inlåsta. Den har vuxit 100x på mindre än två år.

DeFi-applikationer inkluderar decentraliserade börser (Uniswap, PancakeSwap), likviditetsprotokoll (Aave, Compound) och avkastningsaggregatorer (Yearn.Finance).

Dessa är alla 100 % automatiserade Dapps. Allt drivs med smarta kontrakt. Det betyder att det inte finns någon KYC och inga mellanhänder mellan slutanvändaren och protokollet. Investerare har också full kontroll över sina valutor tokens hela tiden.

ICOs

Kryptoboomen 2017 var så enorm tack vare ICO. De hjälpte till att öka Ethereum och andra tokens skapade på plattformen. En ICO är en crowdfunding som görs i kryptovärlden. Ett nytt projekt samlar in pengar genom att sälja en del av sina tokens till allmänheten.

Smarta kontrakt används i ICO:er hela tiden. Om du vill delta i en ICO skickar du helt enkelt Ether till en kontraktsadress. Ett smart kontrakt utlöses sedan och skickar tillbaka X antal nya tokens.

Chainlink oracles

Låt oss också gå igenom orakel, som är kritiska komponenter i blockkedje-världen.

Den stora begränsningen för ett smart kontrakt är att det inte kan komma åt någon extern information. Den kan bara fungera med den information som finns på blockkedjan. Du kan till exempel inte programmera ett smart kontrakt för att hämta väderinformation, fotbollsresultat eller aktiekurser.

Det är därför det finns orakel. De tillhandahåller dataflöden från omvärlden. Det finns dock ett problem. Om ett smart kontrakt använder ett orakel som tillhandahålls av en tredje part, är fördelarna med decentralisering borta.

Ett orakel kan innehålla falsk information eller så kan det gå offline. Detta skulle äventyra hela det smarta kontraktet.

Det är problemet Chainlink kommer att lösa.

chainlink api

Chainlink har skapat ett distribuerat nätverk av orakel med incitament att tillhandahålla korrekt information hela tiden. Detta är i huvudsak programvara byggd på Ethereum, men den kommer att expandera till andra plattformar också. För tillfället använder alla populära Dapps Chainlinks orakel.

Slutord

Den här artikeln förklarade smarta kontrakt och Dapps. Nu förstår du varför termen smart kontrakt är missvisande. Det finns inget ”smart” eller inget ”kontrakt” inbyggt i det.

Ett smart kontrakt är helt enkelt ett block med Solidity-kod, som kan programmeras för att utföra vissa uppgifter. Det är bara lika smart som utvecklaren som skapade det är. Det är inte nödvändigtvis ett kontrakt heller.

Det finns för närvarande flera plattformar skapade för att stödja smarta kontrakt och Dapps. Ethereum är den mest kända, men Binance Smart Chain, Zilliqa, TRON och många andra erbjuder liknande stöd.

Det är viktigt att förstå att fördelarna med smarta kontrakt kommer från en verkligt distribuerad miljö. Om en blockkedja styrs av en enkel enhet förlorar hela konceptet sin mening.

Orakelproblemet är också mycket viktigt att förstå. Smarta kontrakt behöver orakel för att komma åt omvärlden. Oracles måste också decentraliseras för att säkerställa att den smarta-kontraktsinformationen inte är skadad.

Inga kommentarer

Lämna ett svar

Din e-postadress kommer inte publiceras.