1

I am currently following the "tx" messages section of en.bitcoin.it/wiki website, and I need some clarity about the following rule regarding the validity of a transaction:

  1. For each input, if the referenced output exists in any other tx in the pool, reject this transaction.

I don't really understand which of these two interpretations is meant here:

  1. The output referenced by the input must not be referenced by another input of a transaction already in the pool.
  2. The output referenced by the input must not be present in a transaction already in the pool.

Or perhaps it means something else entirely?

1 Answer 1

3

First of all a meta note: lots of information on https://bitcoin.it is seriously outdated, including this.

I don't really understand which of these two interpretations is meant here:

  1. The output referenced by the input must not be referenced by another input of a transaction already in the pool.
  2. The output referenced by the input must not be present in a transaction already in

What is meant is (1). For a transaction to be acceptable, all outputs referred to by its inputs must exist (created by an output of a transaction that's either in the blockchain or in the mempool), and those outputs cannot be spent already (by an input of a transaction either in the blockchain or already in the mempool). A simpler way to state this would perhaps be: if all transactions currently in the mempool would confirm, the inputs of the transaction that is being verified must refer to outputs that still exist.

This isn't exactly true anymore. BIP125 (Replace-by-fee) will in some cases permit a transaction to be accepted when the mempool already has a transaction spending one of its inputs. In that case, the older transaction is removed and replaced with the newer one.

1
  • So, if we pretend replace by fee doesn't exist, this rule is about preventing multiple inputs in the pool referring to the same output. And when combined with another check to see if the output is not referenced in the blockchain either, it confirms that the referenced output is a UTXO. Is my understanding correct? Commented Mar 7, 2021 at 7:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.