Can I hide my IP address by blocking incoming connections in the client? I know that it is possible to find out the IP address of a transaction by connecting the client to every node in the network. Dan Kaminsky wrote: 


  When you are connected to every node, the first node to inform
  you of a transaction is the source of it.


So my question is: is it possible to hide my IP address by blocking incoming connections in the client? Or are there other ways to find out the IP address of a transaction?
Dan Kaminsky's deanonymization works by having a lot of probes in bitcoin network that collect data about how transaction propagate and than trying to localize it's source.

When packet travels in the network (Internet), it has to have source and destination IP addresses in it's header. Therefore when your bitcoin client sends transaction it has to wrap it into IP packet with your source address and destination address of the connected peer.

For one way communication it's theoretically possible to have random IP source address in a broadcasted transaction, but it would be still possible to deanonymize by knowing location of closest peers.

It would be easy to avoid deanonymization by using any kind of IP proxy, see this question.

P.S. The answer has some speculations because Dan Kaminsky didn't release the software yet.