How would P2Pool scale if 10% of Bitcoin mining was done via it? 50%? 100%?
Is the current implementation scalable? If not, are there designs for making it scalable?
There are two problems with scaling P2Pool:
The sharechain difficulty goes up as the pool gets bigger to maintain the rate of finding shares at around every 10 seconds. If everyone was using P2Pool then the difficulty of finding a share would only be 60 times less than the difficulty of solo mining, and so varience would go right up.
As more miners join, it's likely that the latency goes up. Since the share that the pool is working on changes every 10 seconds or so, a delay of just a few seconds is very significant.
In order to scale, there needs to be multiple P2Pools. Maybe they can be nested in a tree structure: a level 1 P2Pool sets its difficulty so it finds shares every 5 minutes. 100 different level 2 P2Pools feed into it, finding shares every 1 minute, and 100 level 3 pools feed into each of the level 2 pools, finding blocks every 10 seconds. Ideally this would all be managed automatically by the p2p network if that's possible.