Scenario: Alice has a wallet A1bz
(let's say these are the first 4 characters of the private key in wallet import format so we don't have to deal with too many characters) with wallet address 1A1
and 100 mBTC in it. She also has a wallet A2bz
with wallet address 1A2
for change and wants to send 50 mBTC to Bob's wallet with public address 1B1
at 15:00 but only pays 0.01 mBTC fees (as opposed to 0.1 mBTC) which would be the recommended amount. This means that the transaction probably won't go through right away but will have to wait for a few hours.
This means that transaction1
is built like this:
transaction1: (1A1) -> (1A2(49.99 mBTC), 1B1(50 mBTC), fee(0.01 mBTC))
So transaction1
requires that there are 100 mBTC in wallet 1A1
.
However, Carlos comes along and sends 1 mBTC to Alice at 15:05:
transaction2: (1C1) -> (1A1(1 mBTC), 1C2(4.9 mBTC), fee(0.1 mBTC))
transaction2
goes through right away in the block which closes at 15:10. transaction1
isn't confirmed at that point in time.
Does this mean that Carlos aborted transaction1
? Afaik, the inputs need to be depleted entirely which is why change is needed in the first place.