Core adding full RBF is a change of node policy that may be highly inconvenient 
for zero-conf users, but there has always been and will always be a risk of a 
double-spend for anyone that treats zero-confirmation transactions as settled. 
It's literally in the name - this transaction has zero confirmations and no 
guarantee it'll make it into a block, and so has not yet settled.


The perception seems to be that Core adding the full RBF option is increasing 
the risk to zero-conf users, but I'm not convinced that that is the case - 
someone wanting to double-spend attack you isn't going to be bothered to do so 
over a few thousand sats (unless they can do it thousands of times), and losing 
a few thousand sats to a double-spend isn't the biggest deal.


It's always been the risk of getting double-spent out of hundreds or thousands 
of bitcoins that's worth seriously worrying about, which is much more the kind 
of attack a determined attacker is able to carry out. Such a determined 
attacker is much more likely to attempt and succeed at a sybil attack, or 
directly colluding with a miner. So your zero-conf risk increases non-linearly 
as the amount of bitcoin being transacted grows. (caveat: this paragraph is 
opinion).


There does, however, seem to be a legitimate business for providing 
insurance/risk management for people that are willing to accept the zero-conf 
risk - it is pretty similar to accepting credit cards with a chargeback risk or 
any payment card with a capture risk, though there's no-one to mediate a 
dispute. On-chain is final.

But what doesn't make any sense is trying to avoid Bitcoin Core and nodes from 
adopting a full RBF policy to try to protect this use case. As has been pointed 
out by may others before, full RBF is aligned with miner (and user) economic 
incentives and is a node policy, not consensus, so you can't even tell which 
nodes are doing it nor can you prevent them from doing so. Second, Bitcoin core 
24 with the full RBF option is already out in the wild at around 5%+ of running 
nodes and growing, so it's too late to kill it.


So my point is that relying on node policy as part of your protection for 
zero-conf transaction acceptance is fragile, and should not be relied upon. The 
protocol rules have always tacitly allowed double-spending before a 
confirmation, and it has always been clear that there's no consensus on which 
transactions have occurred until they have in a block and have at-least one 
confirmation.

The long-term 'what to do about it' is to use Lightning if you want fast 
payments with risk-free instant settlement, or as above, accept the zero-conf 
risk and cover yourself with an insurance premium (e.g. a margin on 
transactions that goes into an insurance fund, and limiting max transaction 
amount so you're not exposed to uncoverable losses if you do get double-spend 
attacked)




Angus

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev

Reply via email to