Mining Difficulty

Hallo zusammen,

ich habe eine Frage zur Mining Difficulty: Wie wird diese berechnet und in welcher Einheit wird diese dann angegeben?

Grüße
Fabian

Es gibt einen Zielwert. Der Hash des Blocks gilt dann als gültig, wenn er kleiner oder gleich dieses Zielwerts (Diffcultiy Target) ist.
Je kleiner dieses Target ist, desto schwieriger ist es demnach einen Hash zu finden, der kleiner ist. Daraus folgt, dass die Difficutly höher ist, je kleiner das Target.

Wenn du dich für genaue Zusammenhänge des Minings interessierst, kannst du das hier nachlesen:
http://rosenbaum.se/book/lang/de_DE/build/grokking-bitcoin.html#ch07

Ab Kapitel 7.5 geht es um die Difficultyanpassung, aber du solltest auch 7.0-7.4 lesen, für das bessere Verständnis =)

1 „Gefällt mir“

Hallo Renna,

vielen Dank für deine Antwort. Ich verstehe was die Mining Difficulty aussagt. Auf dieseser Seite z.B. wird die Mining Difficulty mit aktuell 21.886 T angegeben. Heißt für mich, dass die Mining Difficulty gerade bei 21 Terrahashes pro Sekunde steht (Ist das korrekt?). Die Hashrate aber ist bei 150 Exahashes pro Sekunde was eine viel größere Zahl ist. Dann müsste man ja alle paar Sekunden einen neuen Block finden wenn die Hashrate so viel höher ist wie die Mining Difficulty. Oder habe ich einen Denkfehler?

https://www.blockchain.com/charts/difficulty

Grüße
Fabian

In dem von @renna verlinkten Buch steht das z.B. im Kapitel 7.3.3. Deshalb seine Empfehlung, für das Verständnis auch die vorherigen Abschnitte zu lesen.

Die Difficulty hat keine Einheit, da sie den Faktor angibt, um den die aktuellen Blöcke schwieriger zu finden sind als der allererste Block. Dieser Genesis Block hatte dementsprechend die Difficulty 1.

Wenn du heute in dem von dir verlinkten Diagramm eine Difficulty von „22t“ siehst (= 22 Tera = 2,2e+13), dann bedeutet das, dass die aktuelle Wahrscheinlichkeit mit einem Hash einen gültigen Block zu finden um den Faktor 2,2e+13 kleiner ist als damals beim ersten Block.

Die Difficulty exakt in ein Target umzurechnen ist gar nicht so trivial, da die entsprechende 256 Bit Zahl in unterschiedlichen Formaten angegeben werden kann, und es zwischen den Angaben kleine Rundungsunterschiede gibt.

Je nachdem, welche Formatierung du verwendest, entspricht Difficulty 1 einem der beiden folgenden Targets, als Obergrenze für den Blockhash:

  • 0x00000000FFFF0000000000000000000000000000000000000000000000000000
  • 0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

(die beiden Werte unterscheiden sich nur um weniger als 0,01 %)

Der aktuelle Bitcoin Block hat z.B. folgenden Hash:

  • 0x00000000000000000003a225e68c276c12d65709d3b3d5c15abccd9f6d6a4bb3

bei einer Difficulty = 21865558044610.

Diese Difficulty entspricht dem Faktor vom Genesis-Target zum jetzigen Target. In der Binärdarstellung würdest du also erwarten, dass das Target, also die Hashobergrenze, ungefähr log2(Difficulty) = ca. 44 führende Nullen mehr hat als der Genesisblock. In hexadezimaler Darstellung entspricht das 11 führenden Nullen mehr.

Wenn du den Hash des aktuellen Blocks mit dem Genesis-Target vergleichst, siehst du, dass es tatsächlich 11 führende Nullen mehr sind.

Beim Genesis-Block war die Wahrscheinlichkeit mit einem Hash einen Block zu finden
ca. 1/4,3e+09 (= 1 / 16^8, entsprechend den 8 führenden hexadezimalen Nullen). Mit der aktuellen Difficulty beträgt diese Wahrscheinlichkeit ca. 1/4,3e+09 / 21865558044610 = 1e-23 pro Hash.

Die aktuelle Hashrate beträgt nach deiner verlinkten Seite ca. 166m TH/s = 1,66e+20 H/s. Das entspricht damit einer Erfolgswahrscheinlichkeit von 1,66e+20 H/s * 1e-23 1/H = 0,00166 pro Sekunde.

Der Erwartungswert der Zeit bis zum nächsten Block ist also ca. 1/0,00166 s = 602 s = ca. 10 min.

Das passt übrigens nur zufällig gerade so genau und kommt auch von meinen ganzen Rundungen.

4 „Gefällt mir“

Danke sehr, genau danach habe ich echt lang gesucht.

Ich studiere alles gerade penibel und suchte etwas länger nach der Einheit von der Difficulty (T).
Jetzt weis ich, das es keine Einheit ist, sondern ein Faktor.

Grüße Retrocoiner

1 „Gefällt mir“