I've noticed that a lot of mining pools are now including transactions below 1 sat/vB in their blocks. Some nodes even dropped their minrelaytxfee to 0.1 sat/vB. But the thing is, transactions at that rate have been stuck unconfirmed for weeks. I mean, some just got re-broadcasted recently, like this one: db2eb7f83b4b9ff8dfa74a69bf8b3e05ce1ad77d007906716f1ee14605cc6300.
Yeah, I get that. Using SIGHASH_ALL | SIGHASH_ANYONECANPAY could be a way to protect outputs while allowing anyone to add inputs to increase fees later. It's a wild idea, but it could let people send ‘free’ transactions if someone else throws in more inputs.
The whole point of free relay is to keep those transactions hanging around in the mempool without getting mined. But there's a risk here. An attacker could exploit this to clog up bandwidth and memory for nodes on the network. Not many transactions use that SIGHASH, though CoinJoin does.
So, if we're talking zero fees, miners might still include them, turning it not-so-free. Plus, if you have a chain of transactions, you could end up with a non-zero fee at the end that raises the effective fee rate by CPFP.
But that 300MB can be reused. If you fill it with 0.1 sat/vB, you can bump it up later with full-RBF. Just replacing one transaction can invalidate a whole chain. So yeah, you’re basically getting a free ride unless a miner decides to confirm it.
But those rules only apply to single transactions, not chains. You could still have a chain of low-fee transactions behind a single bumped transaction.
Sure, but what if different nodes have different fee policies? Like, some accept 0.1 sat/vB while others need 1 sat/vB. If you start with the lower one and then bump it up later, you could still get away with it.