I always wanted to ask: can random number space be segmented in mining?

Right now, the random numbers everyone generates are from 0 to 1. These numbers are repeated on all 100,000 nodes of Ethereum netowrk and it is a waste of computing resources.

So, can we segment it ? For example, lets say some miners would generate numbers from 0 to 0.001, other miners the next range , from 0.001 to 0.002, and so on...

By segmenting random numbers we would not repeat the same random number on all nodes, and the mining would be much more efficient. The mining pool would be the authority to assign every miner its own random number range.

Why mining pools are not working this way? Because segmenting random number space is a very simple task, but I am not sure if it will work since I don't know how exactly the DAG generation algorithm works.

1 Answer 1


I think what you're getting at is that in a mining pool, miners shouldn't waste time by checking the same nonce as another miner.

This is true, and you could avoid it by assigning each miner in the pool a different range of nonces to check.

But I believe most mining software uses a simpler method of avoiding duplicate work, which is just to use sufficiently large nonces. If, for example, each miner chooses a random 64-bit nonce, there's very little chance of duplication. I believe that 64 bits is a common nonce size choice.

  • Thanks for your answer. It would be interesting to calculate the probability of having duplicate nonces per every 14 seconds. Would this math be correct? : There are 2^64 nonces. Right now the best GPU gives 70 megahashes per second, which is 70x14= 980Mh/sec per cycle. So, the probability that 1 node repeats the same nonce is 1/(2^64/980,000,000) which is (1/18823208238) . But there are 100,000 ethereum nodes in the network, so we divide 188232208238 by 100,000 and the probability would be 1/188232 . It is a very very low probability, right?
    – Nulik
    Jan 25, 2018 at 21:04
  • with this probability reengineering the mining algorithm doesn't make sense, correct?
    – Nulik
    Jan 25, 2018 at 21:05
  • 1
    I don't think that math is quite right. Check out the birthday problem. The number of "birthdays" is 2^64, and the number of "people" is how many hashes are computed per block. Etherscan says the hash rate is around 200,000 GH/s.
    – user19510
    Jan 25, 2018 at 21:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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