Public keys do not have to be hidden at all.
Firstly understand that a BTC "address" is *not* a public key - it is a RIPEMD hash of one (with a trailing checksum).
Your public key is revealed when you "spend" funds that were previously sent to one of your "addresses". Although this doesn't disclose your private key if the ECDSA algo that Bitcoin uses was to become "compromised" then any funds sent to addresses from which you've spent could also become unsafe.
So it is not recommended to re-use addresses (or if you do then sweep the funds to another address as quickly as you can).