Bitcoins tekniska beskrivning

Då man vill förstå Bitcoin-nätverkets funktion lönar det sig att börja med vad den gör. Bitcoin-nätverket är i praktiken en decentraliserad bokföringsdatabas. I denna databas finns det arkiverat bitcoin-adresser och mängden bitcoins som de innehåller. Utöver det är nätverkets uppgift att skapa bitcoins enligt noggrant bestämda regler.

Decentraliserad enighet

Det mest väsentliga begreppet i detta sammanhang är antagligen blockkedjan (blockchain). Det hänvisar till datastrukturen som innehåller alla transaktioner som någonsin skett i Bitcoin-nätverket (transaction). Blockkedjan formas av block som är kedjade ihop så att ett nytt blocks (block) rubriker (headers) alltid innehåller föregående blockets rubrikers tätning (hash). Därtill visar rubrikerna tiden, blockets svårighetsgrad, roten av merkle-trädet som innehåller bitcoin-transaktionerna, samt några andra värden som snarast är fyllnad.

Ett annat viktigt begrepp är brytning (mining). Avsikten med brytning är att göra skapandet av block en så dyr process att transaktionshistorians editering inte är lönande. Genom brytning skapas ett nytt block som man beräknar nya tätningar åt tills man hittar en tätning som motsvarar svårighetsgraden (difficulty). När en sådan hittas sprids den till hela nätverket som börjar beräkna fortsättning till det. Brytarnas uppgift är också att bestämma vilka transaktioner inkluderas i vilka block.

För att vara godtagbar måste blocket fylla svårighetsgradens krav och dess transaktioner måste vara helt eniga med nätverkets regler. Övervakandet av nätverkets regler är en gemensam uppgift för alla som driver en full nod av Bitcoin-nätverket. Reglerna upprätthålls så att alla som bryter mot dem blir utan uppmärksamhet. Endast transaktioner och block som följer reglerna kommer alltså till databasen.

Svårighetsgraden av Bitcoin-nätverkets brytning ställs med mål att få en genomsnittlig tid på 10 minuter mellan hittade block. Det här sker mellan 2016 block, alltså ungefär två veckor. I praktiken skapas svårighetsgraden genom att blockets tätning krävs vara mindre än ett visst gränsvärde.

På så sätt blir blocken en kedja, som i sin helhet innehåller Bitcoin-nätverkets fullständiga transaktionshistoria. Ifall kedjan har förgreningar, blir kedjan med största svårighetsgradens summa i kraft. Den här regeln möjliggör en decentraliserad enighet.

Transaktioner

Bitcoin-transaktioner består av inmatning (input) och utmatning (output). Inmatningar innehåller en referens till en tidigare transaktions utmatning samt ett script som kompletterar tidigare utmatningens script till en hel. Ifall ett sådant script efter utförande ger en etta som resultat är lösningen godtagbar (valid). Utmatningar består av scriptet samt Bitcoin-mängden.

En hel transaktion måste godkännas ifall alla hela scripter som skapas av inmatningarna ger en etta som resultat och transaktionens inmatningars summa är större eller lika stor som utmatningarnas summa. Ett undantag är skapartransaktionen, som i varje block är listans första transaktionen. Den här transaktionen kräver inga inmatningar utan har endast utmatningar.

Skapartransaktionen har två roller. Första är att skapa nya bitcoins enligt bestämda reglerna. Det andra är att skapa ett ekonomiskt incentiv som får människor att bryta. Båda lyckas behändigt genom att låta brytarna bestämma skapartransaktionernas scripter. Skapartransaktionens utmatningars summa får vara högst antalet nya tillåtna bitcoins plus blockets transaktioners belöningar (transaction fees).

Maximala antalet bitcoins bestäms av en geometrisk summas mönster och är lite under 21 miljoner stycken. Nya bitcoins skapas så att första 210 000 block skapar 50 BTC per block. Nästa 210 000 skapar 25. Efter det 12.5, 6.25, 3.125, osv. Skapandet av nya bitcoins kommer att sluta helt kring året 2140 när skapade mängden sjunker under systemets precision. 99.9% av bitcoins kommer att vara skapade kring året 2040.