Post
Topic
Board Development & Technical Discussion
Merits 55 from 21 users
Topic OP
Full RBF
by
o_e_l_e_o
on 23/06/2022, 08:11:04 UTC
⭐ Merited by Welsh (8) ,hugeblack (6) ,NotATether (5) ,hosseinimr93 (4) ,1miau (4) ,LoyceV (4) ,ETFbitcoin (3) ,pooya87 (3) ,vapourminer (3) ,NeuroticFish (2) ,TryNinja (2) ,favebook (2) ,BlackHatCoiner (1) ,DireWolfM14 (1) ,dkbit98 (1) ,Husna QA (1) ,n0nce (1) ,vv181 (1) ,DdmrDdmr (1) ,hd49728 (1) ,JayJuanGee (1)
Looks like full RBF will be coming to bitcoin sooner rather than later, and I've not seen any discussion about it yet on the forum.

Here are some relevant links and discussions:
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-June/019074.html
https://lists.linuxfoundation.org/pipermail/lightning-dev/2021-May/003033.html
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-June/020557.html
https://github.com/bitcoin/bitcoin/pull/25353
https://github.com/bitcoin/bitcoin/pull/25373

The TL;DR for anyone out of the loop is to implement a new setting for nodes, so that the node treats all unconfirmed transactions in its mempool as RBF enabled, regardless of whether or not that transactions signals for RBF. The default behavior (for now) will be to have this setting disabled, so the current opt-in RBF rules will apply, but nodes will be free to enable this setting and switch from opt-in RBF to full RBF if they choose.

There are a number of good reasons to do this, including benefits and more security for multi-party funded transactions including coinjoins, Lightning, and other layer 2 solutions. However, it also essentially stops any business from accepting zero confirmation transactions for small values, since all transactions (even those opted out of RBF) could potentially be replaced using RBF.

I'm also curious as to what is going to happen when (for example) 50% of nodes have enabled full RBF, 50% of nodes have not enabled full RBF, and I try to replace a transaction which is opted out of RBF. What about if I'm using a hot wallet and not my own node? Will I have to connect to different servers to find one which will relay my replacement transaction? And then presumably some block explorers will show the original transaction while some will show the replacement, and I'll have no idea which one will actually get mined until one of them is mined?