Hur fungerar blockkedjan?
Hur fungerar blockkedjan?
HemArtiklar
Hur fungerar blockkedjan?

Hur fungerar blockkedjan?

Avancerad
Published Dec 9, 2018Updated May 21, 2022
5m

Vad är en blockkedja?

Kort sagt är en blockkedja en lista över dataposter som fungerar som en decentraliserad och digital orderbok. Uppgifterna är organiserade i block som är kronologiskt ordnade och säkrade med kryptografi
Den tidigaste modellen av en blockkedja skapades i början av 1990-talet när datavetaren Stuart Haber och fysikern W. Scott Stornetta använde kryptografiska tekniker i en kedja av block som ett sätt att säkra digitala dokument från datamanipulation. 
Habers och Stornettas arbete inspirerade verkligen många andra datavetares och kryptoentusiasters arbete – vilket så småningom ledde till skapandet av Bitcoin, som det första decentraliserade elektroniska kontantsystemet (eller helt enkelt den första kryptovalutan).

Även om blockkedjetekniken är äldre än kryptovalutorna var det först efter skapandet av Bitcoin 2008 som dess potential började upptäckas. Sedan dess har intresset för blockkedjeteknik växt gradvis och kryptovalutor uppmärksammas nu i större skala.

Blockkedjetekniken används mest för att registrera kryptovalutatransaktioner, men den passar många andra typer av digitala data och kan tillämpas på ett brett spektrum av användningsfall. Det äldsta, säkraste och största blockkedjenätverket är Bitcoin, som designades med en noggrann och balanserad kombination av kryptografi och spelteori.


Hur fungerar en blockkedja?

När det kommer till kryptovalutor består en blockkedja av en stabil kedja av block, och var och en lagrar en lista över tidigare bekräftade transaktioner.  Eftersom blockkedjenätverket underhålls av en myriad av datorer spridda över hela världen, fungerar det som en decentraliserad databas (eller orderbok). Detta innebär att varje deltagare (nod) har en kopia av blockkedjedata och de kommunicerar med varandra för att säkerställa att alla är på samma sida (eller block).
Därför sker blockkedjetransaktioner inom ett peer-to-peer i ett globalt nätverk, och det är detta som gör Bitcoin till en decentraliserad digital valuta som är gränslös och censurbeständig. Dessutom anses de flesta blockkedjesystem vara trustless, eftersom de inte kräver någon form av övervakare. Det finns ingen enskild myndighet som kontrollerar Bitcoin.
En central del av nästan varje blockkedja är utvinningen, som bygger på hash-algoritmer. Bitcoin använder SHA-256-algoritmen (Secure hash-algoritmen i 256 bitar). Den tar indata av valfri längd och genererar utdata som alltid har samma längd. Utdata som produceras kallas en "hash" och består i detta fall alltid av 64 tecken (256 bitar).

Samma indata resulterar därför i samma utdata, oavsett hur många gånger processen upprepas. Men om en liten ändring görs på indatan förändras utdatan helt. Därför är hashfunktioner deterministiska och i kryptovalutavärlden är de flesta av dem utformade som en enkelriktad hashfunktion.

Att vara en envägsfunktion innebär att det nästan är omöjligt att beräkna vad som var indata från utdata. Man kan bara gissa vad indata var, men oddsen att gissa rätt är extremt låga. Detta är en av anledningarna till att Bitcoins blockkedja är säker.

Nu när vi vet vad algoritmen gör ska vi visa hur en blockkedja fungerar med ett enkelt exempel på en transaktion.

Föreställ dig att vi har tillgång till Alices och Bobs bitcoin-balans. Låt oss säga att Alice är skyldig Bob 2 bitcoin.

För att Alice ska skicka Bob dessa 2 bitcoin skickar hon ett meddelande med transaktionen som hon vill göra till alla miners i nätverket.
I den transaktionen ger Alice dessa miners Bobs adress och mängden bitcoin hon vill skicka, tillsammans med en digital signatur och hennes offentliga nyckel. Signaturen är gjord med Alices privata nyckel och miners kan bekräfta att Alice faktiskt är ägaren till dessa coin.

När miners är säkra på att transaktionen är giltig kan de lägga den i ett block tillsammans med många andra transaktioner och försöka skapa blocket. Detta görs genom att sätta blocket genom SHA-256-algoritmen. Utdata måste börja med ett visst belopp på nollor för att anses giltigt. Mängden nollor som behövs beror på vad som kallas "svårigheten", som ändras beroende på hur mycket datorkraft det finns på nätverket.

För att producera en utdata-hash med önskad mängd nollor i början lägger miners till vad som kallas "nonce" i blocket innan de kör det genom algoritmen. Eftersom en liten ändring av indata helt ändrar utdata, prövar miners slumpmässiga noncer tills de hittar en giltig utdata-hash.

När blocket är skapat sänder miners det nyskapade blocket till alla andra miners. De kontrollerar sedan detta för att se till att blocket är giltigt, så att de kan lägga till det i sin kopia av blockkedjan och sen är transaktionen klar. Men i blocket måste miners också inkludera utdata-hashen från det föregående blocket, så att alla block binds samman – därav namnet blockkedja. Detta är en viktig del för hur förtroendet fungerar i systemet.

Varje miner har en egen kopia av blockkedjan på sin dator och litar på den blockkedja som har lagt ner mest beräkningsarbete, alltså den längsta blockkedjan. Om en miner ändrar en transaktion i ett tidigare block kommer utdata-hashen för blocket att ändras, vilket leder till att alla hash efter det också ändras på grund av att blocken länkas med hash. Miners skulle behöva göra om allt arbete för att få någon att acceptera att denne har den rätta blockkedjan. Så om en miner ville fuska skulle hen behöva mer än 50 % av nätverkets datorkraft, vilket är väldigt osannolikt. Nätverksattacker som denna kallas därför 51 %-attacker.
Modellen för att få datorer att fungera för att producera block kallas bevis på arbete (PoW) och det finns även andra modeller som bevis på insats (PoS) som inte kräver lika mycket datorkraft och är tänkta att kräva mindre el samtidigt som man kan skala till fler användare.