Pages:
Author

Topic: Full RBF (Read 2271 times)

legendary
Activity: 2268
Merit: 18503
July 28, 2023, 07:25:18 AM
-snip-
On an individual level for simple transactions, then no, there is no difference for you between opt in or full RBF.

The main reasons for full RBF are explained in one of the mailing list posts I linked in the OP: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-June/019074.html

In short, full RBF eliminates a number of DoS attacks against multi-party transactions such as Lightning channels and coinjoins, therefore allowing further development of these technologies.
hero member
Activity: 840
Merit: 756
Watch Bitcoin Documentary - https://t.ly/v0Nim
July 28, 2023, 06:00:45 AM
If my wallet doesn't support RBF, there will be no option for me in software to increase the transaction fee. What's the point there?
The point there is to use a better wallet. Tongue Network rules are not bound or limited by third party developers failing to implement basic functions in their software. Being able to replace an unconfirmed transaction is an increasingly basic function of bitcoin. If your wallet does not allow you to do that, then find a better wallet which does.
If my wallet allows RBF and still it depends on me to use that option, then what's the point of full RBF over opt-in RBF?
Let's imagine we already have full RBF:
I download wallet X, it doesn't support RBF, so despite the fact that my transaction is marked as RBF enabled, I'm unable to use that option because of my bad wallet.
I download electrum, enable RBF and sign a RBF enabled transaction, I could use RBF yesterday and I can use it today, doesn't matter whether it's an opt-in option or not. If I want to use it, I can use it. It can probably benefit people who use Electrum but forgot to enable RBF but how common is that?
legendary
Activity: 2268
Merit: 18503
July 28, 2023, 05:56:20 AM
If my wallet doesn't support RBF, there will be no option for me in software to increase the transaction fee. What's the point there?
The point there is to use a better wallet. Tongue Network rules are not bound or limited by third party developers failing to implement basic functions in their software. Being able to replace an unconfirmed transaction is an increasingly basic function of bitcoin. If your wallet does not allow you to do that, then find a better wallet which does.

That sounds very logical! But kinda confusing for the nodes, wonder if it causes some kind of danger on network, something similar to double-spending.
The only danger is if you accept zero confirmation transactions. However, these have never really been safe to accept in the first place, but some businesses accepted that risk for the convenience they brought. Full RBF makes no difference to confirmed transactions.
hero member
Activity: 840
Merit: 756
Watch Bitcoin Documentary - https://t.ly/v0Nim
July 28, 2023, 05:45:59 AM
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.
If my transaction doesn't signals for RBF but nodes automatically convert it into RBF enabled transaction, how will I be able to use the RBF option? I mean, let's say that my wallet doesn't support RBF but as I understood, nodes mark all of them as RBF enabled. If my wallet doesn't support RBF, there will be no option for me in software to increase the transaction fee. What's the point there? Or did I misunderstood it?

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.
From my personal experience, every service that accepts transactions with 0 confirmation expects from you to pay high fee, enough to get confirmed in few upcoming blocks. If the fee was not enough, I always had to wait at least for one confirmation. Or in case of casinos, I was able to play with deposited amount despite the fact that it had 0 confirmation but I was unable to withdraw them at least till 1, 3 or 6 confirmation.
So, I think that won't be a huge problem if companies aren't able to accept zero confirmation transactions. At least when I have used that option, that was always formal, I don't really know if your experience is different. You have probably used more bitcoin services than me.

Here's the way I see it:

Let's say Alice does not enable full RBF, but Bob does. Carol broadcasts a transaction which is not opted in to RBF, which propagates to both Alice and Bob's mempools. Carol then broadcasts a replacement transaction. Alice, running the old rules, rejects the replacement transaction as a double spend, while Bob, running the new rules, accepts the replacement transaction as an RBF. Alice therefore has the old transaction in her mempool, while Bob has the new transaction in his.

At some point, one of these two transactions will be mined in to a block. Which one is mined will depend on a variety of factors, such as how many nodes are running the old or the new rules, how much hashrate sees the original transaction or the new transaction, the fees both transactions pay, which miner is lucky enough to find the next block, and so on.

Once the next block is found, then all nodes, regardless of which rule set they are using, will be able to validate the transaction which was included in the block, and if necessary, remove the other one from their mempools. If the original transaction confirms, full RBF enabled nodes like Bob will eject the replacement, and if the replacement confirms, full RBF disabled nodes like Alice will eject the original.
That sounds very logical! But kinda confusing for the nodes, wonder if it causes some kind of danger on network, something similar to double-spending.
legendary
Activity: 2268
Merit: 18503
July 27, 2023, 06:21:26 AM
In case anyone was unaware, mempool.space have implemented an RBF tracker which also tracks all full RBF replacements. You can find a ticker on the landing page, or the full view here: https://mempool.space/rbf

I'm also noticing a lot more full RBF replacements, as well as more mining pools including them, such as AntPool, F2Pool, and Binance pool.

You can read the discussion regarding this change here: https://github.com/mempool/mempool/pull/3867
legendary
Activity: 2268
Merit: 18503
May 07, 2023, 12:14:14 PM
if i am not wrong, first need cancel transaction, then apply new transaction with new higher fee ?
There is no need to "cancel" a transaction first, and indeed, there is no such thing as cancelling a transaction. All you are doing when you cancel a transaction via RBF is using RBF to replace the transaction with another one which sends the funds back to yourself. If you are then going to send those funds back out with a higher fee, then there is no need to send them back to yourself first. You can just directly replace the existing transaction with your new one.
member
Activity: 313
Merit: 34
May 06, 2023, 03:07:44 PM
if i am not wrong, first need cancel transaction, then apply new transaction with new higher fee ?
legendary
Activity: 2268
Merit: 18503
May 06, 2023, 05:56:30 AM
Is this possible with FULL RBF?
Yes.

I haven't heard of Full RBF yet, and i don't know if it's already implemented in Bitcoin.
You could try actually reading this thread. It is already implemented, but only a minority of miners have currently enabled it.

If it's possible, How to avoid double spending?
As I said above - pay a mining pool to include your transaction privately, so by the time it is public it is already confirmed.

As soon as you broadcast the transaction, it is not possible to prevent double spending.
member
Activity: 177
Merit: 14
May 06, 2023, 05:49:48 AM
Damn, that is actually right. The lowest puzzle is currently puzzle 66 stands at 6.6BTC.

With a normal GPU, it would take about 2000 years to complete the range and solve that puzzle, which is a lot of time.

But with Kangaroo algorithm, it would take literally no more than 2 mins to solve puzzle 66. (WITH KNOWN PUBKEY)

So if you're saying if someone solves puzzle 66 and transfer the coins to other address, someone else can double spend it and take the money for himself instead of the puzzle solver himself? Because once puzzle solver sends a transaction, he will reveal its public key, which other people will crack it back in a matter of seconds with Kangaroo

Is this possible with FULL RBF? I haven't heard of Full RBF yet, and i don't know if it's already implemented in Bitcoin. That is definitly interesting. Imagine working hard for 200,000$ and in the end someone else takes it with absolutely no effort at all, just sends a transaction with a higher fee.

If it's possible, How to avoid double spending?
legendary
Activity: 2268
Merit: 18503
May 06, 2023, 05:37:41 AM
People will watch the mempool, check for solved puzzle publickey, solve it quickly with pollard kangaroo and create a new transaction with higher fee.
Someone can already do this and pay a mining pool privately to include their competing transaction over the one in the mempool. Full RBF makes it easier, but it is already possible.

If you don't want the public key revealed, then you could also do the same and pay a mining pool privately to include your transaction.

I didn't understand what you mean exactly but when you send a transaction just set it to no RBF, and that's it. If someone attempts to send the coins again, it'll be flagged as a double spend and nodes won't broadcast it to miners
We are specifically talking about full RBF, not opt-in RBF.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
May 06, 2023, 05:28:08 AM
Unfortunately this is no good news for solving the lower bits puzzle transactions
Do you mean those puzzles? All the easy ones are long gone, and for the difficult ones it's not so likely different people will find the keys at the same time.

Assuming the extreme worst case scenario of a BRC20 spamstorm and the mempool gets clogged for 48 hours, it's not that big of a deal. Just slap a 200 sat/byte fee on the outgoing transaction and it will be confirmed within minutes, literally.  Not a problem since rewards are basically over 1 bitcoin by now, so $300 in fees is quite nothing by comparison. Smiley
With 200 sat/byte, it's only $12 in fees. But if someone manages to raise the fee, Kamoheapohea has a point.

It will be much more interesting what happens to leaked private keys when Full RBF gets implemented:
Things will get quite interesting once full RBF becomes commonplace. Any such transaction stealing coins from a brain wallet or leaked private key could be replaced by another transaction, regardless of whether or not is opted in to RBF or not. We could end up seeing different bots broadcasting more and more replacements, each paying a higher and higher fee, trying to steal the coins for themselves. Since there is no incentive for any one such bot to surrender and let another bot win, then such transactions could just escalate until the entire value (or close to it) is paid in fees.
I was curious about that scenario too. That would mean that (eventually) only miners profit from funds sent to addresses with leaked private keys.

just set it to no RBF
If only you would have read what this topic is about.
member
Activity: 177
Merit: 14
May 06, 2023, 05:02:51 AM
Unfortunately this is no good news for solving the lower bits puzzle transactions if I understand correctly:
If ALL unconfirmed transactions in mempool are RBF enabled there will an overbidding fight for lower bit-puzzles even if initial transaction has set "NO RBF".



I didn't understand what you mean exactly but when you send a transaction just set it to no RBF, and that's it. If someone attempts to send the coins again, it'll be flagged as a double spend and nodes won't broadcast it to miners
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
May 06, 2023, 12:01:26 AM
Unfortunately this is no good news for solving the lower bits puzzle transactions if I understand correctly:
If ALL unconfirmed transactions in mempool are RBF enabled there will an overbidding fight for lower bit-puzzles even if initial transaction has set "NO RBF".
People will watch the mempool, check for solved puzzle publickey, solve it quickly with pollard kangaroo and create a new transaction with higher fee.

Can someone confirm?

Assuming the extreme worst case scenario of a BRC20 spamstorm and the mempool gets clogged for 48 hours, it's not that big of a deal. Just slap a 200 sat/byte fee on the outgoing transaction and it will be confirmed within minutes, literally.  Not a problem since rewards are basically over 1 bitcoin by now, so $300 in fees is quite nothing by comparison. Smiley
newbie
Activity: 28
Merit: 9
May 05, 2023, 08:45:59 AM
Unfortunately this is no good news for solving the lower bits puzzle transactions if I understand correctly:
If ALL unconfirmed transactions in mempool are RBF enabled there will an overbidding fight for lower bit-puzzles even if initial transaction has set "NO RBF".
People will watch the mempool, check for solved puzzle publickey, solve it quickly with pollard kangaroo and create a new transaction with higher fee.

Can someone confirm?
legendary
Activity: 2268
Merit: 18503
May 05, 2023, 07:10:46 AM
So with the recent surge in transaction fees and backlog of unconfirmed transaction, there has been a definite increase in the number of full RBF replacements being mined.

While previously we were maybe seeing 3-4 a day, there are now upwards of 20 a day. I'm also seeing more starting to appear in blocks being mined by F2Pool, in addition to those being mined by Luxor.

As before, you can check it out for yourself here: https://fullrbf.mempool.observer/
newbie
Activity: 4
Merit: 51
January 11, 2023, 12:37:37 PM
Great! getmempoolinfo works, thanks!
legendary
Activity: 2268
Merit: 18503
December 28, 2022, 05:19:13 AM
Does anyone know of any command for bitcoind to check whether the Full RBF option is enabled? I just want to get confirmation.
getmempoolinfo should do it. As of 24.0.0, this now includes a field entitled "fullrbf" which returns true or false depending on if you have enabled full RBF.

And although I've not tried it, the next time you make a transaction you could ensure it is opted out to RBF and then you should be able to use testmempoolaccept to test whether or not your node would accept a replacement. Or, you know, just actually broadcast a replacement and see that it works.

Alternatively, you could also take a look here: https://fullrbf.mempool.observer/. Find a transaction which as been replaced but neither the original nor the replacement has been mined yet, and then use getmempoolentry to see if the replacement is in your mempool.
newbie
Activity: 4
Merit: 51
December 28, 2022, 12:45:26 AM
After reading a great recap on the matter, I just activated Full RBF on Core 24.0.1 (by adding mempoolfullrbf=1 to bitcoin.conf)

Does anyone know of any command for bitcoind to check whether the Full RBF option is enabled? I just want to get confirmation.
legendary
Activity: 1344
Merit: 6415
Farewell, Leo
December 26, 2022, 07:37:47 AM
But like what you posted, "most people" don't care about privacy, and validating their own transactions in the network, and actually use Bitcoin.
And that's fine. If you don't want privacy and security, you can stick with SPV. I don't judge you. Running a full node provides minimum to zero contribution to the network; it's rather a personal gain. I'm not gonna force you do something for your own good.

The incentive structure is what made Bitcoin actually is today, although some altruism was required to boot-strap the network.
There's enough incentive for the merchant to run both a full node and a lightning node right now. For the former to sleep easy, and for the latter because their clients demand so. Also, you can't have the latter without having the former.
legendary
Activity: 2898
Merit: 1818
December 26, 2022, 07:17:46 AM

If there's an incentive to run a node, then I believe more people will run one.



There's not enough incentive for that. Running a full node ensures you privacy and security, but mainly privacy. Since most people don't care about that, they'll just stick with SPV (which grants them self-custody and security; the significant parts for most). If we want most people to have a full node running, then we should focus on education and on incentivizing for privacy appreciation.


But like what you posted, "most people" don't care about privacy, and validating their own transactions in the network, and actually use Bitcoin. But if it was possible for a monetary incentive structure placed in Bitcoin for people to their own run full nodes, then "most people" would be making special effort to run one. Cool

The incentive structure is what made Bitcoin actually is today, although some altruism was required to boot-strap the network.
Pages:
Jump to: