We have recently participated in Taiko testnet for provers and it had competitive proving system - who got the proof on chain faster wins the reward. The results were disappointing for most of the participants as 2 addresses ended up gathering most of the proofs, the 3rd have picked up what was left from those 2.
It also seems that those 3 provers have used some gaming laptops as they went offline during the night and that was a time for others to pick up 1-3 proofs.
Moreover, most of the times the proof was completed almost simultaneously and the last piece was to make a transaction on chain. But only one proof can be accounted, thus 1 transaction was successful and others have wasted their gas with a transaction being eventually failed. So, in testnet (Sepolia) it was ok, but when it comes to real ETH spending, I don’t think there will be a lot of people willing to waste electricity, hardware and ETH for failed attempts.
So, in my opinion, competitive proving will only lead to centralization, as in deterministic computations, like ZK proof generation, the fastest will always win.
Eventually, provers will have to constantly upgrade their hardware as the fastest always wins. And that is not PoW situation with probabilistic computations where 2nd best hardware is still capable of mining blocks. No. As soon as there’s a better equipment out there, you can throw your server away. At the pace of the tech development this will lead to the necessity to switch the hardware at approx. 1-2 times a year. Obviously, the costs of constant upgrades are impossible to cover with the proof fees, as we want to lower them for end users.
That is why I vouch for some turn-based rotation of proof generation with some minimal threshold by proving time that would satisfy quality of service. It is possible to make some kind of a slashing mechanism for violating QoS. The threshold can be defined by average proving time. It is also possible to introduce bigger rewards for faster proving to incentivize hardware update.
I think that it is better to give the block to some randomly selected small set of N provers and give most of the rewards for the winner and the rest the losers to keep them in game. Then randomly selected another subset thus making sure that at least some provers will get the job done as others fail. Some mechanism like that maybe can be seen in Polygon PoS, when validators take turns and if the chosen validator messes up the others get a chance to pick up the block. Or the BNB chain, where they have block producers and candidates.
Less than a year ago Ethereum went green overnight by switching from PoW to PoS, but now ZK rollups are returning those bad features as wasted electricity consumption. To a smaller degree, as everything in L2 is supposed to be smaller than in L1.
Avoiding competitive proving will help to avoid all those unnecessary costs for provers and for environment.