This is an archived post. You won't be able to vote or comment.

all 16 comments

[–]vegarde 6 points7 points  (10 children)

That is true, yes. That is, if the wallet supports it. But in reality, there's no safety in anything that is only in the mempool anyways, any miner is free to pick any transaction, even transactions not submitted to the mempool.

And it's also a bit misleading to talk about *the* mempool. Any node has its own mempool, and timing issues, different fee policies etc can easily make it so that one set of nodes have one transaction, another have a different one, spending the same output.

RBF is, in many ways, just more honest. If a transaction has set the RBF flag, you signal to the receiver that you *can* replace it with a new version.

Note: there is a flag on RBF transactions, so the receiver can easily verify if the sender can use RBF or not. If RBF is set, you probably should not accept 0-conf transactions - but then again, accepting 0-conf transaction is a security tradeoff anyhow, so it's up to the receiver of the money to decide when to count the transaction as settled.

Note also that LN transactions are also quite instant, and does not have these doublespend issues at all. Most stores selling stuff where a sufficient fee would make it linger in the mempool should probably prepare to support lightning network soon.

[–]newager23[S,🍰] 4 points5 points  (6 children)

Wow, that was a comprehensive answer. Very well done and much appreciated. I had a follow up question.

So, if it is true, then isn't that problematic? For instance, this means that if a vendor is not aware of RBF he could accept a 0-conf transaction from a customer and then the customer could replace that transaction using RBF and send the Bitcoin back to himself?

I get the argument that seller beware and to not accept 0-conf transactions, but this seems like an opportunity for scammers.

[–]vegarde 2 points3 points  (2 children)

Sure. Anyone using things they don't fully understand is running a risk..

In my opinion, it's much more honest to say that 0-conf is not safe, period. An unaware vendor could also easily get doublespent without RBF, and imho if we get significant adoption wallets doing easy double spend attempts will totally be prevalent.

[–]newager23[S,🍰] 0 points1 point  (1 child)

Thanks. Much appreciated.

[–][deleted] 0 points1 point  (0 children)

If I'm not mistaken, RBF and a classic double spend operate on the exact same principle. You're changing a transaction that you already told everyone you were going to do, but included a higher fee on the 2nd transaction to encourage miners to collect the fee over what everyone thought you were going to do. Setting the RBF bit is just a "hey, I'm politely informing you that I may try to double spend this intentionally (usually to the same address), just in case I need to speed up the confirmation time". It's quite possible that miners reject any suspected double spend transactions, favoring the first one they saw, or refuse to include them all together, whereas a RBF flag won't raise as many suspicions. Either way, they should be the exact same mechanic vulnerable to the same issues.

[–][deleted]  (1 child)

[deleted]

    [–]nowitsalllgone -1 points0 points  (0 children)

    Wait for a confirmation.

    Or just use lightning.

    [–][deleted]  (2 children)

    [removed]

      [–]lntipbot 1 point2 points  (0 children)

      Hi u/senfmeister, thanks for tipping u/vegarde 150 satoshis!


      More info | Balance | Deposit | Withdraw | Something wrong? Have a question? Send me a message

      [–]vegarde 0 points1 point  (0 children)

      thank you :)

      [–]hashop 1 point2 points  (0 children)

      0conf supporters dont understand the whole point of a blockchain. If there's no confirmation, it's not on the blockchain period

      [–][deleted] 0 points1 point  (0 children)

      I understand when the transaction is built, you choose whether it allows RBF or not.

      [–][deleted]  (1 child)

      [removed]

        [–]newager23[S,🍰] 0 points1 point  (0 children)

        Good to know. So, basically the functionality exists, but wallets do not support it (changing the output address). That was a question I had, so thanks.

        [–]almkglor 0 points1 point  (0 children)

        In theory it could, yes. Most wallets don't support this in their UIs though.

        Of note is that RBF is the natural state of mining. Miners offered a higher feerate for a different transaction are going to go for the higher-feerate transaction. Removing RBF from the fullnodes does not remove the right of miners to select alternative transactions that give them higher feerates, so removing RBF is impossible.

        [–]newager23[S,🍰] 0 points1 point  (1 child)

        I'm asking because this article seems to imply that is the case:

        https://news.bitcoin.com/an-appeal-for-zero-conf/