1. Don't re-use addresses
2. Don't spend from the same UTXO or address more than once
-snip-
Title Correction: public addresses keys
Another correction: #2 should be rephrased because a UTXO can only be spent once while an address (
pubKeyhash) can be associated with multiple UTXO.
As its acronym means "
Unspent Transaction Output", it's pointing to a specific unspent output of a transaction and not the pubKeyhash itself.
Removing "
...UTXO or..." should be good enough because the new meaning could mean: to spend all of the address' UTXO if it's used to receive more than once.
Then to pair that with #1, do not use it again to receive bitcoins after spending.
So is there a way to check if any of your public addresses have been exposed
(ie: in your Sparrow wallet, or other way to do it?)
That depends on the wallet that you're using.
Some only requires you to check the address list, some requires you to check every address' history for "
outbound" transactions.
In Sparrow for example, you can go to its 'Addresses' tab and look for addresses that can be expanded (
">" button).
That indicates that it has transaction history, from there, check if it has an expandable "
Receive from" transaction which mean that there's a "
Spent by" transaction that spent it.
The gist is, if it's used to send at least once, its public key is already exposed.