Welche Werte werden im SHA-256-Algorithmus gehasht und was wäre die nächste Iteration, bis ein möglicher Header gefunden wird?

Ich habe viel über Bergbau und Software im Zusammenhang mit Bergbau gelesen, aber ich kann mich nicht ganz mit der spezifischen Natur dessen befassen, was zusammen gehasht wird. Bisher habe ich das Gefühl, dass der aktuelle Block-Header und ein Nonce zusammengehasht werden, in der Hoffnung, einen Hash zu finden, der kleiner als das aktuelle Ziel ist, wenn ja, erhalten Sie 25 BTC. Hier bin ich laut dem Pseudocode https://bitcoin.stackexchange.com/a/3047 verwirrt . Der einzige Wert, der sich ändert, ist die Nonce, und das ist ein fester möglicher Hex/Integer-Wert, z. B. von 0 bis 0xFFFFFFFF.

Wie kommt es, dass die Schwierigkeit zunehmen kann, wenn es eine endliche Anzahl von Versuchen gibt, die Nonce zu ändern?

Habe ich Recht, den Block-Header mit der Nonce zu hashen?

Ich habe auf dieses https://en.bitcoin.it/wiki/Proof_of_work verwiesen und es macht absolut Sinn. Abgesehen von der Tatsache, dass ich immer noch das Gefühl habe, dass die Nonce der einzige Wert ist, der sich ändert.

Vielleicht bietet die 32-Bit-Nonce viel mehr Möglichkeiten, die ich ergründen kann, und das Hashing aller möglichen Nonce-Werte ist tatsächlich das, was getan wird.

Vielen Dank!

Antworten (1)

Wenn der Nonce-Bereich erschöpft ist, ändern Miner das extraNonce-Feld der Generierungstransaktion. Dadurch wird die Merkle-Wurzel im Header geändert und es kann eine neue Reihe von Nonces versucht werden.

Da die Merkle-Wurzel 256 Bit lang ist, kann dies unbegrenzt wiederholt werden.

Ändern die Transaktionen im Block nicht auch den Hash? Wenn Sie also eine weitere Transaktion hinzufügen, könnten Sie nicht einfach mit der Nonce bei 0 beginnen?
@Murch: Natürlich. Aber es ist im Allgemeinen seltener, eine neue Transaktion zu erhalten, als einen Nonce-Bereich zu erschöpfen.