Here is why consensus is not a good idea for fees.
Block A contains transaction X. X appears to pay 913 sats in fees. How much did it pay in fees?
Actually you have no idea how much they actually paid due to potential for OOB payment. If the fee is somehow a consensus requirement they could have made it *appear* to pay this many sats but in reality they are paying themself (the miner) or it is a third party paying a different amount OOB via LN or something.
Congratulations you learned nothing by requiring fees in consensus. Meanwhile complicated the consensus code which limits what future blocks can contain. What if that new fee consensus rule turned out to be a bad idea? It might require a hardfork to remove it, or at least be a huge pain to everyone with a complicated softfork.
Additional fee rules instead within MempoolAccept can have the benefit of being flexible, adapt to evasion, or be removed entirely without a massive hassle. Sure these mempool fee rules can be bypassed by OOB but I've established seeing fees in consensus actually gains you nothing too due to OOB.
x.com/wtogami/status…
Early 2023 I suggested using MempoolAccept to add the expectation of an additional fee to increase the cost of "inscription"-like arbitrary data storage on-chain. @rodarmor even agreed at one point he might recommend it if backlash grew large enough against inscriptions. That type of data storage happened to have an easy to detect unique op code sequence so this was possible if enough node operators and miners got angry enough at arbitrary data storage paying proportionally less per real byte than financial transactions.
The need for this went away for now when the NFT fad died. It might still be a good idea if arbitrary data storage becomes popular again.
x.com/wtogami/status…
Yes evasion would have been easy, but updating the heuristic would also be easy because it's a mempool rule, not consensus.
x.com/wtogami/status…
Now I propose adding an additional expectation of fee for each output where the value is "small". For example a shitcoin in 2011 added 1,000 penalty bytes to the fee expected by MempoolAccept for each output that was too small. I always thought that was a good idea that would benefit Bitcoin because it would make any UTXO set expansion extra costly. I first proposed this for Bitcoin ~2014 because I was very angry about SatoshiDice spam. I still think charging for too-small outputs would have been better than the dust limit


X (formerly Twitter)
Warren Togami (@wtogami) on X
@KLoaec @notgrubles Here is why consensus is not a good idea for fees.
Block A contains transaction X. X appears to pay 913 sats in fees. How much...



