Wie kann jemand Bitcoins mit Milliarden oder Billionen Hashes pro Sekunde abbauen, wenn die Nonce nur 2^32 groß ist?

Gemäß einer anderen ähnlichen Frage zu Bitcoin Stack Exchange zeigt https://en.bitcoin.it/wiki/Block_hashing_algorithm , wie der Mining-Algorithmus für Bitcoin funktioniert. Das Problem ist, dass die Nonce nicht größer als 2 ^ 32 ist. Wenn jemand alle Werte durchgegangen ist, die die Nonce haben kann, scheint sich die Zeit zu ändern und die Suche nach einer richtigen Nonce beginnt von neuem, da sogar die Änderung der Sekunde um 1 ausreicht, um ein erneutes Testen der Nonce im Hash-Algorithmus zu rechtfertigen.

In Bezug auf den eigentlichen Mining-Algorithmus/die eigentliche Mining-Software, wie kann die Mining-Hardware vor diesem Hintergrund Milliarden oder Billionen von Hashes pro Sekunde liefern, wenn jede Sekunde nur ~4,3 Milliarden verschiedene Nonces liefert und eine neue „Sekunde Zeit“ zum Ändern benötigt die Zeit, um mit den Nonces neu zu beginnen? Es scheint, als würde unter den extremsten Umständen selbst eine Änderung der „Merkle-Wurzel“ aufgrund des Hinzufügens einer Transaktion zum Block nicht häufig genug auftreten, damit die leistungsstärksten ASICs immer Arbeit zu erledigen hätten.

Soweit es möglich ist, suche ich eine möglicherweise ausführliche, aber leicht verständliche Antwort.

Antworten (1)

Der Zeitstempel in Blöcken muss nicht auf die tatsächliche Zeit des aktuellen Hashs gesetzt werden. Während des Minings kann der Zeitstempel also verschoben werden, wenn die Nonce erschöpft ist, selbst wenn die tatsächliche Zeit nicht dieser Zeitstempel ist.

Es gibt auch andere Möglichkeiten, Blockheader zu ändern, die keine Änderung des Zeitstempels erfordern. Bergleute fügen dem Coinbase-Teil ihrer Coinbase-Transaktion häufig einen Wert hinzu, der als Extranonce bezeichnet wird. Bergleute werden dies erhöhen, um die Merkle-Wurzel jedes Mal zu ändern, wenn sie einen Satz von Nonces erschöpfen, um noch mehr Nonce-Möglichkeiten zu ermöglichen. Darüber hinaus können andere Dinge getan werden, wie das Permutieren der Transaktionsreihenfolge, das Auswählen neuer Transaktionen, das Ändern von Coinbase-Ausgabeskripten usw. All diese Möglichkeiten, den Block-Hash zu ändern, ermöglichen es Minern, Billionen von Hashes pro Sekunde zu erstellen.

Der vom Miner gewählte Zeitstempel wird Plausibilitätsprüfungen unterzogen: „größer als der mittlere Zeitstempel der vorherigen 11 Blöcke und kleiner als die netzwerkangepasste Zeit + 2 Stunden“ en.bitcoin.it/wiki/Block_timestamp