Warum wird die Schwierigkeit in den führenden Nullen eines Hashs gemessen?

Ich verstehe, dass das Generieren eines SHA-256-Hashes, der eine bestimmte Sequenz enthält, viel Raten und Prüfen erfordert. Je länger die angegebene Sequenz, desto seltener erscheint sie.

Und ich verstehe, dass das Einfügen zufälliger Nonces in einen Block, bis sein Hash zufällig mit einer bestimmten Anzahl von 0s beginnt, ein rechenintensiver und letztendlich zufälliger Prozess ist, der den Beweis der Arbeit demonstriert.

Was ich mich frage, ist: Warum Nullen und warum Führen ?

Könnte Mining genauso gut funktionieren, wenn die Herausforderung einen Hash erzeugen würde, der beispielsweise mit einer bestimmten Anzahl von Fs endet oder die Ziffern 314159265358979...bei Index 32 beginnen?

Oder gibt es einen technischen Grund, warum das Ziel der Miner darin besteht, einen Hash zu produzieren, der mit 0s beginnt, und nicht irgendein anderes Zeichen an irgendeiner anderen Stelle im Hash?

Antworten (2)

Die „führenden Nullen“ sind eine Vereinfachung. Die Schwierigkeit wird als Ziel codiert, das im Wesentlichen eine 256-Bit-Zahl ist. Da Block-Hashes von SHA-256 erzeugt werden, sind sie auch eine Zeichenfolge von 256 Bits. Wenn der als Zahl interpretierte Hash eines Blockkandidaten numerisch kleiner als das Ziel ist, ist der Blockkandidat ein gültiger Block.

Sinnvoll! Wenn ich also weiß, dass ein Ziel nführende Nullen hat, ist das eine Abkürzung dafür, dass das eigentliche spezifische Ziel irgendwo zwischen liegt [ 16^(63-n), 16^(64-n) ), ja?
Hätte ich gesagt [ 2^(255-n)-1, 2^(256-n)-1 ), aber ansonsten ja.

Führende Einsen oder nachgestellte Einsen funktionieren ebenso wie führende Nullen oder nachgestellte Nullen, es sieht aus wie eine zufällige Auswahl aus vier gleichwertigen Fällen.

Das Starten des Index vom Mittelpunkt aus könnte diesen Wert der maximalen Härte des Minings begrenzen, es sei denn, es werden einige ausgeklügelte Bitverschiebungen zur Überwindung des Limits verwendet, was für die zukünftige Unterstützung etwas umständlich sein kann. Unregelmäßige Muster, wie mathematische Konstanten, können einigen Entwicklern noch mehr Schmerzen bereiten und sind überhaupt nicht offensichtlich, wenn man sich die Bitfolge der Hash-Summe ansieht.