Bitcon transaction verify I'm trying to understand verifying Bitcoin transaction but I can't find this part anywhere. Summary, the process before forming blocks. My questions is:

1) When I send transaction, who validates it ? Here I think, who can check and found that I haven't got enough money in my wallet. Example; I send 100 BTC but I have only 50. 
The problem is bigger because in my prior transactions, refund come back on "new" wallet and who can trace all my wallet to sum how much I have in that situation. I don't speak here on double spending. I understand that part. 

2) Can one transaction go by mistake in two blocks, and who prevents this ?
1) When i send transaction who validate it ? Here I think, who can check and found that I haven't got enough money in my wallet. Example; I send 100 BTC but I have only 50.


All full nodes validate every single block and transaction they receive. Once a node validates each block and transaction, the block or transaction is forwarded to the nodes that it is connected.

A number of things are checked to ensure that a transaction is legitimate. One of the things checked is the sum of the outputs being spent (i.e. the inputs) is greater than or equal to the sum of the outputs being created. It does this by looking up the outputs that are being spent. Presumably the transactions that those outputs were a part of has already been validated and the node remembers that it determined that transaction to be valid. So when it sees your invalid transaction, it will immediately see that the sum of the outputs being created is greater than the sum of the outputs being spent, which means it is invalid. Your transaction will then be marked invalid and rejected.


  2) Can one transaction go by mistake in two blocks, and who prevent this ?


No, a transaction cannot go in two blocks. This is prevented by full nodes which validate every single block and transaction they receive.