Testing Low Fee Transactions in Bitcoin

15 replies 185 views
AtomicForkFull Member
Posts: 352 · Reputation: 479
#1Aug 18, 2018, 02:04 AM
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.
3 Reply Quote Share
alex.byteLegendary
Posts: 170 · Reputation: 5910
#2Aug 18, 2018, 05:17 AM
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.
1 Reply Quote Share
AtomicForkFull Member
Posts: 352 · Reputation: 479
#3Aug 20, 2018, 03:11 PM
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.
2 Reply Quote Share
alex.byteLegendary
Posts: 170 · Reputation: 5910
#4Aug 20, 2018, 09:21 PM
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.
3 Reply Quote Share
Posts: 44 · Reputation: 168
#5Aug 21, 2018, 01:16 AM
Right, but nodes cap their mempool at 300MB. So, it’s not like there’s an endless opportunity for attack here.
2 Reply Quote Share
alex.byteLegendary
Posts: 170 · Reputation: 5910
#6Aug 21, 2018, 02:47 AM
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.
0 Reply Quote Share
AtomicForkFull Member
Posts: 352 · Reputation: 479
#7Aug 21, 2018, 07:35 AM
Not to mention the bandwidth issue. Like, if there's no regular fee traffic, then the attacker just eats the cost.
1 Reply Quote Share
Posts: 44 · Reputation: 168
#8Aug 21, 2018, 10:04 AM
BIP125 has rules for replacements to make sure they pay more. It’s designed to prevent this kind of exploitation.
3 Reply Quote Share
alex.byteLegendary
Posts: 170 · Reputation: 5910
#9Aug 21, 2018, 10:18 AM
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.
0 Reply Quote Share
Posts: 44 · Reputation: 168
#10Aug 21, 2018, 02:56 PM
Exactly. If you push up the fee for just one transaction in a chain, the rest become invalid. It’s a strategy.
4 Reply Quote Share
alex.byteLegendary
Posts: 170 · Reputation: 5910
#11Aug 21, 2018, 07:51 PM
Just to clarify, BIP125 explicitly states the replacement needs to cover the fee for everything it kicks out.
2 Reply Quote Share
Posts: 110 · Reputation: 19
#12Aug 21, 2018, 08:19 PM
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.
2 Reply Quote Share
alex.byteLegendary
Posts: 170 · Reputation: 5910
#13Aug 23, 2018, 01:02 PM
Lol, sounds like a recipe for confusion. I see what you mean, though.
1 Reply Quote Share
Posts: 110 · Reputation: 19
#14Aug 23, 2018, 04:29 PM
I think you’re missing the bigger picture. Even if there’s free relay happening, it’s not like there’s unlimited bandwidth.
1 Reply Quote Share
alex.byteLegendary
Posts: 170 · Reputation: 5910
#15Aug 23, 2018, 05:36 PM
How about running regtest publicly to see what happens? It could help test some edge cases, but exposing traffic could be risky.
6 Reply Quote Share
Posts: 3523 · Reputation: 35
#16Aug 25, 2018, 01:05 PM
True, but if we can get six blocks a second, that could lead to some serious spam. Maybe a free P2P relay network could work if we play it right.
1 Reply Quote Share

Related topics