I try to understand doublespend and organize this in my head. This is how I currently see it:
There are basically two different types of double spends people are talking about.
1. The synced doublespend. The spender broadcast two transactions at the same time, one probably on the other side of the world. All nodes, miners included, disagree which was broadcasted first.
2. The RBF doublespend. The spender broadcast a second transaction with a higher tx fee after the first payment. After almost every node has seen the first tx, but before a new block is mined. A miner might choose to prioritize this tx and include it in his block because of the higher fee.
Is this the right perspective?
We need to have a terminology when we talk about these problems. We need the words.
If I have understood this correctly, I suggest people use the terms "synced doublespend" and "RBF doublespend" when we discuss.
I completely agree with this categorization. In my own articles I called it "the race attack" and the "Peter Todd attack", but we mean the same.
I also agree with you that I'm sceptical of another workshop that only is about the first attack, which is basically eliminated by Double Spend Relaying.
After all, I think you are wasting time and energy for a problem, that is in most cases not a problem at all, and can not be solved completely, no matter what you do.
Every business is ok with a reasonable amount of double spend. In every shop and supermarket and bar people steal things or don't pay for drinks. That is business as usual, and the risk is calculated. As long as such a vulnerability can not be
systematically and commercially exploited double spends of instant transactions are not a problem at all. This leaves us with a few application in which it matters: ATMs, exchanges, ShapeShift, Satoshi Dice, physical gold merchants, maybe gift card sellers. The whole rest - supermarkets, bars, online-shops, online-services - can ignore it completely.
With the payment system I built for my book, I confirm every order once I see a transaction. This happens in one or two seconds. Before I ship the book, I just check a blockexplorer if the transaction is finalized. Never had a problem with it, never detected a double spend attempt.
So, you are building for a few use cases. For most of it you can't solve the problem, no matter what you do, because once a miner is actively involved in the double spend, you can only prevent it with two methods: Lightning or CSW's mining cartell. Everything else can harden it, can make it more difficult to perform a double spend, can make it easier to calculate risks. There is not so much to win. You never get exchanges with big volume to accept 0conf; most don't even accept 1conf, but wait for 3 or 6 confs.
I totally disagree with putting too much energy in this. We already have too much fighting in Bitcoin Cash, about every brainfart of everybody, and the issue of double spends doesn't need this kind of attention. It also doesn't need complicated structures like weak blocks or pre-consensus (sorry, I love your work, Peter and Awemany, but in this case I have to oppose), which increase complexity for gaining not so much.
However, I highly welcome Double Spend Relay. It doesn't make RBF attack so much more dangerous (miners need to adjust their software to cancel first seen, and if they do this to profit from fraud, they can easily set up an xt node or use existing XT nodes). On the other side, Double Spend Relay has two extremely valuable pros:
1. It totally eliminates the "synced doublespend". A synced doublespend can be countered with several node or by trusting a couple of block explorers. With low cost infrastructure it is very hard to counter it. Double Spend Relay helps a lot to make it possible for low infrastructure to not mind about this attack.
2. It allows to collect extremely valuable data about the chances of certain transactoinal patterns to be double spent. This makes it very easy to write software that has a high probabilty to detect risky transactions.
The whole fight about this is silly. It makes me really sad to see this.
Did Amaury just ragequit Bitcoin Cash?
In the end, I stand strong with Bitcoin Unlimited, and I'm proud of being a member of this group, which seems to have the onliest reasonable leaders in this space and is able to quietly and constructively cooperate with other implementations like XT. No NIL, no Ego clash, just cooperation. Thank you Andrew, Andrea, Peter, Awemany and everyone else.