RBF, acronym for “fee replacement transactions” is a tool in Bitcoin (BTC) that allows you to “unlock” money transfers that have not been confirmed. It is achieved by increasing the cost per fee.
Currently this tool is optional. However, developer Jeremy Rubin has taken up a discussion in which he proposes make RBFs enabled by default on all Bitcoin transactions.
The original idea was raised by programmer Antoine Riard in June 2021, as reported by CriptoNoticias, at the time. However, such a proposal it contained certain limitations that made implementation impractical, until these were resolved.
Six months after the first discussion, Rubin proposes place a kind of counter that prevents two simultaneous transactions from being sent until they have completed a 10-minute wait between one and the other (this is, approximately, the time it takes to mine a block of Bitcoin).
In other words, it will be impossible for a malicious user to send two transactions almost immediately, until the counter time is up.
As highlighted by the Article of Bitcoin Optech that takes up this proposal, Rubin’s counter could be added to Riard’s proposal for a “watchtower” that verifies transactions. In this case, 10 minutes is considered to be sufficient time to detect any irregularities.
What would be the default RBF profit on Bitcoin?
The advantages of this type of tool are in the reduction of waiting times in times when the network is congested. For example, in May 2021, Bitcoin experienced the highest period of difficulty in its history, which coincided with the drop in the hash rate after China’s veto on mining. That led to a congested network.
In scenarios like this, using RBF can be beneficial, since it reduces waiting times, and prevents a transaction from being stuck until it is confirmed, or is “purged” from the mempool, whose process can take up to 14 days, which the funds will be blocked, without being able to use them.
Why is RBF not yet available by default?
The main reason why this proposal is not activated by default on the network is the potential it implies for double-spending attacks. Because some merchants accept payments with 0 network confirmations, many choose not to receive payments in Bitcoin marked with RBF.
Under the RBF standard, a user can deceive the network by sending a transaction with a very low commission, and immediately send another, with RBF, changing the destination address, but using the same funds with a higher commission.
In this scenario, the transaction with the highest commission will be the first to be confirmed, leaving the other as an invalid transaction because the BTC has already been spent. This type of attack is known as a DoS attack.
Of course, these types of scams can only occur in a congested network with high mining fees. In a network with little movement, as has happened in recent months, transactions with the lowest commissions (1sat / Byte) are confirmed in the first block to go out, due to the low volume.
It should be clarified that to be able to do something like this requires great technical knowledge, since wallet applications for basic users they do not allow two RBF transactions to be sent by changing the destination address.
The proposal still has its objections
Antoine Riard, creator of the original proposal, commented that Rubin’s idea seems “new” to him but that he is not sure it will solve the dilemma of a DoS attack. This is because the malicious counterparty can share the transaction before making the original payment to the merchant.
Like he did in the original proposal, Riard urges using an expense outflow tracking system. This basically, would verify that the UTXO to be used in a transaction are no longer in the mempool, thus preventing the merchant from accepting transactions that could compromise the payment.
At the moment, the discussion has not changed from being a proposal, since a real version has not been reached that could be considered as a candidate to be implemented in the source code of Bitcoin.