En av de mest missförstådda delarna av Bitcoin är säkerhetsmodellen. Vad gör miners egentligen och hur relaterar detta till säkerheten i nätverket? De allra enklaste artiklarna i ämnet brukar skriva om hur det går åt stora mängder datorkraft för att skapa nya bitcoin men inte närmare förklara varför. Det kan få det att låta som att det är något fundamentalt med skapandet av bitcoin som kräver tungt arbete, lite som att det när man ska framställa ett mynt krävs stora tunga maskiner som smälter och formar metallen. Men de första bitcoin som skapades för ca 10 år sedan krävde bara någon enstaka dator med en helt vanlig processor och Bitcoin fungerade väl bra redan då? Eller gjorde det verkligen det? Vi återkommer till det senare i artikeln.
När journalister kortfattat försöker förklara mining kan det också bli något i stil med att "datorer i nätverket löser komplicerade matematiska problem”. Det blir då också lätt att dra slutsatsen att om vi bara kan komma på smartare och effektivare sätt att lösa de här matematiska problemen så kommer det att bli mycket billigare att driva Bitcoinnätverket. Det stämmer tyvärr inte.
Ett lotteri
Så låt oss börja med de här "komplicerade matematiska problemen". Faktum är att de inte är komplicerade alls. Miners utför samma enkla beräkningar gång på gång, med små modifieringar, för att försöka få ett visst resultat. Det kan ungefär jämföras med att man slår en stor mängd tärningar samtidigt och där den som först lyckas slå bara ettor får äran att skapa ett block och tilldelas nyskapade bitcoin. Det är alltså ett lotteri snarare än ett lösande av komplicerade matematiska problem. Det kostar energi att slå tärningar så ju mer datorkraft du har desto fler tärningsslag hinner du med och desto större chans att du blir vinnaren.
Mining är alltså ett lotteri där vinnaren får skapa nästa block vilket innebär en belöning i form av nya bitcoin (plus transaktionsavgifter) samt makten att bestämma exakt vilka transaktioner som tas med. Säkerheten i systemet består i att det är dyrt att slå många tärningsslag. Den som har mycket pengar kan slå väldigt många tärningsslag men om en enskild person skulle kunna slå en majoritet av tärningsslagen skulle denne få skapa alla block och därmed också kunna bestämma vilka transaktioner som tas med och alltså godtyckligt kunna censurera vissa transaktioner etc.
Svårighetsgraden (antalet tärningar du ska kasta i varje slag) anpassas hela tiden så att en vinnare utses i snitt var tionde minut, vilket gör att skapandet av nya bitcoin sker i förutbestämd och kontrollerad takt. Ju fler personer som är med och slår tärning desto svårare görs problemet och desto mindre chans att dina tärningsslag är just de som blir vinnare. Det här ett nyckelkoncept som är viktigt att förstå. Om man lyckas slå sina tärningar snabbare och effektivare så reagerar systemet med att göra det svårare, alltså utöka mängden tärningar som ska kastas i varje slag.
Hur mycket resurser används?
Hur mycket resurser ska man lägga på att kasta tärning? Alla miners har en grundläggande ekvation att ta hänsyn till. Kostar det över tid mer att kasta tärning än vad man tjänar in de gånger man vinner så är det inte värt det. Miners kommer alltså i snitt över tid att lägga ungefär lika mycket pengar på att producera tärningsslag som nätverket delar ut i form av nya bitcoin och transaktionsavgifter. Om bitcoinkursen går upp (gentemot t.ex. USD) så kommer miners alltså att lägga mer USD på sin verksamhet, eftersom vinsten som ligger i potten är större.
Den totala mängden pengar som kommer att spenderas på miningverksamhet är relaterad till tre saker:
- Bitcoins marknadsvärde (i praktiken växelkursen gentemot traditionella valutor)
- Mängden nya bitcoin som skapas i varje block (minskar var 4:e år)
- Mängden transaktionsavgifter i blocken
Effektiviteten hos hårdvara etc. spelar alltså överhuvudtaget inte någon roll här. Som vi nämnde är också säkerheten, alltså systemets motståndskraft mot attacker, direkt relaterad hur mycket pengar som läggs på mining. Det innebär att svaret på frågan vi ställde i början av artikeln om huruvida Bitcoin funkade fint redan från början när det startades 2009 är “Nja”. Det fungerade rent tekniskt men det var inte speciellt säkert. Det skulle faktiskt ha räckt med att någon hade ett lite större antal helt vanliga datorer för att kunna sabotera nätverket, censurera transaktioner etc.
Det här betyder också att alla alternativa kryptovalutor som poppat upp under åren är betydligt mindre motståndskraftiga än vad Bitcoin är och i de flesta fall faktiskt mycket lätta att ta över. Det här beror alltså på att punkt 1 ovan, marknadsvärdet, är väldigt mycket lägre hos dessa valutor.
Finns det ett bättre sätt?
Varför använder vi då ett lotteri med mängder av “tärningsslag” som kräver energi att utföra? Skulle vi inte istället bara kunna låta folk köpa lottsedlar och spara en väldig massa energi? Anledningen till detta handlar om att Bitcoin ska vara ett decentraliserat nätverk. Om dollar eller euros användes för att betala för dessa lottsedlar, vem skulle då ta emot betalningen? Det krävs i så fall en central part, vilket förstör hela idén med Bitcoin.
Analogin med tärningar haltar kanske lite nu men den tekniska lösningen som valts innebär att det är enkelt för en dator att kontrollera att man faktiskt "slagit bara ettor". Att man har slagit bara ettor blir ett bevis på att en stor mängd arbete måste lagts ned och det är detta som kallas proof of work. Varje deltagare i nätverket kan enkelt verifiera detta proof of work i varje block i blockkedjan och det blir därför omöjligt att fejka fram block.
Det är värt att notera att man skulle kunna tänka sig en idé där man istället betalar för lottsedlar med systemet egen valuta, bitcoin, vilket är något som faktiskt skulle vara möjligt för deltagare i nätverket att verifiera utan en central part. Den typen av idéer där man låser in eller spenderar systemets egna valuta istället för att utföra arbete brukar kallas “proof of stake” eller i vissa fall “proof of burn”. Dessa tekniker lider dock av problem med möjliga attacker som ingen fullt ut lyckats lösa och Bitcoins proof of work är därför den bästa idén som kläckts hittills där nätverket faktiskt kan vara decentraliserat och robust.