Recently Flipstarter has been a big success, funding the development of 4 out of 5 Bitcoin Cash full nodes, with only the ABC not reaching its goal. But despite this and the large opposition against the IFP, there are still those who claim that the IFP is better or even that it's the "only sustainable option".
The gist of the claim is that by forcing all miners to donate, it'll be the most fair and also force Bitcoin miners to fund Bitcoin Cash development. The miners must be forced to donate to "avoid a tragedy of the commons", which happens when miners who don't donate profit more and can outgrow those that donate.
Sounds good in theory, but there's a fatal flaw here that I don't think has been given the attention it deserves. So let's have a look at some incentives of the IFP, and why the IFP isn't a solution to the tragedy of the commons.
ABC is one of the main beneficiaries of the IFP, and is undoubtedly the ones who would benefit the most as it's the much preferred mining client. A successful activation of the IFP could mean millions of dollars in funding for them.
If you know you history then you know money is one of the prime motivators for people to do things; things they wouldn't normally do. Everything from shoplifting or insurance fraud to kidnapping and torture. Then it wouldn't be a stretch to say that even though the very concept of the IFP risks to split the community, ABC will still push forward. Not because of pure malice, but because they're incentivized to do so and it would be the rational thing to do.
This is how they manage to convince themselves that it's fine to merge highly controversial code Feb 15, with reviews happening right up to the merge, *exactly* three months before May 15, the planned fork day.
You see because there's an agreement that no feature changes can be merged three months prior to an upgrade, it's fine if you do it just before the deadline! They also updated the specification two weeks later, renaming it to a "draft" and leaving this note:
Important: This document is an in-progress draft, and may change prior to the 2020-05-15 upgrade
I understand, because I've seen this play out many times in my professional career. People who are working on a feature, but it's only half-finished, so they push it through on the weekend right before the lockdown on Monday, without telling anyone. Because they can "fix it" before release, and it would "be dangerous" to remove it after feature freeze.
That it was discovered a week later and we spent years living with the aftermath is another story.
Even after the code has been merged, and after the opposition against the IFP has been cleared, ABC didn't back down. Instead they hired a PR guy (excuse me, "Business Development Manager") to better the perception of ABC and the IFP. Amaury still holds firm with the IFP and they're quick to dismiss any critique as "social media noise on r/btc", even though no other development team implemented the IFP and basically no miners have voted for it.
But it's all to be expected, and I predict ABC to try to forcefully push through IFP 2 the next hardfork. Because as other development teams gets community funding, they alone are left out. (Geez, I wonder if giving the community the middle finger has anything to do with it?)
On to the miners then. The fatal flaw with the IFP, or any forced donation scheme, is that miners can introduce imbalance by kickbacks. While miners are indeed forced to send a portion of their reward to a predetermined address, that doesn't mean the money will go to actual development.
For example if I'm a miner I could contact one of the holders of the addresses and give them a very enticing offer:
Hey developer! If I always choose your donation address, could you send back them to me? You're allowed to keep 25% of them. It's a win-win!
This is called a kickback and it would give them an edge against other miners. This is why the IFP doesn't actually solve the tragedy of the commons, as now the honest miners (or those who couldn't convince the devs) will pay for the development while the shady miners get more profit and are able to increase their mining share.
To make matters worse in the IFP there's a donation address that's already controlled by miners in the IFP code! (Well, that's what we can assume if we trust ABC as we don't actually know who holds it!) Those miners (or pools) don't even have to do any kickbacks, they can just pocket the rewards directly.
Now you might counter this by saying the address is held by a consortium of miners, that they'll ensure to keep each other in check.
Well, they could... Or they could come to an agreement that they all share the profits. Or they might create a "MoneyStream development team" who will solve all the major problems with Bitcoin Cash, but it's only purpose is the funnel funds to themselves.
Bitcoin works because of the premise that 51% of miners are honest. And honest doesn't mean they're kind or friendly, it means that they'll work for their own financial interest. This is the brilliance of Bitcoin; it aligned the incentives of the network with that of the miners, ensuring protection against double-spends.
Believing that the IFP will work is to believe that miners will act against their short-term financial interest, that they will be gentlemen (and gentlewomen) and not try to funnel money back to themselves. That's the same as conceding that Bitcoin's core assumption of honest miners doesn't hold, and if we believe that what are we even doing here?