I would think you could detect someone performing a block withholding attack on the pool through a simple test:
First identify your 'unluckiest' participants. Then when a block is solved, immediately send the work unit for the block to those miners. If they consistently fail to return the winning solution you know they are ripping you off.
There are a number of other attacks that could be detected with similar approaches.
What's troubling to me is the massive asymmetry of risks right now. The miners on BTCguild have over $50M in hardware investments that is depreciating at 25% / month . I'd be shocked if Micheal has $50k in total in hardware to run the pool.
My personal theory has been mentioned already:
Startup 42e1 spends $2M on design and masks to build out their $5M 2Ph/s mine only to discover that the design has a flaw that prevents it from finding nonces with difficulties over 4.2 billion. It still hashes lots of results below that level, so instead of scrapping things they move all their machines off the internal pool to a big public pool.
There are many, many other reasons someone could be maliciously attacking a pool, and the stakes keep getting larger. If you're operating a public pool and not actively developing defenses, you will be burned.
And personally if I was clearing $250k / month off my pool, I wouldn't care what little people think either, but I would pay somebody to care.
Actually, You should send the the winning hash/nonce to ALL particpants. Just that hash. Every miner that doesn't return the winning block should instantly be blacklisted.
THis is very very minor tax, but a huge payoff in preventing a withholding attack, or blocking bad hardware.
How long do you wait before you broadcast the block? Every 6 seconds that passes there is a 1% chance that another pool solves a block and your block becomes orphaned. The hardware error rate of miners is not zero. You would rapidly blacklist yourself to a pool of zero. What about miners who already have work queued up? Are you going to wait multiple seconds and increase your orphan rate while still having false negatives and end up blacklisting good miners? Some ASICs don't attempt every nonce. Those miners wouldn't even have a way to know it is a solution to a block.