Hey everyone,
Got a question and I'm hoping someone can shed some light on this.
So, a few days ago, I spotted a transaction on the network that shouldn't support RBF. Then today, I happened to open the same page on my phone, and I saw that the same transaction hash was swapped out. How is that even possible? The user must've used RBF, but the transaction in the mempool and on the blockchain showed RBF: NO. (It has the same input.) Check out this screenshot for the hash: (https://prnt.sc/Nzgznfu6C_aW)
And here’s the hash too. (9e8159d690b3390c78b8d5a759d2395ce22f7ae33a3425bfed82ce20238232ba)
Is there anyone here who can explain this?
Thanks a lot for taking the time to read and reply.
RBF Odd Observation
7 replies 119 views
Here are two possibilities.
1. The mining pool that included the replacement transaction didn't have the first transaction in its mempool and accepted the second transaction when they received it.
2. The mining pool that included the replacement transaction has enabled full RBF.
Any node that has enabled full RBF treat any transaction as RBF-enabled and accept the replacement transaction even if the original transaction has not been flagged as RBF.
And it may worth mentioning that RBF isn't a consensus rule. RBF is a policy and miners are free to include any valid transaction they want.
A miner can include a transaction paying zero fee even if there's an unconfirmed non-RBF transaction broadcasted earlier with a very high fee spending the same coin.
Your explanations are consistently legendary. Thank you very much for your response.
I know that miner can include any transaction available in the mempool but I don't get the point of a non-RBF TX with a high fee over the same coin with zero fee into the block because I thought increasing the fee (RBF) will void the old hash and will be rebroadcasted with a new signature so the TX which broadcasted later only should be available on the network right?
If you replace a transaction with a new one paying higher fee, nodes remove the first transaction from their mempool and it's the second transaction that will be probably included in the blockchain.
But there's nothing stopping a miner from including the first transaction.
Take note that as long as none of transactions have been confirmed, both are valid.
Nothing about RBF makes any of the transactions being replaced invalid.
When someone makes a replacement transaction, think of it as a brand new and completely separate transaction which just happens to spend (some of) the same coins. Because, well, it is. It is not the old transaction with a new signature - it is a completely different transaction. The old transaction is valid. The new transaction is also valid. Both remain completely valid and either can be mined, right up to the point where one of them is included in a block. Only at that point will the other transaction become invalid since (some of) the coins it spends will now have been spent elsewhere.
Thanks for the info, that leads to my follow-up question.
What are the odds of both transactions being included in the same block? If both transactions are valid then both transactions can be included in the same block too if the fee is used in the same range then what happens?
Zero. Such a block would be invalid, since it spends the same coins twice.
The default behavior of a node is never have two or more conflicting transactions in its mempool. When it accepts a replacement, it evicts the original. As such, it would never create a candidate block which contains two conflicting transactions. Should some mining pool edit their software and accidentally mine a block containing conflicting transactions, all other nodes on the network would reject it as being invalid.