thank you for your answers, I understand what you say, but when I send a transaction on the network I've understood that i also send my public key because I've signed the transaction with my private key and so everyone had to check the transaction with my public one.
So everyone can know my public key, it is not true?
No. You sign a transaction when you spend the output, not when you receive it. Therefore, when you give out a new bitcoin address, the sender does not know your public key, and does not need to know your public key. They just send the output to the RIPEMD-160 hash (bitcoin address) that you provide them.
The unspent output then remains unspendable until someone with the private key can provide a valid signature. It is only when you spend that output that you then sign the transaction that spends it and include the public key for the network to verify the signature. However, once you broadcast that transaction with the signature, the output is spent and no longer available for anyone to take if there is a weakness in ECDSA.
This is one of several reasons why bitcoin addresses are not supposed to be re-used. If you re-use a bitcoin address for receiving more than one transaction, then any unspent outputs that are still associated with the bitcoin address after the public key has been broadcast become susceptible to attack if ECDSA is ever weakened. If you use a new address for EVERY transaction, then you aren't exposed to this risk.
Maybe I've don't understood how transactions work. If it works in this way the problem still remains and using an address doesn't hide the public key.
Perhaps you understand better now?