Warum erhöhen Miner die Nonce, um einen Block-Hash zu berechnen, anstatt nur einen zufälligen Block-Hash zu generieren? Mir scheint, dass beide Ansätze die gleiche Wahrscheinlichkeit haben, ein Ergebnis zu finden, das unter dem Zielwert liegt.
Wenn die Antwort lautet, dass es schneller ist, die Nonce zu erhöhen, anstatt nur einen zufälligen Hash zu generieren, um ein gültiges Ergebnis zu finden, könnten Sie dies auf mathematisch/statistische Weise zeigen?
Die in Bitcoin verwendete Hashing-Funktion ist deterministisch, d. h. das Hashing derselben Eingabe, dh des Blockheaders, führt immer zu derselben Ausgabe. Dies ist notwendig, damit auch andere prüfen können, ob ein Proof-of-Work gültig ist.
Das bedeutet, dass zur Berechnung eines neuen Hashs die Eingabe in die Hash-Funktion geändert werden muss. Die einfachste Möglichkeit, die Eingabe zu ändern, besteht darin, die Nonce zu ändern, da dies ein Freiformfeld ist, das jeden beliebigen Wert annehmen kann. Andere Möglichkeiten, die Eingabe zu ändern, sind beispielsweise das Austauschen von Transaktionen oder das Ändern der Coinbase-Transaktion, was erfordern würde, dass die Merkle-Root im Header neu berechnet wird. Der Zeitstempel ist ebenfalls eine beliebte Wahl, seine Werte sind jedoch durch eine Reihe akzeptabler Zeiten begrenzt.
Falls Sie sich fragen, warum wir nicht einfach die Ausgabe der vorherigen Hash-Funktion erneut hashen, um den nächsten Wert zu erhalten: Dies würde den Proof-of-Work-Mechanismus zerstören, der einen leicht zu verifizierenden Beweis erfordert, dass der Aussteller einige Arbeit geleistet hat . Der Schlüssel hier ist einfach: Wenn wir die Ergebnisse der vorherigen Lösung iterativ hashen, müsste die verifizierende Partei diese Arbeit auch durchführen, um zu überprüfen, ob der Aussteller die Arbeit durchgeführt hat. Beim Variieren der Eingabe geschieht dies nicht, da der Verifizierer bei gegebener Eingabe eine einzelne Hash-Operation ausführen und das Ergebnis überprüfen kann.
Glenn
Decker
Glenn
Decker
Glenn
David Schwarz
Glenn
David Schwarz
Glenn