TL;DR: White Flag gave IOTA a nice TPS boost. But it’s temporary, increases dependence on Coordinator, and is bad for research, adoption & Coordicide development.
Let’s quickly discuss what White Flag does, and how it relates to the IOTA/Tangle concept.
At first glance, this seems good: It looks like this change reduces the reliance on the coordinator - the coordinator doesn’t actually do anything anymore except just sign a random transaction. Seriously, any transaction that indirectly references the previous milestone, valid or not, will do.
Unfortunately, this also breaks virtually every assumption that people have made about the Tangle, all the way down to “one transaction approves two others”. Some of the direct implications are pointed out in the “Drawbacks” section of the RFC:
The ledger state is now only well-defined at milestones, meaning that we have to wait until each milestone is issued in order to confirm a spend;
In other words, a “transaction approving two others” doesn’t mean anything any more, because transactions can now approve conflicting / invalid transactions)
Everything that is seen is now part of the Tangle, including double-spend attempts, meaning that malicious data will now be saved as part of the consensus set of the Tangle;
In other words, just because something is “in the tangle” doesn’t mean it’s actually valid, which also means that…
To prove that a specific (non-milestone) transaction is valid, it is no longer sufficient to just provide the “path” to its confirming milestone, but instead all transactions in its past cone.
So you can’t do merkle-proofs-of-inclusion with this.
Coordicide will necessearily make the network slower, WF or not (because you’re turning a centralized process into a replicated one, it’s slower by definition. Also, added overhead from Mana, FPC, etc).
But removing White Flag will slow down Coordicide a lot more. If I remember correctly, Hornet gained a ~5x speedup with White Flag. And this will need to be undone. I would imagine a 5x slowdown to be a tough sell to the community.
The alternative would be for the developers to invest additional time and effort in making White Flag work somehow on the post-coordicide network, thus making Coordicide even more complex (and delayed) as it already is.
Either way, painful.
TL;DR (2): White Flag cost months of engineering time to build, there is no short-term requirements to do this, there are no long-term gains but rather disappointment on the horizon, slowed adoption/research and of course additional engineering work to remove it.
So why have Chrysalis pt 1 at all? Is it worth it for a few TPS hype tweets?
Independent of my opinion on Phase 1, I think the changes planned for Chrysalis Pt. 2 are good & important and will fix some of IOTAs more serious current problems. I also want to stress that I don’t consider this the fault of individual engineers. The actual design on it’s own and the implementation are fine. But I don’t think management should have prioritized this project over Phase 2 or Coordicide.
There is some irony here, in that I have previously joked that “all of CfBs ideas that distinguish IOTA from other cryptos are being undone with Chrysalis, except the DAG & feelessness”. Well, the DAG is effectively being removed with Chrysalis pt. 1, even though it’s not explicit. I’ll write an article on feeless some other time ;)