Überblick
Die Difficulty Adjustment ist der Regulierungsmechanismus, der Bitcoin von einer zentralen Instanz unabhängig macht. Während eine Zentralbank die Geldmenge nach Gutdünken steuert, folgt Bitcoins Emissionsrate einer mathematisch festgelegten Kurve. Die Difficulty Adjustment stellt sicher, dass diese Kurve eingehalten wird – egal ob ein einzelner Laptop oder Millionen spezialisierter Maschinen am Netzwerk teilnehmen.
Was ist die Difficulty?
Beim Mining suchen Miner nach einem Block-Hash, der unter einem bestimmten Zielwert (Target) liegt. Je niedriger dieser Zielwert, desto schwieriger ist es, einen gültigen Hash zu finden. Die Difficulty ist eine Zahl, die ausdrückt, wie viel schwieriger es im Vergleich zum einfachsten möglichen Ziel ist.
Technisch gesehen ist das Target eine 256-Bit-Zahl. Der SHA-256-Hash des Block Headers muss numerisch kleiner sein als dieses Target. Da SHA-256-Hashes pseudo-zufällig sind, ist die einzige Strategie, verschiedene Nonce-Werte durchzuprobieren, bis zufällig ein passender Hash gefunden wird. Je kleiner das Target, desto mehr Versuche sind im Durchschnitt nötig.
Alle 2016 Blöcke
Die Anpassung erfolgt exakt alle 2016 Blöcke. Bei der Zielzeit von 10 Minuten pro Block entspricht das 2016 × 10 Minuten = 20'160 Minuten = 14 Tage. Diese Periode wird als Difficulty Epoch bezeichnet.
Am Ende jeder Epoch vergleicht das Protokoll die tatsächlich verstrichene Zeit mit der erwarteten Zeit von zwei Wochen. Waren die 2016 Blöcke schneller als 14 Tage, steigt die Difficulty. Dauerte es länger, sinkt sie. Das Protokoll strebt immer den Gleichgewichtszustand von 10 Minuten pro Block an.
Berechnung
Die Formel ist elegant einfach:
Neues Target = Altes Target × (Tatsächliche Zeit / Erwartete Zeit)
Wenn die letzten 2016 Blöcke in 10 Tagen statt 14 Tagen gefunden wurden, wird das Target um den Faktor 10/14 ≈ 0,714 verkleinert – die Difficulty steigt um etwa 40%. Umgekehrt: Wenn die Blöcke 20 Tage brauchten, wird das Target um den Faktor 20/14 ≈ 1,429 vergrössert – die Difficulty sinkt um etwa 30%.
Als Sicherheitsmassnahme gibt es eine maximale Änderung um den Faktor 4 pro Anpassung. Das Target kann sich also höchstens vervierfachen oder auf ein Viertel reduziert werden. Diese Begrenzung verhindert extreme Schwankungen, falls beispielsweise ein grosser Teil der Miner plötzlich abschaltet.
Hinweis: Ein bekannter Off-by-One-Bug in der originalen Implementierung bewirkt, dass die Berechnung auf den Zeitstempeln der Blöcke 0 und 2015 basiert (statt 0 und 2016). Das führt dazu, dass die tatsächliche Messperiode nur 2015 Blöcke umfasst. Der Fehler ist seit Beginn im Code und kann aus Konsens-Gründen nicht mehr korrigiert werden.
Warum 10-Minuten-Blöcke?
Satoshi Nakamoto wählte 10 Minuten als Kompromiss zwischen mehreren Faktoren:
- Propagation: Ein neuer Block muss sich durch das gesamte Netzwerk verbreiten. Bei zu kurzen Blockzeiten wäre der Anteil an verwaisten Blöcken (Orphans) zu hoch, weil Miner an veralteten Blöcken weiterarbeiten.
- Bestätigungssicherheit: Kürzere Blockzeiten würden schnellere erste Bestätigungen ermöglichen, aber jede einzelne Bestätigung wäre weniger sicher. Sechs Bestätigungen bei 10-Minuten-Blöcken (1 Stunde) bieten eine hohe Sicherheit.
- Speicherplatz: Kürzere Blockzeiten würden die Blockchain schneller wachsen lassen und die Anforderungen an Full Nodes erhöhen.
Hashrate und Difficulty
Die Hashrate beschreibt die gesamte Rechenleistung, die dem Bitcoin-Netzwerk zur Verfügung steht, gemessen in Hashes pro Sekunde (H/s). Die Difficulty folgt der Hashrate mit einer Verzögerung von maximal einer Epoch (2 Wochen).
Steigt die Hashrate (z.B. weil neue Miner ans Netz gehen oder effizientere Hardware eingesetzt wird), werden Blöcke vorübergehend schneller gefunden. Bei der nächsten Anpassung steigt die Difficulty, um wieder auf den 10-Minuten-Durchschnitt zu kommen. Fällt die Hashrate (z.B. bei einem Mining-Verbot oder steigenden Energiepreisen), dauern Blöcke vorübergehend länger – die Difficulty sinkt bei der nächsten Anpassung.
Historische Entwicklung
Die Entwicklung der Difficulty spiegelt die Technologiegeschichte des Bitcoin-Minings wider:
- 2009–2010 (CPU-Mining): Difficulty bei 1. Normale Computer genügten.
- 2010–2012 (GPU-Mining): Grafikkarten übernahmen. Difficulty stieg auf mehrere Tausend.
- 2013 (FPGA und erste ASICs): Spezialisierte Hardware entstand. Difficulty explodierte auf Millionen.
- 2014–heute (ASIC-Ära): Application-Specific Integrated Circuits (ASICs) dominieren vollständig. Die Difficulty liegt heute im Bereich von Billionen.
Trotz dieser enormen Steigerung der Rechenleistung – von wenigen Hashes pro Sekunde auf über 800 Exahashes pro Sekunde – entstehen weiterhin alle 10 Minuten neue Blöcke. Das ist der Beweis, dass die Difficulty Adjustment wie vorgesehen funktioniert.
Bedeutung für Bitcoin
Die Difficulty Adjustment macht Bitcoin zu einem System mit vorhersagbarer Emissionsrate. Egal wie viel Rechenleistung investiert wird – es werden nicht mehr Bitcoin schneller erzeugt. Mehr Miner bedeuten mehr Sicherheit, nicht mehr Inflation. Das unterscheidet Bitcoin fundamental von Gold: Wenn der Goldpreis steigt, wird mehr geschürft und das Angebot steigt. Bei Bitcoin passt sich stattdessen die Schwierigkeit an.
Dieser selbstregulierende Mechanismus ist ein Grund, warum Bitcoins monetäre Politik als eine der strengsten bekannten gilt. Die Gesamtmenge von 21 Millionen Bitcoin wird planmässig erreicht – unabhängig von der technologischen Entwicklung.