Then I will make a transaction with a spend to myself and only broadcast that to the top four pools.
Who will then relay it to a 1,000 or so nodes. It is in a pools best interest to maintain a large # of connections to other nodes and pools to ensure a found block is propagated to a large portion of the network in one hop to win any block race.
A few milliseconds later I will, from another node with a copy of the same wallet, announce the double spend to a well connected node that is not one of those four with the hope that the transaction will get relayed to a node you happen to be connected to. It will then be a race -- will the original transaction from one of the four pools reach you first, or will your client see the double-spend transaction first?
Yes I understand the concept however your assumption is that the second well connected node will win a race against all the connections from 4 major pools despite 4 major pools having a headstart and win that race at a high enough frequency to offset the losses when a minor pool mines "my" tx anyways.
There are two competing tx
TX A = payment to your self
TX B = payment to me (which you intend to have reversed by A)
For the double spend to work you need:
1) TX A seen first by majority of hashing power/pools
2) TX B seen by enough nodes to propogate to me before the "path" gets blocked.
If #1 happens but not #2 then I never see a 0-confirm tx
If #2 happens but not #1 then I get "paid" (confirmed).
In an isolation attack you have a good chance of accomplishing both #1 & #2 but that wasn't discussed.
I wouldn't be surprised if following these steps that your client will show the double spend and the original transaction is what gets mined at least 33% of the time.
I am willing to try it out.
The key point being that #1 & #2 both happen for you to "win". Getting your tx into a block is easy but getting it into a block and me still seeing a 0-confirm is difficult.
I willl pay you 10:1 for anything you send to 17KBkkH3rfqTRUqV4mYD4XMFzy7GZ8y2Ai (newly generated address from my wallet) which shows 0-confirm but later is orphaned. Obviously anything you send here that isn't orphaned I keep.
![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif)