Large pools with a significant fraction of total hashing power do represent an increased risk to the security of the Bitcoin network.
Pools by themselves are not necessarily a risk as a peer to peer network doesn't necessarily need to consist of invidiual users. A network of pools being the peers is also viable however the pools must be peers and there must be a sufficient number to make collusion between peers infeasible. When one pool is 50x the size of average pool it has no peer. One could encourage miners to support smaller and medium sized pools thus restoring the "peer" nature of the network however that is likely a futile effort. The problem is that large pools have an inherent advantage over smaller pools in the form of less reward variance which is a desirable attribute for miners. Due to this advantage there will always be a tendency for hashing power to aggregate.
Realisticly we should accept that large even massive pools are an inevitability due to the high variance nature of Bitcoin hashing. However the risk of large pools stems from the fact that miners are "dumb". By miners I am referring to the software not the person. Currently the pool server tells the miner what to hash and the miner blindly hashes it. If the pool is compromised or malicious it can tell the miner to hash "bad data" such as a forked blockchain, or double spend transaction. The current implementation of mining pools makes it impossible for a miner to ensure they are doing "good work" until after the fact. This is an important element because large pools aren't inherently a risk. What makes them a risk is the control they have over a large amount of hashing power.
Any reasonable mitigation must address that:
- Large pools are inevitable. Miners will seek out pools which minimize variance.
- The pool server is the weak link in an otherwise robust network due to denial of service, corruption, or compromise.
- The miner must be smart. It must decide for itself what to include in the block to ensure only "good work" is done.
p2pool (peer-to-peer pool) is one solution to this issue without the unrealistic goal of simply having no pools or only "small" pools. p2pool could someday have >51% of the network hashing power and it wouldn't represent a risk to the network. This is because each miner in the pool is working independently which makes subversion of the pool ineffective for the purposes of attacking the block chain.
How p2pool creates a network of "smart" miners.
p2pool creates a "share chain" where each miner submits shares to a parallel p2p network that records all the shares completed by the pool. Each miner independently includes transactions, sets up block headers, forwards other miner's transmissions for shares it hashes. When a block is found the reward is split fairly because in generating each block header the miner looks at last x shares in the "share chain" and setups the coinbase transaction to split reward based on work over the last x shares. IIRC x is currently set to roughly 1 day of work. So everytime a block is found each miner in the pool is rewarded equal to the % of shares accepted by the pool in the prior 24 hours.
https://github.com/forrestv/p2pool
https://bitcointalk.org/index.php?topic=18313
https://en.bitcoin.it/wiki/P2Pool