What makes an unconfirmed tx 'suspicious'? (likely to be replaced or never confirm)

2

When looking at Bitcoin unconfirmed transactions, I'm trying to distinguish between txs that are likely to confirm (whether that be in the first next block or in 2 hours) versus txs that are likely to be replaced, or never to confirm at all.

Obviously, txs with the opt-in RBF flag fall in the latter category.

But I guess there are other criteria, such as:

  • having an extremely low fee, or even zero fee.
  • Having lots of dust outputs.
  • Depending on unconfirmed inputs.

Anything else I should take into consideration? What other factors could make a tx less likely to end up confirmed?

For example, besides dust output, do dust (i.e. many small) inputs make a tx less sure to confirm? (other than more inputs causing larger tx data, thus resulting in a lower fee when measured in satoshis per KB)

RocketNuts

Posted 2016-05-15T13:31:53.347

Reputation: 714

Classifying 0-conf transactions based on whether or not it has RBF or any of the above-mentioned characteristics is inappropriate. A transactions that is least likely to be double-spend or confirmed is one that incentivises miners least to include into a block. One could equally argue a transaction that satisfies the negation of all your above-mentioned properties would still be "suspicious" if miners were purely incentivised to mint based on transaction fees alone.renlord 2016-05-22T23:29:34.907

Answers

2

Replacing transactions without confirmation is relatively easy. I would tag every transaction without confirmation as "suspicious".

RBF is a policy and miners could also replace transaction that do not sign opt-in-RBF.

Best way to check if a 0-conf transactions will be mined soon:

  • check nSequence number (only accept 0-conf if nSequence number is INT_MAX)
  • check the transactions fee-rate and compare it with your estimated fee (requires a mempool/bitcoin-core)
  • Calculate the risks: every 0-conf transaction can be replaced/double-spent! High value items should not be "dispatched" < 6 confirmations (IMO).

Jonas Schnelli

Posted 2016-05-15T13:31:53.347

Reputation: 5 465

Thanks. Just to be sure, did you actually mean: if nSequence number is INT_MAX or INT_MAX-1 ? (that's 0xFFFFFFFF or 0xFFFFFFFE). If I'm not mistaken, the opt-in RBF is flag consists of an nSequence below INT_MAX-1 ?RocketNuts 2016-06-01T14:56:22.710