Curious about a network-based double-spending attack In their paper Two Bitcoins at the Price of One? Double-Spending Attacks on
Fast Payments in Bitcoin, Karame and Androulaki outline a particular race-attack that involves the slight control over a vendor's network connection (we need a direct connection to the vendor in this attack).  After reading it, I wondered why we couldn't connect more than one peer to the vendor.

Suppose an adversary A who owns many nodes on the network surrounds a vendor V so that V unbeknowingly is only connected to A.  That way, we could send a transaction to them, say, T_AV.  Then, when they broadcast that transaction to the network, they're just broadcasting it to the adversary, who would of course confirm the validity of T_AV.  In the meantime, so long as V isn't connected to the rest of the network they wouldn't know about the double-spend.  This would make for an attack that has feasible hardware requirements, and isn't hindered by fast transactions.

Am I missing something or would this attack work?  I'm also curious what kind of measures Bitcoin takes to prevent the controlling of someone else's connections, and what kind of counter-measures attackers have used to control someone else's connections, if any.
That sort of attack sounds definitely doable. But it's important to take into consideration the cost of this type of attack versus the cost of the thing that you're actually stealing (double-spending):


If you're buying something expensive, the vendor will most likely
require you to wait at least 2-3 confirmations, defeating the
possibility for this type of attack.
If you're buying something inexpensive, the vendor could probably accept unconfirmed transactions, opening the possibility for a double-spending attack. But as an attacker, it'll probably cost you more to pull off this kind of stunt than actually buying the thing.


In conclusion, this type of attack can probably be successful, but the costs outweigh the benefits.