In a very general sense, most people who know about cryptocurrency mining understand that for every block in a proof-of-work blockchain there is a new "challenge" for the miners, and that challenge is to successfully solve a math problem.
Going a tad deeper, people a little savvier may know that the way to solve the math problem/challenge is really guessing-and-checking - over and over again - to try to be able to present to the network a value that when hashed will provide a winning solution.
To be more specific, a winning "solution" is a nonce (number) that, on average, proves that a miner performed the work to "solve the math problem." The network can easily verify the solution.
I oversimplified, but it's not terribly important to my question. My question is: how do miners attempt to avoid duplicating nonces of other miners?
Some considerations I'm curious to know are:
- How are nonces chosen?
- Once a starting spot is chosen, does a miner go sequentially?
- Does a miner's hash rate play a role in which nonces it tries?
- Is there a decent chance that solo miners will hash the same nonces?
- Is there a decent chance that similarly-sized pools will hash the same nonces?
- Do miners use a random number generator?
- If so, does that process affect the number of hashes a given system will produce?
- In general, are there mechanisms in place to inherently make different miners produce unique hashes?