Fleshing it out:
- require each individual node to provide an "ante" PoW before it is allowed to contribute a block. For example, require it to provide a hash of a previous block (must be a recent block, so the ante must be repeated periodically) + the node ID (and I need to learn how different nodes are identified -- I assume they have some sort of id?). This will make it expensive to operate lots of nodes and provides an incentive for an individual to group hashing power into fewer nodes.
- Each node gets a reward per ante, but only after it contributes a block.
- The reward diminishes (according to some preset function) if any one node contributes more than, say, 1% of the last 1000 blocks. This is what makes it profitable to fragment any node with more than 1% hash power into multiple nodes.
- It is permissible for one node to provide the PoW for multiple nodes by including the node ID into the hash. This is how multiple nodes form a conglomerate. The reward is distributed equally among all nodes in the conglomerate only after one of them adds a block. There is a time delay: the reward is distributed only after the block is, say, 50 blocks deep.
- At any point in time during those next 50 blocks, each node in the conglomerate has the opportunity to "defect." The first node to defect gets half of the total reward; the rest of the nodes get absolutely nothing.
Result: an individual mining pool with, say, 30% of the network will optimize earnings by running 30 nodes and placing them all within one conglomerate.
If N different loosely affiliated individuals, each of whom controls one node, decide to form a conglomerate, then the odds are that one of them will defect and destroy the conglomerate.