Well basically that. If a transaction is in the memory pool, that is, it is not yet in a block but nodes and miners know about it and validated it, Can I send another transaction that double-spends the outputs? that is, are the outputs considered unspent?
2 Answers
Let's assume that there are two UTXO under your control, U1
and U2
.
You use U1
and U2
to create a transaction T1
that would create U3
when confirmed. U1
and U2
therefore are inputs of the unconfirmed transaction T1
and U3
is an output of T1
.
U1
and U2
are unspent, however another transaction T2
spending either or both of them would be considered a doublespend by any node that knew about T1
before.
Meanwhile, until T1
is confirmed, U3
is not part of the UTXO pool. Since the transaction is yet unconfirmed, the newly created output doesn't exist yet.
The transactions are considered spent from the nodes that already have the transaction in the mempool
, that is, if you try to double-spend the transaction, they will reject the new one. However, if the transaction ends up not being included in a block, they will be dropped from the mempool
after a certain time. After that, you will be able to create a new transaction that spends the same UTXOs
, since from that point on it won't be considered double-spending.
-
Thanks. How much would taht time be? Because I sent a tx with such a low fee that it's taking too much time to get into a block and my last hope is for it to get dropped from the mempool of the nodes.– miguelCommented Mar 16, 2017 at 14:56
-
It could last a while, I don't know exactly how much, honestly. However, if you are in a hurry, you can use the solution from this answer: bitcoin.stackexchange.com/questions/51524/…– sr_giCommented Mar 16, 2017 at 15:41