In a mining pool where rewards are distributed according to the fraction of hashrate contributed to the pool, could a miner misbehave trying cheating in some way? And are there strategies to prevent this?
I can think of one example:
Bad behavior 1
A miner with 1TH/s could pretend to be mining at 2TH/s by sending to the pool at regular time intervals the block headers (here I am not sure what the miner actually sends to the pool if the header or just the nonce) he is discovering plus a bunch of other headers already found in previous iterations.
Solution 1
This behavior does not affect the the ability of the pool to mine a block, but just inflates the reward of the bad miner, basically stealing from the other miners' share. It can be prevented if the pool keeps a lookup table of the block hashes coming from each miner and check for repeated blocks, though this seems like overkill and too expensive. Another solution could be enforcing that the miner sends the block solutions in an increasing order of the nonces, that's would be easy to verify and no repeated blocks are possible.