To explain better my question, consider this example:

  • Individual A is an investigator
  • Individual B is been investigated

Faking to be interested B's service, individual A gets B's public key to pay for his service.

As the system is opened for everyone to see the transactions, it is possible to track all the transactions that happened using that public key, and mainly it is possible to track all the transactions with that public key from now on.

In this case, the only way to be anonymous would be create a new pair of keys for every transaction, and never centralize the bitcoins, is it right?

2 Answers 2


If B give out his public key, then yes , A can track all public addresses related to that specific public key.

However public key is seldom used as an receiver address nowadays.
Normally B would give A his public address.
Generating a new key-pair is anonymous, but once that key-pair is used by B it is at most pseudonymous. B will need to take additional steps to be anonymous(like using stolen credit card for funding,VPN, bitcoin mixer, etc....)


A HD wallet (BIP32/44) uses a master private/public key to allow a new address to be generated for each transaction. As the address is a hash (one way function) of a child public key, it is not possible to use one Bitcoin address or even a child public key in isolation to identify all subsequent addresses. To do this the xpub (master public key) would have to be given out or an adversary would need to have the parent chain code for the child public key to start working back to the master keys.

Tracking a wallets transactions relies on a number of heuristics separate from the process of creating addresses. For example the common input heuristic is used to infer that all addresses used as transaction inputs are controlled by the same entity (entity has the private key to sign for all the inputs). Addresses are then clustered together and all transactions linked attributed to the entity in question.

Heuristics around the amount in a transaction are also used to cluster addresses together. For example if the outputs are very different in value, analysis software will look to categorise one as a change output belonging to the wallet used for the inputs.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.