Removing BIP-125 Rule #5 Pinning with the Always-Replaceable Invariant



Summary:

In a message posted on the Bitcoin-dev mailing list, Suhas Daftuar pointed out that the proposal to limit the number of descendants of each in-mempool transaction to MAX_REPLACEMENT_CANDIDATES was broken because a single transaction can conflict with multiple in-mempool transactions due to the fact that Bitcoin transactions can have multiple inputs. This could result in more evictions than intended. Peter Todd responded by suggesting that the issue could be fixed by summing up the number of nReplacementCandidates for each input in the multiple input case. The goal is to ensure that a transaction can always be replaced by double-spending an output to defeat pinning, not to make every possible way of double-spending multiple outputs at once work.


Updated on: 2023-06-16T02:56:22.320802+00:00