Since each double spend, from its perspective, is a valid transaction, they are equally likely to be selected as tips. How will multiple parties agree for certain which one has confirmed, in a timely and deterministic fashion?
In every DLT, a transaction have a probability to be valid. (In Bitcoin, a transaction is valid as long as it is written in the longest chain, so the probability for your transaction to be invalid is the probability that a longer chain exists somewhere without your transaction).
In a blockchain like Bitcoin: 2 conflicting transactions cannot be in the longest blockchain.
In the tangle it is fundamentally different: 2 conflicting transactions can be in the tangle. It is not a problem because only one of them will eventually be seen as valid.
The probability for a transaction to be valid is equals to the proportion of tips validating the transaction (directly or indirectly). I created some illustrations to explain how a double spend is detected. Let's start with a tangle without a conflict:
Now if you introduce conflicting transactions (X and Y) in this tangle we will have this :
When we add more transaction, the conflict will be detected and kind of split in the tangle will occurs:
And the split will be resolved by eventually making the red part orphan.
In this example, the tangle choose Y as valid, fundamentally this decision was random, but once this decision is taken it become practically impossible to revert it.
Regarding the time to detect, you can figure out that it depends on:
- the number of new transactions
- the average "width" of the tangle
Great answer. Are those diagrams self-created?– HelmarJan 1, 2018 at 12:50
5yes, I have some free time these days ;) Jan 1, 2018 at 13:11
1For both questions : yes. Jan 1, 2018 at 21:10
1Can I use your diagrams on iotaprices.com ? I'll credit you, of course.– jabmanJan 2, 2018 at 17:00
1@jabman Thanks for asking :) and yes you can use them as long as you respect the terms of the stackexchange licence. Mainly "proper attribution is required" Jan 2, 2018 at 22:11
Generally speaking, the double-spend which is directly and indirectly referenced by more transactions (i.e. has a larger cumulative weight) will most probably get confirmed. This is because more nodes will have accepted that double-spend and will thus impose their consensus on the rest of the network (eventually) by simply ignoring/orphaning the other double-spend. Note that I am talking probabilistic terms.
One could compare this to bitcoin where the longest chain will always prevail.
1Doesn't this bring up the annoyance someone can cause by simply issuing double spend transactions to delay confirmations of valid transactions? Or am I missing something here. Jan 5, 2018 at 16:31
wouldn't those double spend transactions have to each compute two other transactions? (I can't say I understand this at all, so take my comments with a grain of salt) It seems like issuing more transactions would speed up the confirmation of valid ones, right? Jan 6, 2018 at 7:09