Warum wirkt sich die Schwierigkeit auf den Nonce-Bereich des Block-Headers aus?

Abschnitt 4.3.4, Punkt 48 des gelben Papiers besagt, dass has nonce, n, lte 2^256/ sein muss current difficulty. Unter der Annahme, dass < 2 ^ 256 ist, wird der Effekt davon current difficultykleiner, wodurch es einfacher wird, einen Block zu validieren, da weniger mögliche Nonce-Werte ausprobiert werden können. Dies scheint dem Zweck der Erhöhung der current difficulty. Übersehe ich etwas?

Antworten (2)

In dieser Gleichung bezieht sich die Phantasie nnicht auf Nonce. Hnbezieht sich auf Nonce.

Hier ist die vollständige, zusammengesetzte Gleichung, die es verdeutlichen könnte:

Gleichung


Weitere Infos zum Schwierigkeitsgrad:

Bei einer annähernd gleichmäßigen Verteilung im Bereich [0,2^64) ist die zu erwartende Zeit bis zur Lösungsfindung proportional zur Schwierigkeit, Hd.

oder offener gesagt:

Dieser Mechanismus erzwingt eine Homöostase in Bezug auf die Zeit zwischen den Blöcken; ein kürzerer Zeitraum zwischen den letzten beiden Blöcken führt zu einer Erhöhung des Schwierigkeitsgrades und somit zu zusätzlichem Rechenaufwand, wodurch sich der wahrscheinlich nächste Zeitraum verlängert. Umgekehrt, wenn der Zeitraum zu groß ist, werden die Schwierigkeit und die erwartete Zeit bis zum nächsten Block reduziert.

So. Kürzere Zeit zwischen den Blöcken = mehr Schwierigkeit.


Das PoW wird zu einem Array ausgewertet, in dem ...

  • Erstes Element: Hn with the strikethru thingy= Mix-Hash, um zu beweisen, dass ein korrekter DAG ( d) verwendet wurde. Hn with the strikethru thingyist der Header des Blocks, Hjedoch ohne die Nonce- und Mix-Hash-Komponenten.

  • Zweites Element: Hn(die Nonce), eine Pseudozufallszahl, die kryptografisch abhängig ist von H(new blocks header) und d(DAG)

  • Drittes Element: d= aktueller DAG.

In leichter verständlicher Sprache hat Vitalik in diesem Blogbeitrag viel über das Mining behandelt .

Die Idee ist, dass der Miner wiederholt eine Pseudozufallsfunktion auf einem Block und einer Nonce berechnet und jedes Mal eine andere Nonce versucht, bis schließlich eine Nonce ein Ergebnis liefert, das mit einer großen Anzahl von Nullen beginnt.

Also ... ich weiß, dass dies Ihre Frage nicht genau beantwortet, aber ich denke, die Grundlage Ihrer ursprünglichen Frage war eine falsche Annahme, sodass die Frage wirklich nicht beantwortet werden kann. (Glaube ich. Ich begreife gerade das meiste davon.)

Um die Antwort zu vereinfachen, verwende ich Dezimalzahlen anstelle von Hexadezimalzahlen. Und statt 2^256 im Zähler verwende ich 10^10 (= 10.000.000.000).

(A) Wenn die Schwierigkeit auf 1.000.000 eingestellt ist, besteht das "Ziel" darin, eine Zahl unter 10^10 / 1.000.000 zu finden. Das ist 10.000.000.000 / 1.000.000 = 10.000 . Wir müssen ein Hash-Funktionsergebnis im Bereich zwischen 0 und 10.000.000.000 finden, das unter 10.000 fällt.

(B) Lassen Sie uns nun die Schwierigkeit hundertmal auf 100.000.000 erhöhen. Das "Ziel" ist es, eine Zahl unter 10^10 / 100.000.000 zu finden. Das ist 10.000.000.000 / 100.000.000 = 100 . Wir müssen nun ein Hash-Funktionsergebnis im Bereich zwischen 0 und 10.000.000.000 finden, das unter 100 fällt.

Die Nonce ist eine Zufallszahl, die mit anderen Blockdateninformationen gehasht wird, um ein Hash-Funktionsergebnis im Bereich zwischen 0 und 10.000.000.000 zu erhalten.

In (A) oben beträgt die Wahrscheinlichkeit, ein Hash-Funktionsergebnis (aus der Nonce-Zufallszahl + Blockdaten) unterhalb des Ziels zu finden, 10.000 / 10.000.000.000, was eins zu einer Million ist.

In (B) oben mit der höheren Schwierigkeit beträgt die Wahrscheinlichkeit, ein Hash-Funktionsergebnis (aus der Nonce-Zufallszahl + Blockdaten) unter dem Ziel zu erhalten, 100 / 10.000.000.000, was eins zu 100.000.000 oder eins zu hundert Millionen ist.

Eine höhere Schwierigkeit führt zu einer geringeren Wahrscheinlichkeit, ein Hash-Funktionsergebnis (aus der Nonce-Zufallszahl + Blockdaten) zu finden, das unter dem Ziel liegt.