<p>No one can tell whether two addresses were generated from the same HD seed or generated by the same wallet. The process is designed to produce addresses in a way that is mathematically indistinguishable from completely random processes.</p>
<p>It is only when you create a transaction that involves both addresses that people may be able to begin to make inferences about the posssible relationships of those addresses.</p>
<hr />
<p>For the most common types of transactions, every new address corresponds to a new pair of public key and private key. Early wallets generated a new pair randomly but HD wallets (Since BIP-32 adoption) generate them deterministically. In either case the actual keys and associated addresses are indistinguishable from random numbers and no association can be determined between different private keys, between different public keys or between different addresses. You cannot discover a private key from a public key. You cannot determine, from the keys alone, whether two public keys were generated by a common source or from common source material.</p>

CC BY-SA 4.0
2023-05-31T11:19:24.370Z
Yes, but that would not be a "technical proof". Say you move coins from address A to B and claim they are no longer in your hands, then you move them to address C, isn't the public key at that point known for both addresses, and if it's the same, it's easy to tell that address A and B belong to the same wallet?
codepleb
CC BY-SA 4.0
2023-05-31T11:54:21.223Z
@codepleb:  For a given address-type, every distinct address has a different public key.
RedGrittyBrick
CC BY-SA 4.0
2023-06-01T11:25:17.020Z
Ok that cleans up a lot of things. If you do transactions from A to B to C to D... Will your security become weaker, if an attacker might know if those belong to the same private key? Meaning, will it be easier for them to "reverse engineer the private key"? Meaning that it might be easier and easier, the more public keys you have, to find the private key behind it. Or is that wrong?
codepleb
CC BY-SA 4.0
2023-06-01T14:59:26.523Z
@codepleb: No. A,B,C & D also have different private keys. So far as I know, knowledge of A,B,C & D is no help in finding any corresponding private keys and no help in finding the master private key of an HD wallet.
RedGrittyBrick
CC BY-SA 4.0
2023-06-02T07:24:59.483Z
What? They have different private keys? You mean that the "seed" will generate new private keys each time you generate a new address or something like this? And I'm sure that might count for modern wallets, but was that always like that? Never heard that this is the case.
codepleb
CC BY-SA 4.0
2023-06-02T08:37:23.703Z
https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki. Yes, address re-use has been deprecated over a decade now.
RedGrittyBrick
CC BY-SA 4.0
2023-06-02T09:34:54.240Z
Oh and yes, in ancient/obsolete versions of Bitcoin wallets, a new address meant (randomly) generating a new private-key public-key pair.
RedGrittyBrick
CC BY-SA 4.0
2023-06-02T12:03:09.793Z
About address reuse I knew. Didn't know that a seed will actually spawn multiple private keys. ö.ö thanks
codepleb
CC BY-SA 4.0
2023-05-30T07:30:28.243Z
2023-06-02T09:47:27.643Z
2023-06-02T09:47:27.643Z
RedGrittyBrick
<p>If I have my coins on address A, send it to address B from the same private key, is anyone able to say &quot;these two addresses belong to the same wallet&quot; with certainty? Because of the public key that would be the same?</p>
<p>Or can that only be done, as soon as the first time, coins move away from address B?</p>

<bitcoin-core><address><public-key>
Can addresses be linked to "wallets"?
codepleb
# Can addresses be linked to "wallets"?

(Asked by: username_0 on 2023-05-30)

If I have my coins on address A, send it to address B from the same private key, is anyone able to say "these two addresses belong to the same wallet" with certainty? Because of the public key that would be the same?

Or can that only be done, as soon as the first time, coins move away from address B?

**Tags:** bitcoin-core, address, public-key


---

## 1 answers

### Answer by username_1 on 2023-05-30. Score: 2 | Accepted answer

No one can tell whether two addresses were generated from the same HD seed or generated by the same wallet. The process is designed to produce addresses in a way that is mathematically indistinguishable from completely random processes.

It is only when you create a transaction that involves both addresses that people may be able to begin to make inferences about the posssible relationships of those addresses.

---

For the most common types of transactions, every new address corresponds to a new pair of public key and private key. Early wallets generated a new pair randomly but HD wallets (Since BIP-32 adoption) generate them deterministically. In either case the actual keys and associated addresses are indistinguishable from random numbers and no association can be determined between different private keys, between different public keys or between different addresses. You cannot discover a private key from a public key. You cannot determine, from the keys alone, whether two public keys were generated by a common source or from common source material.

> **Comments:**
> **username_0**: Yes, but that would not be a "technical proof". Say you move coins from address A to B and claim they are no longer in your hands, then you move them to address C, isn't the public key at that point known for both addresses, and if it's the same, it's easy to tell that address A and B belong to the same wallet?  
> **username_1**: @username_0:  For a given address-type, every distinct address has a different public key.  
> **username_0**: Ok that cleans up a lot of things. If you do transactions from A to B to C to D... Will your security become weaker, if an attacker might know if those belong to the same private key? Meaning, will it be easier for them to "reverse engineer the private key"? Meaning that it might be easier and easier, the more public keys you have, to find the private key behind it. Or is that wrong?  
> **username_1**: @username_0: No. A,B,C & D also have different private keys. So far as I know, knowledge of A,B,C & D is no help in finding any corresponding private keys and no help in finding the master private key of an HD wallet.  
> **username_0**: What? They have different private keys? You mean that the "seed" will generate new private keys each time you generate a new address or something like this? And I'm sure that might count for modern wallets, but was that always like that? Never heard that this is the case.  
> **username_1**: https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki. Yes, address re-use has been deprecated over a decade now.  
> **username_1**: Oh and yes, in ancient/obsolete versions of Bitcoin wallets, a new address meant (randomly) generating a new private-key public-key pair.  
> **username_0**: About address reuse I knew. Didn't know that a seed will actually spawn multiple private keys. ö.ö thanks  

---

