Steigt die Difficulty linear oder exponentiell?

Moin Jungs und Mädels

Ich hab bei einem Spaziergang mich folgendes gefragt: Steigt die Divikulti linear oder exponentiell?

Lg Roadrunner

Die Difficulty wird laufend an die Hashrate bzw. an die durchschnittliche Blockdauer angepasst und steigt somit weder exponentiell noch linear. Sie steigt bzw. sinkt gemeinsam mit der Rechenleistung im Netzwerk um immer für eine durchschnittliche Blockdauer von 10 Minuten zu sorgen. Ansonsten wäre das Netzwerk zu schnell und die Chain würde zu schnell wachsen oder umgekehrt würde das Netzwerk zum Stillstand kommen.

Diese Anpassung erfolgt alle 2016 Blöcke, also ungefähr alle zwei Wochen. Du kannst auf mempool.space das aktuelle difficulty adjustment anschauen.

Langfristig könnte man sagen, da wir keine unendlichen Ressourcen auf unserem Planeten haben und somit auch die Hashrate nicht unendlich ansteigen kann wird die Difficulty logarithmisch (das ist sozusagen das Gegenteil von exponentiell) mit der Zeit immer weiter abflachen.

7 „Gefällt mir“

Ich glaube du hast mich missverstanden. Soweit ich weiß werden zur Divikulti eine Null erweitert. Ich Frage mich ob wir an einem Punkt kommen könnten das man den durchschnitt von 10 Minuten abweichen könnte.

Lg Roadrunner

Ich glaube ich verstehe was du meinst.

Wenn man die Difficulty immer weiter erhöht nimmt die Wahrscheinlichkeit einen gültigen Hash zu finden exponentiell ab. Irgendwann wird es also praktisch unmöglich einen Treffer zu landen, dazu wird es aber realistisch gesehen niemals kommen.

Die Wahrscheinlichkeit ein Proof of Work zu finden bei 32 bits Nullen kannst du dir ausrechnen mit:

\displaystyle\frac{1}{2^{32}} bzw. \displaystyle\frac{1}{2^{n}} mit n Nullbits

Die Wahrscheinlichkeit konvergiert gegen 0 für n \to \infty, nimmt also um ein vielfaches weiter ab wenn du eine Null mehr dazu nimmst.

Guter Thread dazu, da gehts es technisch dann aber ins Detail, da die Difficulty auch nicht einfach an den Nullen bemessen wird:

An diesen Punkt kommen wir andauernd. Als die Hashrate durch China vor ein paar Monaten eingebrochen ist sind wir kurzzeitig auch stark von den 10 Minuten abgewichen - bis es beim nächsten Adjustment dann korrigiert wurde.

Innerhalb des „Hashrate-Bereichs“ der realistisch ist für uns zu erreichen können wir die Difficulty fein genug justieren um immer auf 2016 Blöcke → 2 Wochen zu kommen. Selbst wenn nicht, würde uns der Markt wieder helfen, da es bei längerer Blockdauer unattraktiv ist zu minen, was wiederum zu einem Adjustment nach unten führen würde.

5 „Gefällt mir“

Die Difficulty bzw. das Target, was man mit einem Hash unterschreiten muss, hat noch viele Größenordnungen Luft.

Immer wenn die Hashrate um einen Faktor 16 steigt, kommt im (hexadezimalen) Target, also im Blockhash eine führende Null dazu. Die Speichergröße dieser Zahlen ändert sich dadurch aber erst einmal nicht.

Solange also nicht eine komplett neue Mining-Technologie entwickelt wird, die um viele Größenordnungen effizienter mined, also bei gleicher elektrischer Leistung um Größenordnungen mehr Hashes produziert, kann sich die Difficulty alle 2016 Blöcke so gut wie möglich anpassen.

Trotzdem kommt es natürlich regelmäßig vor, dass die Difficulty nicht optimal zur aktuellen Hashrate passt und die Blockabstände zu kurz und oder zu lang sind.

Hier übrigens noch ein kurzer Thread dazu:
Mining Difficulty

5 „Gefällt mir“

Du bist der Hammer! Danke für die Erklärung! Könnte man nicht bei jedem aus dem Forum ein Lightning QR Code im Profil hinterlassen? Weil dein Beitrag ist ja auch ein PoW und sowas muss meiner Meinung unterstütz werden :hugs:

1 „Gefällt mir“

Cool… das Blocktrainer Forum ist für mich ne ware Goldgrube :blush:

Ihr seid alle Spitze

4 „Gefällt mir“

Ohne die links gelesen zu haben, hab ich eine Frage. Könnte es möglich sein, wenn beim hash zum z.B. 30 Nullen stehen, das bei 31 Nullen die Schwierigkeit so stark steigt das ein Block dann nich 10 min, sondern das evtl auf eine bis 2 Stunden, oder gar Tage ansteigt?

So würde ich das verstehen. Dann haben wir evtl nicht die Möglichkeit wieder auf 30 Nullen zurück zu kommen?!?

1 „Gefällt mir“

Also der (hexadezimale) Block Hash hat 64 Zeichen, und wir haben aktuell 19 führende Nullen. Es ist also noch viel Luft für steigende Hashrates.

Die Difficulty wird wie schon gesagt alle 2016 Blöcke (ca. 2 Wochen) automatisch an die mittlere Hashrate dieser 2016 Blöcke angepasst. D.h. nach der Difficulty-Anpassung hast du immer ungefähr eine mittlere Blockzeit von 10 min, falls die Hashrate sich im Vergleich zum Mittelwert der vorherigen 2 Wochen nicht ändert.

Diese Anpassung kann also nach oben, oder auch nach unten stattfinden. Sollte die Hashrate z.B. wieder um einen Faktor 16 sinken, was sie hoffentlich nicht tut, hätten wir als Ziel für neue Blockhashes wieder nur 18 führende Nullen.

Es ist also nicht so, dass die Difficulty alle 2 Wochen deterministisch immer weiter erhöht wird. Stattdessen sorgt die Difficulty Anpassung dafür, dass wir immer bei ca. 10 min mittlerer Blockzeit bleiben. Egal ob die Hashrate steigt oder fällt.

Schau mal in meinen Link zur Mining Difficulty, da siehst du Beispiele für Block Hashes.

2 „Gefällt mir“

Jo das mit den 10 Minuten hab ich ja verstanden,

Du sagst sie wenn die hashrate um den Faktor 16 sinkt haben wir nur noch 18 Nullen.

Wir passen die blockzeit nur mit den Nullen an oder versteh ich das falsch? Was ist denn wenn der sprung zwischen den in der Zukunft liegenden Schwierigkeitsstufen so stark ist, das wir dafür soviel mehr hashrate brauchen das es dann nicht 10 Minuten sondern 10 Stunden für ein block sind.

Oder ist das nicht möglich?!

Ich hoffe du verstehst wie ich das meine.
Zu dem link. Mein Englisch ist leider nicht so das beste, daher ist es für mich sehr schwer solchen langen Texten sinnvoll zu folgen☺️

Nachtrag:
Aber deine Antwort aus dem anderen Post hat mir schon wieder was neues beigebracht😝

1 „Gefällt mir“

Ich habe mir vorhin schon gedacht, dass ich mich da präziser hätte ausdrücken sollen.:slight_smile:

Die Difficulty bzw. eigentlich das Ziel für den Blockhash kann sich nicht nur in den führenden Nullen verändern.

Stattdessen sind das ganze Zahlen, die üblicherweise hexadezimal dargestellt werden. Eine führende Null mehr, bei ansonsten gleichen nachfolgenden Ziffern, würde einer Verringerung des Zielwertes um einen Faktor 16 entsprechen.

Aber die Zahl kann sich natürlich noch wesentlich feiner als in Schritten von Faktor 16 anpassen. Wenn man eine Zahl in unserem üblichen Dezimalsystem darstellt, kann man sich das besser vorstellen (rein hypothetische Beispielwerte):

Sagen wir das aktuelle Target wäre:
000000308202975

Das bedeutet der Hash der nächsten Blöcke muss kleiner als ca. 308 Millionen sein, damit sie gültig sind.

Ein führende Null mehr ergäbe das Target:
000000030820297

D.h. der Hash der nächsten Blöcke muss nun sogar kleiner als ca. 30,8 Millionen sein. Die Difficulty hätte sich in diesem Beispiel verzehnfacht.

In der Realität passen sich aber nicht nur die führenden Nullen an, sondern die komplette Zahl. Zum Beispiel könnte das nächste Target auch sein:
000000311437245

Der Hash der nächsten Blöcke muss nun statt 308 Mio. nur noch kleiner als ca. 311 Millionen sein. Die Difficulty hätte sich in in diesem Beispiel um 1 % veringert.
Höhere Difficulty bedeutet der Zielwert (Target) wird kleiner, da es dann schwieriger ist mit einer nahezu zufälligen Zahl (Hash) darunter zu treffen.

Genauso wie in dem Beispiel verhält es sich in der Realität. Nur das die Zahlen normalerweise hexadezimal dargestellt werden, und mehr Stellen haben. Die Difficulty kann noch wesentlich feiner als im Prozentbereich justiert werden.

6 „Gefällt mir“

Cool danke für deine ausführliche Antwort. Das hat mich nochmal etwas weiter gebracht.

Aber mal ganz ehrlich, wer der Satoshi, der sich diesen heißen scheiß ausgedacht hat, muss echt nen krasser Kerl gewesen sein​:thinking::crazy_face:

2 „Gefällt mir“

Danke für deine antwort, das hat nochmal klick gemacht bei mir. :smiley:

Dass man so fein anpassen kann wusste ich noch nicht und das macht die ganze sache ja nochmal deutlich zukunftsfähiger!

1 „Gefällt mir“

Der Sprung, den du beschreibst, passiert nicht in der Schwierigkeitsstufe, sondern in der Hashrate. D.h. Die Stufe passt sich der vorhandenen Hashrate an und nicht umgekehrt. Natürlich kann es sein, daß viele Miner abschalten und dann eventuell eine zeitlang mehrere Stunden für einen Block gebraucht wird, doch spätestens in 2 Wochen wird das wieder auf ca. 10min. Angepasst.

Das mit den 2 Wochen stimmt nur so teilweise. Denn alle 2 Wochen wird nur angepasst wenn die Blöcke im 10 Minuten Bereich sind. Dauert aber jeder Block plötzlich 1 Stunde, dann verlängert sich die Zeit auf 12 Wochen. Da die Anpassung nach 2016 Blöcken angepasst wird. Sind diese nicht erreicht, dann keine Anpassung😉

1 „Gefällt mir“

:woozy_face:Natürlich hast du recht, doch eh alles spieltheorethusch, und so habe ich deine Frage auch aufgefasst.
An deiner Antwort sieht man, daß du das Prinzip bestens verstehst.
Dann ist ja alles gut. :lying_face::joy: