Bitcoin är en implementation av kryptovaluta, en digital valuta, skapad 2009 av Satoshi Nakamoto, vars huvudsyfte är att möjliggöra betalningar över Internet direkt mellan användare utan någon inblandning från tredje part. Till skillnad från många andra valutor förlitar sig inte Bitcoin på någon central utfärdare i form av exempelvis en centralbank, vilket skyddar mot t.ex. politisk påverkan. För att upprätthålla säkerhet och sekretess förlitar sig Bitcoin på kryptografi och använder sig av en distribuerad databas utspridd över de noder som utgör P2P (Peer-to-Peer)-nätverket för att journalföra transaktioner. Detta syftar även till att exempelvis säkerställa att valutan endast kan spenderas av dess ägare samt oåterkalleligen försvinner från nämnda ägares digitala “plånbok” och därmed bara kan spenderas en gång.

Bitcoins design tillåter mer eller mindre anonymt ägande och överförande av värden genom P2P-nätverket. Varje användares bitcoin sparas i en plånboksfil tillsammans med ett godtyckligt antal bitcoinadresser. Plånboksfilen kan sparas på användarens dator eller hos en tredje part som erbjuder en sådan tjänst. I båda fallen kan bitcoin skickas över Internet till vem som helst med en bitcoinadress. Bitcoins P2P-topologi och avsaknad av central administration gör det omöjligt för exempelvis myndigheter att artificiellt manipulera värdet av bitcoin eller framkalla inflation genom att producera fler av dem.

Tekniken bakom Bitcoin beskrevs först i Satoshi Nakamotos tekniska policydokument från 2009 och utgör en P2P-implementation baserad på två förslag på alternativa elektroniska valutor: Wei Dais förslag b-money och Nick Szabos förslag Bitgold.

Bitcoin använder sig av asymmetrisk kryptering för transaktioner av bitcoin mellan konton. Transaktionerna är publika och lagras i en distribuerad databas. För att förhindra dubbel spendering (d.v.s. förhindra att ett bitcoin spenderas mer än en gång per ägare) implementerar nätverket en distribuerad tidserver och använder sammanlänkade arbetsbevis, så kallade proof of work. Historiken över alla transaktioner måste lagras i databasen.

Alla som deltar i Bitcoin-nätverket har en plånboksfil som innehåller, utöver antalet bitcoin knutna till den plånboken, ett godtyckligt antal kryptografiska nyckelpar. De publika nycklarna utgör bitcoin-adresserna och agerar som sändare eller mottagare för alla transaktioner. Deras motsvarande privata nycklar auktoriserar betalningar från endast den användaren. Adresserna innehåller ingen information om dess ägare och är generellt sett anonyma. Adresserna är i läsbar form strängar av slumpnummer och -bokstäver med en längd på omkring 33 tecken av formen 1rYK1YzEGa59pI314159KUF2Za4jAYYTd. Bitcoin-användare kan ha flera adresser och generera nya obehindrat, då genererandet av nya adresser kräver förhållandevis lite beräkningar och inte kräver någon kontakt med resten av nätverket.

Plånboksfilen lagras direkt på användarens hårddisk eller hos en tredje part som erbjuder en sådan tjänst. Skulle användaren eller tjänsten råka radera filen försvinner de bitcoin och adresser som associerades med just den plånboken för gott. Därför uppmanas Bitcoin-användare att säkerhetskopiera plånboksfilen regelbundet.

Bitcoin innehåller dess nuvarande ägares publika nyckel (bitcoin-adress). När användare A överför en summa till användare B ger A upp sitt ägande genom att lägga till B:s publika nyckel (bitcoin-adress) och signera de bitcoin som ska överföras med sin egen privata nyckel. A sänder sedan dessa bitcoin i ett meddelande, transaktionen, till P2P-nätverket. Resten av noderna i nätverket validerar sedan de kryptografiska signaturerna och summan av transaktionen innan de accepterar den.

Data lagras permanent i Bitcoinnätverket i s.k. block. Dessa block formar en kedja och ett block innehåller de senast utförda transaktionerna samt det föregående blockets hash, en sorts checksumma. En transaktion går inte igenom förrän blocket den tillhör har blivit tillagt i kedjan.

De noder i nätverket som är beredda att bistå med beräkningskraft samlar alla obekräftade transaktioner de känner till i kandidatblock. Sedan försöker de skapa en kryptografisk hash för kandidat-blocket med vissa egenskaper. När en nod slutligen lyckas med det annonserar den det till resten av nätverket. De noder som tar emot det nya blocket validerar det sedan innan de lägger till det i kedjan. Blocket sägs nu vara löst.

Så småningom innehåller blockkedjan den kryptografiska ägandehistoriken över alla Bitcoin, från deras skapare till deras nuvarande ägare. Om en användare skulle försöka använda ett bitcoin som den användaren redan spenderat kommer nätverket således att neka transaktionen.

När en nod som valt att bidra med beräkningskraft till nätverket lyckats lösa ett block, det vill säga få ett kandidat-block tillagt i block-kedjan, erhåller den noden en belöning. Det här är det enda sättet att skapa pengar i Bitcoin-nätverket. Genererande av bitcoin kallas ofta mining (av engelskans “gold mining”). Användare kan bidra med beräkningskraft genom att antingen bocka för ett alternativ i den officiella mjukvaran eller genom att använda mjukvara från tredje part. I det senare fallet utförs beräkningarna ofta på användarens GPU för ökad effektivitet. Sannolikheten att en nod ska lyckas lösa ett block beror på beräkningskraften den bidrar med till nätverket relativt beräkningskraften hos alla noder i nätverket sammanlagt. Belöningen för att lösa ett block uppgår aldrig till mer än 50 bitcoin och mängden är programmerad att minska ner till noll med tiden. På så vis kommer aldrig mer än 21 miljoner bitcoin skapas. Det beräknas att 80% av alla bitcoin kommer vara skapade 2018. För att se till att inte mer än ett block löses ungefär var tionde minut justeras svårighetsgraden ungefär varannan vecka för att ligga i linje med nätverkets totala beräkningskraft.

Eftersom mer än en nod tävlar om att lösa ett specifikt block och svårighetsgraden ständigt ökar har det blivit populärt med kollektiv mining. På så vis kan även användare som inte förfogar över så mycket beräkningskraft få en jämnare och mer förutsägbar inströmning av belöningar.

Användare som vill göra en transaktion kan frivilligt välja att betala en transaktionsavgift. Transaktionsavgiften tillfaller den nod som lyckas lösa just det block som innehåller transaktionen. Detta gör att det blir mer attraktivt för noderna att försöka lösa block som innehåller transaktioner med avgift. Transaktioner där transaktionsavgift har betalats kommer följaktligen att prioriteras av noderna och processas därför oftast snabbare än övriga transaktioner.

När det inte längre går att generera bitcoin genom mining förväntas möjligheten att lösa block för transaktionsavgifternas skull vara anledning nog för användare att bidra med beräkningskraft till nätverket. På så vis kan systemet ändå hållas igång.