Mining
Die kryptographische Aufgabe beim Mining besteht daraus mittels zweifacher SHA-256-Berechnung einen Hash-Wert zu finden, der unterhalb eines gewissen Grenzwerts liegt. Der Grenzwert ergibt sich aus dem aktuellen Schwierigkeitsgrad. Als Eingabedaten für die Berechnung des Hash-Werts dient dabei der Header des neu zu erzeugenden Blocks, der aus den folgenden Daten besteht:
Version des Datenformats
Hash-Wert des vorherigen Blocks
Oberstes Element eines Hash-Baums, der aus den im Block enthaltenen Transaktionen berechnet wird
Zeitstempel
Schwierigkeitsgrad
Nonce
Nach dem Block-Header folgen die eigentlichen Transaktionsdaten. Die erste Transaktion enthält die Überweisung der neu erzeugten Bitcoins. Da hier jeder Teilnehmer bestrebt ist seine eigene Adresse einzusetzen, ist auch das Wurzelelement des Hash-Baums im Header bei jedem Client anders, der am Mining beteiligt ist. Somit berechnet jeder Client eine leicht andere Aufgabe, wenn auch mit demselben Schwierigkeitsgrad. Die Nonce als beliebig gewählte Zahl dient dazu die Eingabedaten zu verändern, falls der aktuelle Blockkandidat nicht die gesuchte Lösung ergibt. Mit einer Größe von 32 Bit ist der Nonce-Suchraum beim Mining nach einigen Sekunden oder Minuten durchsucht. Um weitere Blockkandidaten zu prüfen, kann entweder der Zeitstempel verändert werden oder eine weitere Nonce, die sich in den Transaktionsdaten befindet und zu einer Änderung des Hash-Baums führt.
Rechenaufwand beim Mining
Die maximale Anzahl von Bitcoins ist auf 21 Millionen () festgelegt, wobei jede Bitcoin bis auf 10 − 8 BTC geteilt werden kann. Die Anzahl von Bitcoins entwickelt sich nach einer deterministischen, geometrischen Reihe, schätzungsweise 2033 wird die volle Anzahl an Bitcoins erreicht sein, danach werden keine weiteren mehr generiert werden. Dies ergibt eine Gesamtanzahl von diskreten Einheiten.
Vorhersage der Gesamtmenge an Bitcoins bis zum Jahr 2033
Die Erzeugungsrate neuer Bitcoins berechnet sich durch die Formel (6 × 50 Bitcoins/Stunde) × (eigene CPU-Geschwindigkeit / Summe der totalen CPU-Geschwindigkeit des Netzwerkes). Diese Rate wird durch die Software dezentral gesteuert, sie wird in dem Kriterium verwendet, welches definiert, ob eine Signatur einen gültigen neuen Block definiert. Das Mining per CPU auf einem handelsüblichen Computer würde bei dem Schwierigkeitsgrad im Juni 2011 im Durchschnitt mehrere Jahre bis zur Erzeugung eines Blocks dauern.[11] Mining lohnt sich daher nur auf Grafikprozessoren oder Hardwarebausteinen wie ASICs oder FPGAs. FPGAs verbinden hohe Hardwarekosten und niedrigen Stromverbrauch mit einer sehr hohen Rechenkapazität. Da mit der Zeit pro Einheit an Rechenleistung immer weniger Bitcoins erzeugt werden und der Stromkostenanteil daher steigt, ist mittelfristig eine verstärkte Nutzung von FPGAs wahrscheinlich.
Die Integer-Rechenkapazität des Netzwerks ****** am 11. Juni 2011 zufolge der Webseite bitcoinwatch.com rund 60 PetaFLOP[12], was mit einem großem Supercomputer etwa vergleichbar ist.