I've heard P2P mining pools are the answer to the current threat of mining pools controlling 51% of Bitcoin's hashing power. Is this true or not true? Does anyone have a supporting or critical assessment of P2P mining pools? What are the trade offs? Thanks in advance.
P2Pool allows individual miners to band together and find blocks with the reward being shared directly with the miners who participated in finding the block. If you didn't contribute a pool share during a round, you wouldn't receive a payment for a block found by the round. The pool has a lower difficulty than the network but greater than an individual miner. That is, your miner can be submitting shares to the pool but you won't get a pool share unless one of your shares has a difficulty greater than the pool difficulty. When somebody submits a share with a difficulty greater than the network difficulty, a block is found and everybody who contributed at least one pool share gets part of the reward.
So the trade-off is a high variance since you only get paid if you were participating at the time a block is found and you contributed a pool share. And finding a block itself is highly variable since it depends on the total hash power of the pool (luck also plays a large role).
Depending on your hash power, you could run your own p2pool or join a p2pool set up by somebody else. The advantage of joining a common p2pool is it increases your chance to contribute a pool share and thus share in the block reward.
The only advantage to shifting miners from using a centralized pool to P2P pools is that it may spread out the hashing power across multiple independent groups - balkanization of the hash compute power. This doesn't solve the problem, it just disrupts it slightly.
A P2P pool is still a collective effort working together as a single block mining entity. There may not be a central server involved in a P2P pool, but the pool is still collecting transactions and creating a block to add to the blockchain.
If a P2P pool is large enough to produce 51% of the global network hash output, the pool would have the same potential to disrupt blockchain transactions as any other pool - if someone with malicious intent were able to gain control of the block creation process.
So, while a P2P pool might change where the block is created (central vs super node vs any node) and therefore the point of attack, shifting everyone from GHash to one P2P pool won't change the 51% threat.