The pool creates the header, puts their address in there, and sign it. Then they send it out to the "miners" to search for the hash.
When a "miner" solves the block, the pool broadcasts the block and gets paid. Then in a later block, they split up the payment among all the participants.
What am I missing? Is there something implied in your description that I didn't notice?
You're missing the fact that the nonce and the merkle root are part of the header, so the pool manager cannot sign the header without counting over all nonces himself.
Ah, I see what you are suggesting now. Unfortunately, it wouldn't stop pooled mining at all. All it would do is create a financial barrier to entry for small miners.
All the pool needs to do is:
- Require a deposit from every participating miner that is at least as large as the largest blockreward
- Issue each miner their own private key that the pool knows about.
Then the pool can monitor the blockchain to see if any coinbase transactions go to any of the addresses that were issued by the pool. If so, the miner will be expected to allow the pool to split the reward up among the participants. If the miner tries to "steal" the reward, then they forfeit their deposit (which will be split up among the pool participants).
It would also potentially make it so miners would not mine at all, thus decreasing the security of the network.