So I think I understand a good portion of how Bitcoins are mined, but some specifics
aren't clear and I wanted to ask for clarification while recapping what I think I know.
So https://en.bitcoin.it/wiki/Block_hashing_algorithm explained the block header that miners are hashing
while looking for a hash below the difficulty number, the proof of work.
With pooled mining, multiple miners try for the proof of work and share the reward.
To prove that a miner is working, they submit proof of works for a less difficult number,
called shares, which is used to split the proceeds from any mined blocks.
So my questions are:
1) Who provides the block header to hash, the pool?
If so, how does it split up the nonce range between workers?
How does it update the workers when new transactions come in and the Merkle root updates
or when the Timestamp field changes?
2) What prevents a worker from submitting the proof of work and getting the block
rewards without sharing it with the pool? It's because the pool's block header is made to
send the rewards to a Bitcoin address controlled by the pool operator, correct?
3) What prevents the pool operator from claiming the block and not sharing it with the
workers? Obviously this doesn't matter for pure pay-per-share pools, but what about
proportional pools or the PPS variants?