The only solution would be to penalize pools who produce too much hashrate. There should be a limit, like 5% or total network rate or more gets penalized harshly. It needs to be kept very low, but not so low that some of the bigger individual users are shut out of the network. Some individuals are currently producing a few petahashes on their own, and they should be allowed to do so. But nobody or thing should ever be allowed to come anywhere close to even 10% of network hashrate. This is destroying GHash.io's reputation quickly.
there is nothing in the bitcoin protocol that would allow to determine that two coinbase transactions came from the same pool. assuming we know what the identity of the "pool" is in the first place.