What is meant by the term 'transaction pinning'?
Transaction pinning happens when:
- I broadcast a transaction that signals opt-in RBF
- the transaction does not get confirmed because the feerate is too low
- someone else broadcasts a new (child) transaction spending one of the outputs of my transaction
- I now can't bump the fee on the transaction unless I include a fee greater than that of the combined original transaction + the child transaction (BIP 125, rule 3).
If the child transaction in (3) is large (eg a commercial service sweeping up lots of transaction outputs), then the total fee that I'd need to pay for a valid RBF would be very large.
In this scenario, my original transaction has been 'pinned' by the child transaction.
Russell O'Connor has proposed changing the RBF policy rules to alleviate this problem.
1Wouldn't the child transaction trigger Child Pays For Parent in most cases? Jan 20, 2019 at 20:18
2@SamJones - that depends. Child Pays For Parent is where a child transaction has a higher fee-rate than the parent, thus increasing the average fee-rate across the parent-child package and making it more attractive for a miner to include both in a block. In the example above, the child transaction might have a lower fee-rate, so it doesn't increase the average fee-rate of the package. Instead it is a large transaction with a high absolute fee. Any replacement transaction for the parent needs to exceed the absolute fee of the replaced transactions.– jnewberyJan 28, 2019 at 18:45