Spending output of a low-fee transaction by following with higher-fee transaction

8

Suppose I broadcast a transaction A with very low (or zero) fee. Normally, it would take a long time to confirm. Suppose, then I broadcast another transaction B that spends a (yet unconfirmed) output of the first transaction A and includes normal or higher-than-normal fee. I assume that the transaction B can be mined only in the same or later block than the transaction A. Would the higher fee of the transaction B be motivating for miners to mine the transation A as well?

Or, put it in different words, can I facilitate a confirmation of a low-fee transaction by spending its output using a high-fee transaction? If yes, what Bitcoin client would allow me to do that?

Vladimir Reshetnikov

Posted 2016-06-14T00:16:18.373

Reputation: 182

If you have found an answer, go ahead and post an answer to your own question. That way others will more easily find the answer when they come looking with the same question. SE even gives you a badge for answering your own question :)Jestin 2016-06-14T03:27:17.433

I don't think that any miners are already running CPFP.Murch 2016-06-15T15:09:55.307

1

Code about to be committed soon :) https://github.com/bitcoin/bitcoin/pull/7600

renlord 2016-06-16T01:28:38.257

Eligius has CPFPamaclin 2016-06-21T13:15:22.443

Eligius accepts RBF transactions too.renlord 2016-06-21T19:48:09.107

Answers

6

There are 3 cases.

Case 1a: if Fee(Tx1) < Dust Fee then Tx1 gets dropped by nodes that do not offer Free Relay Policy. Then all other transaction dependent on the outputs of Tx1 will never be committed to the blockchain, even though descendent transactions may or may not be accepted into the mempool of a subset of nodes in the network.

Case 1b: if Fee(Tx1) > Dust Fee && Fee(Tx1) < Recommended Tx Fee then Tx1 will be accepted by mempool but eventual commitment is at risk. In this case, It is possible to boost fee rate by contributing more transaction fees, as described by 2quick 4u using CPFP, where Tx2 will contain a higher transaction fee than Tx1, lifting the mean fee rate which includes the ancestor transaction, Tx1.

Case 2: if Fee(Tx1) > Dust Fee && Fee(Tx1) >= Recommended Tx Fee then Tx1 gets accepted by nodes. All dependent transactions dependent on the outputs of Tx1 should eventually be committed to the blockchain, so as long as the fee rate for the root and dependent transactions are competitively high enough to be selected and committed to the blockchain. The reason why should is bolded is because a competitive fee rate is constantly changing based on demand in the network. So one will expect the fee rate to be significantly higher when the network is busy and vice-versa. Furthermore, there is usually a 72 hour limit on pending transactions that are in the mempool. Once 72 has elapsed and a transaction has yet be committed, it will be dropped from the mempool.

renlord

Posted 2016-06-14T00:16:18.373

Reputation: 2 167

4

To my knowledge there is not a widespread practice of miners to do this, but it certainly can be programmed.

As transaction fees continue to rise and these type of stuck transaction become more of a problem I would expect more miners willing to scan the mempool and cross check inputs for use in later transactions (with higher fees).

This CPFP concept should become much easier for miners to implement soon: https://github.com/bitcoin/bitcoin/pull/7600

254123179

Posted 2016-06-14T00:16:18.373

Reputation: 345