Was ist die Mining Difficulty
Die Bitcoin Mining Difficulty, auch Schwierigkeitsgrad genannt, ist ein Maß dafür, wie schwierig es ist, den Hash für einen neuen Block zu finden. In anderen Worten, es ist ein Maß dafür, wie viel Rechenleistung benötigt wird, um einen neuen Block zur Blockchain hinzuzufügen. Die Difficulty wird genutzt, um sicherzustellen, dass Blöcke in der Bitcoin Blockchain ungefähr alle 10 Minuten hinzugefügt werden.
Warum ist die Difficulty wichtig?
Die Difficulty ist ein wesentlicher Bestandteil des Bitcoin-Protokolls. Sie dient dazu, die Blockzeit - die Zeit, die benötigt wird, um einen neuen Block zur Blockchain hinzuzufügen - konstant zu halten. Ohne die Anpassung der Difficulty würde die Zeit, die benötigt wird, um neue Blöcke zu minen, stark variieren, je nachdem, wie viel Rechenleistung dem Netzwerk zur Verfügung steht.
Wie entsteht die Difficulty?
Die Difficulty wird etwa alle zwei Wochen oder genauer gesagt alle 2016 Blöcke angepasst. Wenn in den letzten 2016 Blöcken mehr Rechenleistung (also mehr Miner) ins Netzwerk gekommen ist und die Blöcke daher schneller als 10 Minuten generiert wurden, wird die Difficulty erhöht. Umgekehrt, wenn Miner das Netzwerk verlassen haben und die Blockzeit daher länger als 10 Minuten war, wird die Difficulty verringert.
Was ist ein Hash?
Ein Hash ist ein Wert, der durch eine Hashfunktion erzeugt wird. Diese Funktion nimmt Eingabedaten beliebiger Größe und erzeugt daraus einen Ausgabewert fester Größe, den Hashwert. Im Kontext von Bitcoin und anderen Kryptowährungen ist die verwendete Hashfunktion typischerweise die SHA-256-Funktion.
Was ist ein Ziel-Hash?
Ein Ziel-Hash ist ein bestimmter Hashwert, unter dem der Hash eines neuen Blocks in der Bitcoin-Blockchain liegen muss, um als gültig betrachtet zu werden. Das Ziel wird von der Difficulty bestimmt, die alle 2016 Blöcke (ungefähr alle zwei Wochen) angepasst wird.
Ziel-Hash und Mining
Wenn Miner einen neuen Block erstellen, ändern sie ein Stück Daten im Block, das als "Nonce" bezeichnet wird, und berechnen den Hash des gesamten Blocks. Wenn dieser Hash unter dem Ziel liegt, ist der Block gültig und kann zur Blockchain hinzugefügt werden. Wenn der Hash über dem Ziel liegt, ändern sie die Nonce und versuchen es erneut.
Vereinfachtes Beispiel
Stellt Euch den Hash als eine Zahl zwischen 0 und 100 vor und das Ziel ist 10. Die Miner müssen dann eine Nonce finden, die, wenn sie in den Block eingesetzt und der Block gehasht wird, einen Hashwert ergibt, der kleiner als 10 ist. Wenn sie eine Nonce finden, die einen Hash von 9 ergibt, ist der Block gültig. Wenn der Hash 11 ist, müssen sie eine andere Nonce finden und es erneut versuchen.
In der Realität sind sowohl die Hashwerte als auch das Ziel viel größer und werden als lange hexadezimale Zahlen dargestellt, aber das Konzept ist dasselbe.
Mathematisches Beispiel Difficulty Anpassung
Um eine realistischere Veranschaulichung zu geben, müssen wir bedenken, dass die Difficulty in der Bitcoin-Blockchain nicht als einfache Zahl, sondern als ein Ziel-Hash dargestellt wird. Ein Ziel-Hash ist ein Wert, und der Hash eines Blocks muss unter diesem Wert liegen, um von dem Netzwerk als gültig betrachtet zu werden. Je niedriger das Ziel, desto schwieriger ist es, einen gültigen Hash zu finden.
Beispiel
Angenommen, das aktuelle Ziel ist "0000000f00000000000000000000000000000000000000000000000000000000", und die durchschnittliche Blockzeit der letzten 2016 Blöcke betrug 8 Minuten statt der gewünschten 10 Minuten.
Das bedeutet, dass die Blöcke 20% schneller als beabsichtigt generiert werden. Daher muss die Difficulty um 20% erhöht werden.
Um die Difficulty um 20% zu erhöhen, muss das Ziel um 20% verringert werden, da ein niedrigeres Ziel eine höhere Difficulty bedeutet. Das neue Ziel ist daher 20% kleiner als das alte Ziel. Wenn das alte Ziel repräsentiert wird durch "f", würde das neue Ziel etwa "c" sein (denn "c" ist 20% kleiner als "f" in der hexadezimalen Darstellung).
Das neue Ziel wäre daher "0000000c00000000000000000000000000000000000000000000000000000000", was einer 20% höheren Difficulty entspricht.
Dies ist eine starke Vereinfachung und in der Praxis wäre die Berechnung noch komplexer. Sie hängt von vielen Faktoren ab, einschließlich der genauen Hashwerte der vorherigen Blöcke. Aber diese Illustration sollte Euch helfen, die Grundidee der Difficulty-Anpassung zu verstehen.
Wichtig ist zu verstehen dass die tatsächliche Berechnung der Difficulty in der Praxis komplizierter ist und auf kryptographischen Hashfunktionen basiert. Dieses Beispiel sollt Euch jedoch eine grundlegende Vorstellung davon geben, wie die Difficulty angepasst wird, um die Blockzeit konstant zu halten.
Zusammenfassung
Die Bitcoin Mining Difficulty spielt eine entscheidende Rolle im Bitcoin-Netzwerk. Sie sorgt dafür, dass die Blockzeit konstant bleibt, unabhängig davon, wie viele Miner aktiv sind. Dies trägt zur Stabilität und Sicherheit des Netzwerks bei und gewährleistet, dass neue Bitcoins in einem vorhersagbaren Tempo ausgegeben werden.
Ich hoffe Euch mit dem Artikel ein bisschen mehr Licht ins dunkle gebracht zu haben, falls es jedoch dunkler geworden ist, bitte stellt Eure Fragen in die Kommentare 🙂