<blockquote>
  <p>force each miner node to 'compute' (or 'pick') his own range of nonces?</p>
</blockquote>

<p>You don't need to force them. They will obviously do so on their own - doing anything else would be ridiculous, as the fastest miner would always win if they all try to run the same race.</p>

<p>In practice this is automatic, as every miner pays out to himself. As their payout addresses are different, their coinbase transactions will be different, which means their transaction hashes will be different, which means their Merkle tree will be different, which means their Merkle root hashes will be different, and as a result block header will be different too. In fact, it's impossible for them to be working on the same block template without forgetting to pay themselves!</p>

CC BY-SA 4.0
2018-06-15T23:24:51.080Z
What if the block was initially arranged to pay not to the miner himself, but to the pool owner? And miner’s work will be in just picking the nonce in parallel which sounds more predictable then just brute-forcing the block, which rewards only “me”?
Netherwire
CC BY-SA 4.0
2018-06-16T00:17:55.797Z
Pools give different ranges to each worker, again - obviously - because otherwise they're wasting work.
Pieter Wuille
CC BY-SA 4.0
2018-06-15T22:05:34.913Z
2018-06-15T22:05:34.913Z
Pieter Wuille
<p>I'm a kinda newbie here. But this is what I completely can not understand.</p>

<p>If every single miner have to 'arrange' transactions and then compute a SHA-256 function of a given memory chunk, and if computed SHA-256 must match a given criteria (so-called difficulty), why not to split such work, and force each miner node to 'compute' (or 'pick') his own range of nonces? I mean, okay, in good old days every miner was on his own, there was a real 'competition' or concurrent race between them, but now times have changed. Now miners gathers into 'pools'. Just look at the chart:</p>

<p><a href="https://i.sstatic.net/syfel.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/syfel.png" alt="enter image description here"></a></p>

<p>I mean, 28.2% of miners may help each other by tearing this work apart. Are there any less brute but more 'lock pick' ways? If such large segments of the network are now centralized, why not to look for map-reduce approach? Either I've missed some important details, or there is the way. Thanks a lot for the explainations.</p>

<mining-pools><mining-theory><proof-of-work>
Why not to mine more efficient?
Netherwire
# Why not to mine more efficient?

(Asked by: username_0 on 2018-06-15)

I'm a kinda newbie here. But this is what I completely can not understand.

If every single miner have to 'arrange' transactions and then compute a SHA-256 function of a given memory chunk, and if computed SHA-256 must match a given criteria (so-called difficulty), why not to split such work, and force each miner node to 'compute' (or 'pick') his own range of nonces? I mean, okay, in good old days every miner was on his own, there was a real 'competition' or concurrent race between them, but now times have changed. Now miners gathers into 'pools'. Just look at the chart:

[![enter image description here](https://i.sstatic.net/syfel.png)](https://i.sstatic.net/syfel.png)

I mean, 28.2% of miners may help each other by tearing this work apart. Are there any less brute but more 'lock pick' ways? If such large segments of the network are now centralized, why not to look for map-reduce approach? Either I've missed some important details, or there is the way. Thanks a lot for the explainations.

**Tags:** mining-pools, mining-theory, proof-of-work


---

## 1 answers

### Answer by username_1 on 2018-06-15. Score: 3 | Accepted answer

> force each miner node to 'compute' (or 'pick') his own range of nonces?

You don't need to force them. They will obviously do so on their own - doing anything else would be ridiculous, as the fastest miner would always win if they all try to run the same race.

In practice this is automatic, as every miner pays out to himself. As their payout addresses are different, their coinbase transactions will be different, which means their transaction hashes will be different, which means their Merkle tree will be different, which means their Merkle root hashes will be different, and as a result block header will be different too. In fact, it's impossible for them to be working on the same block template without forgetting to pay themselves!

> **Comments:**
> **username_0**: What if the block was initially arranged to pay not to the miner himself, but to the pool owner? And miner’s work will be in just picking the nonce in parallel which sounds more predictable then just brute-forcing the block, which rewards only “me”?  
> **username_1**: Pools give different ranges to each worker, again - obviously - because otherwise they're wasting work.  

---

