Blockkedjan
Blockchain eller blockkedja på Svenska är den grundläggande tekniken som bland annat Bitcoin och många av kryptovalutorna bygger på. Enkelt förklarat skulle det gå att likställas med en databas,(En plats där information lagras), som inte bara är på en plats, utan på flera tusentals platser. Alltså distribuerat över hela världen i många fall. Men detta är ju även andra stora databaser som exempelvis Facebook också, så vad skiljer dem åt?
En Blockkedja är decentraliserad. Så ingen enskild person, stat, företag eller riksbank äger databasen. Utöver det kan inte heller någon ta bort det som tidigare hänt på blockkedjan, utan allting som lagts på blockkedjan är där så länge någon har en kopia kvar av databasen.
Blockkedjan bygger på så kallade block. Varje block innehåller ett antal saker, men enkelt sett så innehåller den en lista på transaktioner. Exempelvis kan ett block innehålla följande transaktioner:
Innan blocket räknas ut ser allas plånböcker ut på följande sätt:
Kungen: 15 KungMynt - Prinsen: 2 KungMynt - Drottningen: 5 KungMynt
Kungen skickar -> 10 KungMynt till Prinsen
Kungen skickar -> 2 KungMynt till Drottningen
Prinsen skickar -> 1 KungMynt till Drottningen
Sammanställer vi då alla blocken som redan finns i blockkedjan och gör de förändringar som skett i det senaste blocket har vi nu följande status på alla konton som existerar i blockkedjan: Kungen: 3 KungMynt - Prinsen: 11 KungMynt - Drottningen: 8 KungMynt
Så ett block innehåller alltså främst en lista med transaktioner. Men som du förstår går det då att hålla koll på exakt hur många KungMynt som varje person i kungariket har i sin plånbok om man går tillbaka i blockkedjan. Därför måste alltså en blockkedja alltid behållas i sin helhet, och med varje transaktion så växer kedjan med ett nytt block och då också i storlek. Datorer som har hela blockkedjan på sina datorer kallas för noder. Hela blockkedjan upprätthålls tack vare att den kan distribueras vidare genom alla noder som redan har kedjan. Ett block kan variera i storlek beroende på vilket protokoll som körs. Exempelvis är Bitcoins block satt till 1 MB styck, detta begränsar därför mängden transaktioner som får plats i blocket.
Hur skapas ett block?
Här kommer ”miners” in bilden. Det går att lösa det här på flera olika sätt, men det vanligaste kallas för Proof-of-Work och innebär att man använder sig av miners för att skapa de nya blocken.
En miner (gruvarbetare på Svenska) är en dator som försöker lösa ett komplext problem, oftast med hjälp av sitt grafikkort eller processor. Problemet är enkelt förklarat att räkna ut en kontrollsiffra som genereras om man slår ihop kontrollsiffran från alla andra block som redan finns tillsammans med det nya blockets kontrollsiffra.
I fallet Bitcoin så är det flera tusentals datorer som tävlar om att vara den som hittar svaret på problemet först. För den som först kan räkna ut problemet får lägga till en transaktion i listan på blocket som säger att minern som löst problemet får ex. 12.5 mynt. Detta är också sättet som nya mynt tillkommer i ekosystemet. I bitcoins fall så finns det en begränsad mängd bitcoins som kan mineas fram, och mängden som minern får ge sig själv halveras också efter ett antal block. Vilket till slut leder till att det någonsin bara kommer finnas 21 miljoner bitcoins.
Vad är en Hash?
Det här problemet och den så kallade kontrollsiffran som miners tävlar om att ta fram kallas för Hash, vilket är väldigt centralt inom kryptografi. En hash skapas genom en hashfunktion. Anledningen till att kryptografi fungerar så bra för det här användningsområdet är på grund av att en hash går att verifiera. Det går alltså enkelt att se att en viss hash stämmer överens med ett visst värde. Men det är nästintill omöjligt att generera en hash som stämmer överens utan att veta nyckeln som användes för att få fram just den hashen. Gör du en förändring på minsta lilla bokstav eller siffra så kommer hashen se helt annorlunda ut.
Ett bra exempel på detta är hur lösenord sparas på internet. När du registrerar dig på Facebook och skriver in ditt lösenord så sparar aldrig Facebook texten som du skrivit in som lösenord. Utan innan dess så kör de ditt lösenord genom en hashfunktion och sparar bara svaret som hashfunktionen ger för den text du skrivit in. En hash för lösenordet apa123 skulle exempelvis kunna se ut på följande sätt:
baa8347HJ4h148gG085nflbncmwi135jsalkeirj3i4j
När du sedan ska logga in på Facebook så skriver du in ditt lösenord som vanligt i rutan. Men på Facebooks sida så körs hashfunktionen och ditt lösenord som du fyllt i genererar hashen ovan och den kollas då mot det som de sparat vilket är detsamma, och låter dig därefter logga in.
Fördelen med att spara lösenorden på det här sättet är att det inte går att hacka så enkelt. Skulle en hackare komma åt Facebooks databas med användare och lösenord så skulle de bara se en lista med användarnamn och hashar för deras lösenord. Att sedan räkna ut den faktiska texten som motsvarar det textlösenordet är en oerhört tidskrävande uppgift, och med längre lösenord nästan omöjligt om det är en komplex algoritm som använts. En annan sak att tänka på här är hur enkelt det då blir att komma åt lösenord som 12345678 eller password. Dessa lösenord har de redan räknat ut vilken hash som motsvarar och är bland de första som hackarna testar.
För att nu enklare kunna återgå till det vi skulle prata om i detta kapitel, så kan man sammanfattningsvis säga att hashar, långa bitar text med blandade bokstäver och siffror är det som upprätthåller säkerheten på internet idag. Den här sortens kryptering är det som gjort det möjligt att skapa en blockkedja från första början. Då vi enkelt har möjlighet att verifiera att ett nytt block stämmer överens med tidigare block i kedjan och att ingen gjort en felaktig transaktion. Alla noderna är med och verifierar att blocket som ska läggas till i blockkedjan följer protokollet. Eftersom hasharna skiljer sig så mycket vid minsta förändring så kan ingen manipulera en gammal transaktion som skett i kedjan.
Exempelvis om jag skulle ändra en transaktion så att jag tar emot alla mynt till min adress istället för dess riktiga avsändare. I ett sådant fall så skulle hashen förändras och inget av blocken i kedjan skulle få rätt kontrollsiffra. Detta skulle då betyda att noderna i nätverket hade slängt mitt nya block och inväntat ett riktigt block.
Det som garanterar att blockkedjan inte blir manipulerad och förändrad kräver att miners arbetar tillsammans på att lösa komplexa matematiska problem. Detta kostar energi och betyder alltså att någon gör en uppoffring för att ha en chans att få en monetär belöning. Det skapar också en lojalitet och poäng att inte vilja förstöra blockkedjan genom att använda sin datorkraft i skadliga syften. Blockkedjor har också en annan regel, eftersom det ibland kan ske konflikter i kedjan, och det är att den längsta kedjan är den riktiga. Alltså kan det förekomma flera olika kedjor under huven, men bara den längsta är den officiella. Med det sagt kommer vi in på 51% attacken.
51% attack
Skulle någon med mer än 51% av all datorkraft i nätverket vilja skada blockkedjan skulle de kunna styra vilka transaktioner som får komma med eller till och med räkna om alla mynten till sig själva. Som vi sa precis innan så är det den längsta kedjan som gäller. Så skulle någon ondskefull part ha majoriteten av all hashpower (Mängden hashar som kan räknas ut) skulle detta troligtvis bara vara temporärt. Då alla som varit med i systemet från början vill upprätthålla sin egna valuta så kommer de fortsätta på den vanliga kedjan och troligtvis lyckas att bygga förbi det större nätverket då de flesta miners vill upprätthålla värdet som finns idag.
Så att försöka utföra en 51% attack skulle inte vara till någon större fördel då valutan med största sannolikhet hade blivit värdelös.
Den här typen av konflikt är också en av anledningarna till att man oftast väntar tills det passerat ett par block på kedjan innan man är helt säker på att en transaktion faktiskt är utförd. Ifall att någon skulle utföra den här typen av attack och ta med din transaktion så skulle den kunna ändras vid ett senare tillfälle om en annan version av kedjan blir längre. Att tillägga också är att vid upplösningen av en sån här konflikt så skulle alltså blocken som 51% nätverket räknat ut försvinna om den "riktiga" kedjan blev längre, och därmed har de slösat all sin datorkraft på ingenting.
I bitcoins fall är det här alltså extremt osannolikt att någonsin hända i större skala, och med decentraliserad mining, det vill säga att inte bara ett nätverk sitter på majoriteten av all hashpower, så är risken ofantligt mycket mindre.
Valutorna använder ju samma blockkedje-teknologi, kan jag skicka Bitcoin till din Litecoin adress då?
En annan viktig aspekt är att du inte kan skicka valutor mellan olika blockkedjor, för att göra det klarare kan du tänka på det som att du inte kan skicka ett meddelande från Facebook Messenger till en person som använder iMessage eller WhatsApp, blockkedjorna är inte sammankopplade utan helt separata "databaser".
Slutord
I den här delen har vi skrapat lite på ytan av blockkedjetekniken och mycket är simplifierat, så det finns väldigt många fler detaljer kring det mesta som skrivits om i artikeln. Detaljerna kan du lära dig mer om genom att fortsätta läsa på kryptokungen.se!
Att tillägga är att detta enbart beskriver en blockkedja som används för att hålla en valuta. I andra blockkedjor som exempelvis Ethereum så innehåller inte blockkedjan bara transaktioner där mynt flyttas mellan konton, utan transaktionerna kan innehålla hela program, alltså decentraliserade appar. Den blockkedjan går att likna mer med Apples Appstore, men till skillnad från Appstore så kör alla noder (Datorer som har blockkedjan på sina datorer) din kod, istället för servrar. Sammanfattningsvis blir Ethereums blockkedja mer som en världsdator. Mer om detta senare i nybörjarguiden.
Nu har du bättre koll på blockkedjan och hur den funkar än 99% av Sveriges befolkning. Men det är rätt tråkigt att vara den enda i ens omgivning som har koll på krypto, så se till att sprida guiden till vänner, kollegor och familj så att de också kan hänga med i denna finansiella revolution. 🚀
I nästa del i Kryptokungens nybörjarguide kommer du få lära dig hur du köper dina första kryptovalutor. Hoppas du känner dig redo!