Skip to main content
1 of 6
lex82
  • 1.1k
  • 7
  • 18

How does they system sustain regular low-effort splitting attacks?

The whitepaper focuses mainly on attacks in which an attacker tries to double-spend. So the section about the splitting attack examines the case that an attacker tries to effectively create two forks of the tangle and spend tokens in both branches.

However, what about an attacker who only wants to sabotage the network and who does not care about whether the network will eventually agree which of the conflicting transactions he issued is to be accepted (or if both of them are abandoned also mentioned in the whitepaper)?

In a large tangle (and it is supposed to be huge!) conflicting transactions slipped into the network at different places spread widely before they are recognized as such by a majority of the nodes. The whitepaper (on page 25) explicitly states "It is worth noting that the attacker’s task [i.e. trying to balance the two forks to maintain the split] is very difficult because of network synchronization issues: they may not be aware of a large number of recently issued transactions". Unfortunately this seems to be true for every well-behaving node in the network as well.

A node validating transactions cannot know for sure if conflicting transactions were issued somewhere else in the network so the attacker's transactions will inevitably be confirmed frequently before being dismissed. This means that approximately half of the transactions confirming the attacker's transaction will end up being invalid themselves.

The whitepaper argues that such conflicts will be resolved eventually. Maybe this is the case, but resolving the conflict can mean a significant effort and delay. Many transactions would have to be reissued because they built on the part of the tangle that ends up abandoned. For someone issuing an urgent transaction it would be risky in a sense to confirm two tip transactions because they are more likely to turn out contradicting others. On the other hand, the attacker needs only minimal effort but forces the network to do a lot of unnecessary work.

The only option I see is to isolate the malicious nodes issuing the conflicting transactions from the network through the transaction routing protocol. However, I don't understand how that would be possible given the network topology. Maybe I'm missing a simple solution. Are there any resources on this kind of attack and appropriate countermeasures?

lex82
  • 1.1k
  • 7
  • 18