Little can be done to thwart this attack. For instance, even if nodes limit the number of connections they accept (since the attack requires a direct connection to the victim), it is hard for nodes to ensure that all their current connections are trustworthy.
Moreover, nodes can try to filter the received inv messages by IP or can randomly (instead of sequentially) query the next peer after a time-out has occurred. However, an adversary that possesses several nodes at his or her disposal can easily thwart these countermeasures and flood the victim with inv messages corresponding to the desired transaction from a large number of nodes. Even if they randomly select the peer to query from the advertiser’s list, then the probability of consistently selecting the adversary can be considerable, depending on the number of nodes controlled by the adversary.
This shows the limits of synchrony in Bitcoin and motivates the need for a redesign of Bitcoin’s object request management system.
Figure 4.3 Transaction advertisement management system in Bitcoin.