It doesn’t have to be that way. If each public key is used exactly twice—once to receive a payment and once to spend that payment—the user can gain a significant amount of financial privacy.
I think the easiest explanation for you is using UTXO. I hope that I did not complicate my explanation.
Do you see the image in the link you quoted in OP?
Let's imagine that you download, install the Bitcoin Core, then run it and choose your first public key as your very first bitcoin receiving address.
I name it address A.
Then, you (user A) ask for sender (user B) to send 1 BTC to the address A. When you receive that 1 BTC in address A, it means you have 1 waiting UTXO with address A.
- User A (receiver): first Input
- User B (sender): Output *
*: The twice mentioned is explain from user B. If the amount of
BTC he sent to user A is not the total bitcoin he owned in that address (I assume he does that transaction with output from only one address). For example, he own 2
BTC in that address, and send to you only 1.
Consequently, he has 1
BTC left in that address as a new UTXO. Whenever he uses that UTXO (contains 1
BTC) for next transaction, your receiving address will be recorded for the second time on the network. Because that UTXO contains transaction history relates to your address A.
I meant, people can trace back transaction history of your address A:
- Directly: from your addres A.
- Indirectly: from address B (that has at least one transaction with address A)
An off-topic information:The balance you see in your wallet (Bitcoin Core or whatsoever bitcoin wallets), is the sum of all UTXOs from all address in your wallet.