“Bitcoin: A Peer-to-Peer Electronic Cash System” - så lyder rubriken på det dokument som förklarar tanken, och tekniken, bakom den digitala kryptovalutan Bitcoin. Det är helt enkelt grunddokumentet till det vi idag kallar Bitcoin.
Författarens namn är Satoshi Nakamoto. Vem det faktiskt är, i den verkliga världen, är fortfarande okänt, även om flera personer pekats ut under årens gång. Personen i fråga kan idag vara en av världens rikaste människor, med tanke på Bitcoins värdeökning.
Men låt oss börja från början. I dokumentets inledning förklarar författaren problemet som Bitcoin ska lösa:
“En elektronisk valuta baserad på peer-to-peer [red. användare-till-användare] skulle tillåta att betalningar online skickas direkt från en användare till en annan, utan att gå igenom en finansiell institution. Digitala signaturer skulle vara en del av lösningen, men de största fördelarna går förlorade om det fortfarande krävs en betrodd tredje part för att undvika dubbel spendering.”
Det går alltså att skapa en elektronisk valuta baserad på digitala signaturer. Men för att förhindra att man köper något två gånger, för samma digitala mynt, så krävs det att någon utomstående för ett register över genomförda transaktioner. Detta så att pengarna inte kan spenderas av en person flera gånger.
Den tredje parten blir i praktiken en form av finansiell institution, som lagrar transaktioner och kontrollerar hela nätverket, vilket alltså var det man ville undvika. Bitcoin är dock lösningen på detta problem.
“Vi lägger fram en lösning på problemet med dubbel spendering genom att använda ett peer-to-peer-nätverk. Nätverket skulle tidsstämpla transaktionerna genom att hasha dem och lägga in dem i en löpande kedja av hashbaserat proof-of-work”
Den sista biten “en löpande kedja av hashbaserat proof-of-work” är i princip nyckeln till Bitcoin. Det är ganska komplicerat att förklara men vi ska utmana ödet och ge det ett försök. Håll i er!
Att hasha något
Vi kan börja med att förklara vad “hasha” är för något. Att hasha något betyder att man genom en matematisk funktion skapar ett digitalt “fingeravtryck” av någon typ av data, exempelvis ett namn på en person eller ett lösenord. Alla fingeravtryck i fråga är av samma längd medan det du skickar in i funktionen, och hashar, kan vara av olika storlekar.
Låt oss ta ett exempel. Nedanför kan ni se namnen på personerna på redaktionen på Ehandel.se och det värde man får ut om man “hashar” namnet.
namn | hashvärde (“digitalt fingeravtryck”) | |
julius | = | 30E6D8432CE54710F9C09F305E7B9829 |
johanna | = | 901F4DD1038B2A2C244CDAE621A902EF |
michell | = | 77274668B6FED85CD825E35475066338 |
Du kan själv testa att hasha något på denna länk.
Som ni kan se är namnen olika längder medan värdet som funktionen spottar ut är av exakt samma längd. Det är även ganska svårt att lista ut namnen om man bara får värdet till höger (hashvärdet). Detta är med meningen och det handlar om en så kallad enkelriktad funktion. Enkel att genomföra men svår att omvända.
Det du stoppar in i hashfunktionen kan vara i storleken av en hel bok så det är inte begränsat till korta texter. Resultatet blir fortfarande samma typ av siffersnutt eller fingeravtryck.
Hela texten i Alice i Underlandet | = | B9B530AA57DA92FD6DB439FFE96DD0B6 |
Hashfunktioner, som för tydlighetens skull alltså inte har med hashtags att göra, kan användas till mycket men en vanlig användning är att hasha lösenord. Då kan den som behöver spara ditt lösenord, exempelvis en e-handlare eller annan typ av tjänst, bara spara det hashade värdet. När du sedan ska logga in så hashas lösenordet som du skriver in och jämförs med det sparade fingeravtrycket (hashvärdet) av lösenordet. Är det samma värde så har du angett rätt lösenord.
På så sätt undviker man att de som gör intrång hos en sajt får med sig folks lösenord. I stället får de med sig en massa hashade värden som de ovan.
Att hasha är en central del av Bitcoin och transaktioner hashas hela tiden i nätverket. Runt fyra stycken transaktioner genomförs varje sekund i Bitcoin-nätverket. De läggs dock ihop i hundratals eller tusentals transaktioner som samlas i en klump.
Dessa “klumpar” kallas block och är helt enkelt en lista av transaktioner. Blocket hashas sedan med vilje på ett extremt komplicerat sätt. Det är detta som kallas proof-of-work. Det är ett bevis på att ett faktiskt arbete har genomförts. Tänk dig att datorn måste bevisa att den har fått svettas rejält för att skapa rätt hashvärde. Vi återkommer strax till detta.
Arbetsbördan anpassas även automatiskt till hur många som deltar i nätverket. Det är detta som gör att Bitcoin nu anklagas för att vara en miljöbov i media. Med tanke på Bitcoins ökade popularitet, och den ökade mängden användare och datorer som deltar, de senaste åren så krävs det nu en enormt stor arbetsbörda för att uppfylla detta proof-of-work. Vilket i sin tur leder till att Bitcoin-nätverket slukar elektricitet då datorerna försöker hasha blocken med transaktioner på “rätt sätt”.
Anledningen till att nätverket ökar arbetsbördan är för att antalet nya Bitcoins som genereras (skapas) ska hållas jämn över tid. Vi återkommer till detta, men först ska vi förklara vad proof-of-work faktiskt innebär.
Bevis på arbete?
Vad är då proof-of-work? Detta är ganska komplicerat men om vi återgår till hashvärdena vi visade ovan. Genom att ändra på värdet (“texten”) som vi skickar in i algoritmen så kan vi få ut olika hashvärden. Detta är inte så konstigt; Ett annat värde in - ett annat värde ut.
Genom att sätta upp ett krav på att hashvärdet, som skapas, ska börja med till exempel tio stycken nollor så ökar svårigheten dramatiskt. Kravet tvingar datorn att göra enormt många försök innan den lyckas generera ett värde som börjar med rätt antal nollor.
Datorerna får helt enkelt modifiera blocket, utan att påverka innehållet, så att det slutliga hashvärdet ska ha ett visst antal nollor i början. Ju fler nollor, desto svårare är problemet att lösa, och det är så arbetsbördan anpassas när fler ansluter till nätverket. Kravet på antalet nollor ökar.
Såhär skulle det kunna se ut, notera nollorna (vi har dock fuskat och inte gjort det riktiga jobbet):
namn | hashvärde | |
julius + ett nummer | = | 0000000000E54710F9C09F305E7B9829 |
johanna + ett nummer | = | 00000000008B2A2C244CDAE621A902EF |
michell + ett nummer | = | 0000000000FED85CD825E35475066338 |
Detta med nollor är dock en förenkling. Det går även att uttrycka som att hashvärdet ska understiga ett visst värde.
Det är i alla fall detta som Bitcoin kallar proof-of-work. Den som är med i Bitcoin-nätverket och först skapar ett hashvärde, av det aktuella blocket, med rätt antal nollor vinner och får ett antal Bitcoins som ersättning för sitt hårda arbete. Den vinnande lösningen är den som sparas i det som kallas blockkedjan.
En kedja av block
Blockkedjan är enkelt förklarat alla transaktioner i en lång lista av block (“korrekt hashade”) sedan Bitcoins begynnelse. Kedjan är det register som gör att behovet av en tredje part som kontrollerar transaktionen försvinner. Nätverket och kedjan tillåter inte att någon spenderar samma Bitcoin flera gånger, alltså dubbel spendering.
Det första blocket skapades den 3 januari 2009 och ska du vara med i Bitcoin-nätverket är det första du gör att ladda ner detta block som leder till nästa block och blocket efter det. Denna blockkedja är idag över 150 gigabyte stor och innehåller alla transaktioner som någonsin genomförts.
Det är denna teknik som många företag nu tittar på för att skapa andra applikationer. Många olika områden ses som potentiella kandidater för att dra nytta av ett delat blockkedje-register. Tekniken bakom Bitcoin är helt enkelt en fantastiskt smart uppfinning som skär bort behovet av en tredje part.
Att bryta Bitcoins
Du har förmodligen hört att man kan skapa Bitcoins ungefär som man gräver efter guld. Det många kanske dock har missat är att man skapar nya Bitcoins genom att verifiera (godkänna) transaktioner. Det sker som sagt att antal transaktioner hela tiden och dessa samlas i ett block som sedan ska hashas enligt ovanstående krav (rätt antal nollor).
Det datorn, eller användaren, gör i detta race om att vinna nästa block, genom att hasha det korrekt, är att ge sig själv ett antal Bitcoins. Varje nytt block inleds med att koppla ihop det med föregående block, för att fullfölja kedjan, men sedan är det dags att ge sig själv x antal Bitcoins. Från början var detta 50 stycken Bitcoins men det halveras över tid och ligger just nu på 12,5 Bitcoins. Resten av blocket fylls av de transaktioner som ligger och väntar på att bli godkända.
För att du faktiskt ska få de Bitcoins som du ger dig själv måste du dock hasha blocket korrekt, alltså visa prov på arbete, vilket är väldigt svårt numera då arbetsbördan anpassats efter den enorma mängd datorkraft som nu arbetar med problemet.
Det är alltså inte bara att ge sig själv en massa Bitcoins. Att först hitta ett korrekt hashat block är mycket datorintensivt och brytandet av Bitcoin sker numera på industriell skala där stora farmer av datorer jobbar med att vinna nästa block. Datorer är också missvisande då det inte längre är traditionella datorer som bryter Bitcoins utan snarare specialbyggda lösningar som endast är till för att hitta rätt hashvärde så snabbt som möjligt.
Du kan dock installera ett Bitcoin-program på din vanliga dator och ge dig på problemet. Chansen att lyckas vinna ett block är beroende av din datorkraft i jämförelse med hela nätverkets beräkningsförmåga. Med största sannolikhet kommer du alltså aldrig att få några Bitcoins. Det vill säga om du inte köper dem av en befintlig ägare. Tråkigt men sant.
Att använda Bitcoin
Antalet Bitcoins man får för ett “korrekt block” minskar samtidigt med tiden. Mer exakt så halveras antalet vid varje milstolpe på 210 000 block som lagts till i blockkedjan. De första 210 000 blocken, då man fick 50 Bitcoins per block, gav världen 10,5 miljoner Bitcoins. När 420 000 block hade godkänts och lagts till i kedjan fanns det ytterligare 5,25 miljoner, för ett totalt antal av 15,75 miljoner Bitcoins. I skrivande stund, januari 2018, ligger antalet på runt 17 miljoner skapade Bitcoins.
Denna halvering av antalet Bitcoins man får när man vinner ett block leder i slutändan till att det aldrig kommer att finnas fler än 21 miljoner Bitcoins. Precis som guld är en begränsad resurs så är Bitcoin också begränsad. Detta ger värde till den digitala valutan i kombination med att det numera också krävs elektricitet, som oftast kostar pengar, för att generera Bitcoins.
Bitcoin går upp och ner i värde, jämfört med andra valutor, men toppade nyligen ungefär 150 000 kronor för en Bitcoin. Likt andra valutor så har Bitcoin en valutakod och den är BTC.
Hur ska man då kunna handla något för en Bitcoin om ett digitalt mynt motsvarar ett så pass stort värde? Det är ganska enkelt, systemet har nämligen stöd för att skicka delar av en Bitcoin. Du kan alltså föra över till exempel 0,05 Bitcoin för att köpa något.
När du ska skicka en Bitcoin från en användare till en annan finns även möjligheten att inkludera en avgift i form av en liten andel Bitcoin. Anledningen till detta är helt enkelt att du ska få med din transaktion i de nästkommande blocken som läggs till i blockedjan, vilket alltså betyder att transaktionen har godkänts. Varje block har ett begränsat utrymme som alla transaktioner slåss om.
Den som bryter Bitcoin kan inkludera din transaktion i blocket och ge sig själv transaktionsavgiften, men de får den först när och bara ifall de lyckas vinna blocket. Det går att ange noll i avgift men risken är då att transaktionen väntar förgäves för att efter en tid kasseras.
Hamnar överföringen inte i blockkedjan har pengarna inte bytt hand. Blockkedjan är som sagt registret över alla transaktioner som någonsin ägt rum.
Framtiden
Bitcoin är en mycket spännande uppfinning. Upphovsmakaren har tänkt på alla aspekter som behövdes för att faktiskt skapa en decentraliserad digital valuta. Nätverket har idag miljontals användare och lever och frodas nio år efter att ursprungsblocket skapats.
Det ska tilläggas att grunden till tekniken bygger på flera tidigare uppfinningar som sammanfogats till det vi i dag kallar Bitcoin. Satoshi Nakamoto satte dock ihop det hela till en kryptografisk symfoni som skapat stora vågor i vårt digitala samhälle. Det finns idag massor med kryptovalutor som bygger på liknande teknik och som vi nämnde tidigare används blockkedjetekniken nu också till många andra saker än finansiella transaktioner.
Med detta sagt så är inte Bitcoin utan problem. Det finns svagheter i tekniken som den stora blockkedjan, höga avgifter och en relativt slö transaktionshastighet. Men planer finns redan för att bygga tjänster som tar itu med dessa problem, med nya smarta lösningar som också är baserade på blockkedjetekniken.
Vill ni läsa mer om detta, eller mer om Bitcoin, får ni gärna dela denna artikel eller uppmuntra oss i kommentarerna. Även om denna artikel är lång så täcker den inte på något vis Bitcoin i sin helhet. Men den ger förhoppningsvis lite klarhet i vad som händer bakom kulisserna.
LÄS ÄVEN:
Bakslag för Bitcoin - svenska näthandlare fortsatt positiva
Ny svensk e-handel tar emot Bitcoin i kassan
En till e-handlare tar emot kryptovalutan Bitcoin