I’d like to take a moment to share Chia Networks position on the subject, since the impression is being given that we are ignoring a “flaw” in the blockchain or are otherwise dis-interested in resolving this issue, which is not the case at all.
Our system is designed a specific way with certain decisions made, and while a pool operator can choose to use it in ways it was not intended for their benefit (like, say running FPPS/PPS pool), then they need to own that choice and protect themselves accordingly. (Though we will, and have, help you find those solutions if you want advice.)
Early in pool protocol design, the “dead weight” risk was openly discussed between Chia and pool operators, and we understood this to be a potential risk (in fact Alex over at FlexPool says the same issue can happen on Etc pools if the pool doesn’t account for it). Unfortunately we had to make a hard choice during pooling development between either giving Pools centralized control, or giving Farmers the benefit of the doubt and giving them full decentralization.
Ultimately we decided to stick with our vision of true decentralization, and included 0.25 XCH + fees reward to farmers as a counter to this potential attack in edge cases. In the end of the day, this was a hard decision to make, as every blockchain protocol needs to make a fundamental decision on these kinds of hard choices from time to time. Our hope was that most pools wouldn’t be inherently susceptible to this, and ones who were (like for example an FPPS pool), would be able to put the time and resources into developing their own additional controls as part of the their pooling.
We understand and empathize with Maxiopool’s frustration, but this is not a Chia bug or exploit. It is a fundamental piece of the blockchain code working as it was designed and intended, after a deliberate series of choices were made, in a decision to help ensure full decentralization. Thus, we recommend no pool operator provide PPS payout, unless they are also willing to take on it’s in inherent risks or add monitoring and controls around it of their own design. (Which we tried to give Maxipool advice on… now suffice to say, it IS possible that the advice we give wasn’t sufficient, or that the ideas we cooked up in Keybase weren’t thorough enough to protect a PPS pool from this, but to be fair, the same goes for other cryptos on other chains, it’s an inherent flaw in the PPS model and one of the risks that comes with the reward.)
(Putting it another way: When designing pooling support for Chia, do we completely change the fundamentals of the block change decentralization vision we have, so as to ensure that a small percentage of edge cases don’t have to do any extra work when building pools… Or do we hold to our values for 95% of the pooling world, and educate the remaining 5% on what they can do on their side to solve the problem if they decide to operate outside the box? Chia can’t fix this problem on our side, without fundamentally changing the vision of decentralization… However pool operators can attempt fix it much more easily, if they are the edge case that makes them susceptible to it, by adding simple detection methods for NTFs that have significant deviations from the norm, or other detectable scenarios. Or, perhaps, if it’s too hard to detect… that could be too… then they can move away from PPS to a more common method. The point is, this is a risk on MANY blockchains of a variety of cryptos, and Chia is not unique in this issue… it’s a risk PPS based pools opt into.)