The bootstrapping problem of preconfs
Just spent two weeks at zuberlin and learnt a lot about a part of the stack I knew little about.
Talked to some other big brains about payments. The consensus was that cheap and fast is good. E.g Vitalik said we need to be better than Tron or Solana, whilst keeping security, censorship-resistance etc.
One popular idea is preconfs, championed by Justin Drake. One way to get to this are preconfs.
The basic idea is based sequencers can pre-confirm a transaction execution. After all, slots are known ahead. As a user, you could tip extra (preconf tip) and get a guarantee about a slot. The preconfer would make a promise to the user that the transaction will be included. If the preconfer fails on the promise, they get slashed if they include the wrong transaction (safety fault) or miss including (liveness fault).
The great thing about it is that you would achieve ping latency.
There are many advantages and disadvantages to this. Most notably, 100ms latency would be a huge UX improvement, but preconfs could also have a strong centralising effect.
There is another problem. Some conversations with Luca showed a bootstrapping problem. Essentially, non-preconfers could mess up the preconfer’s promise. Two real world examples:
Preconfer promises 5 gwei gas price (slot n+2 on the diagram) but non-preconfers bid to 10 gwei (slot n or n+1), thereby the preconfer gets slashed or has to now pay the gas to keep the promise.
A preconfer promises a trade of KonradCoin to USDC at 69. A non-preconfer includes a trade that boosts the price to 70 before and the preconf is invalid.
It seems that the only way out of this problem is to give a monopoly to preconfers on all the slots before a preconf. Even if all the sequencers agreed to respect preconfs, a forced inclusion transactions can still mess up the preconfs.
In conclusion, the bootstrapping problem of preconfs is that you non-preconfers can mess up the preconfs of the preconfers. This needs to be solved for preconfs to make sense.
Fast UX would be an important part of any future payments stack, such as what we are building at Peanut Protocol.