0

What are the list of all the variables whose values that the miner can cycle or modify to get a valid hash for this block (with very high probability) ? The only one I am aware of is:

  1. Nonce - 4 Bytes.

But since Nonce is just 4 bytes it is simply not enough for generating many potential hash candidates that pass the difficuly condition of SHA256 (256 bits).

What are the other variables that can be tweaked for ensuring the existence of a passing hash candidate (with very high probability)?

P.S. We are assuming that all the hashes are calculated immediately so timestamp for each candidate is same. Thus, timestamp wont be able to help as far as I understand.

I am struggling with this for a while and can't find much detailed answer for this (other than nonce).

1
1

Off the top of my head ...

Timestamp: The Miner can vary the timestamp. It only has to be accurate within about 2 hours. It doesn't have to be greater than the timestamp of the previous block.

Coinbase output: The miner can vary the coinbase output. Perhaps selecting a different receiving address or varying the type of script.

Transactions: The miner can make an arbitrary select of transactions from their mempool or create their own new arbitrary valid transactions to include. If inventing their own transactions they can vary the fee from zero to maximum and can vary the transaction type from legacy to latest. They can also vary the input amounts from near zero to whole UTXO. The transactions must be valid but that still allows a vast range of variations, assuming the miner owns some bitcoin to start with.

Transaction order: The miner can vary the order of transactions (other than for transactions that spend outputs of prior transactions in same block).

ExtraNonce: As well as the Nonce field, I believe there is also extranonce which I think was a repurposed part of some other field.

1
  • Thank you. I get the generic idea but I am not clear on the specifics or structure of some things: such as Extranonce, the coinbase script part. Can you please point to a resource where its discussed in details and is more specific (for implementation level details)?
    – J.Doe
    Aug 21 at 10:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.