Lightweight unique kernels

In Replay Attacks and possible mitigations I wrote:

[tx monotonicity] also prevents having to deal with certain unwanted complexities. Currently the tx fees protect against spamming of the network. For a tx to be broadcast worldwide, it cannot escape paying tx fees. But if you could publish txs that are about to expire, then the spammer reduces the odds of having to pay any fees (to nearly zero if they are a miner that just found a new block). This problem would be magnified once blocks fill up.

So yes, you can minimize such attacks by adding some complexity to mempool acceptance rules. This involves making some choices that for best effect should be coordinated network wide. And leaves some edge cases. Like if nodes don’t accept tx expiring in 1 hour, then someone could end up with a tx expiring in slightly less time, and having to figure out how to transmit it directly to a miner (who will accept whatever pays a good fee). You get these slight misalignment of incentives.

Necessity of anti-spamming measures is just one of several downsides of sacrificing tx monotonicity.
I’d rather preserve it, and add some complexity to wallets to protect their owners from (re)play attacks.

Solving problems by adding consensus rules should be a measure of last resort, as complexity added there can never be undone.

1 Like