<p>You are correct in thinking that there is only one private key for one public key (or rather that is one of the assumptions that ECDSA relies on). While technically it is possible for a Bitcoin address to have multiple public keys and therefore multiple private keys, this is extremely unlikely to occur as it requires a hash collision. Of course there are guaranteed to be addresses that have multiple public-private keypairs associated with them because there are more keypairs than addresses.</p>

<p>In practice, it is impossible for such a collision to occur so, for all intents and purposes, an address has only one public and private key. It is the same for BIP 32 HD wallets since the seed is used to generate the private keys for each address. There is no known mathematical relation between two child private keys so it is impossible to determine whether two public keys are derived from the same BIP 32 HD seed.</p>

<p>However, BIP 32 is not the only way to derive private keys as basically any string of 256 bits can be a private key. So people may be using other methods to generate their private keys, and those may have mathematical relationships between each other. So it is possible that this claim you have quoted refers to these other ways of generating private keys.</p>

<hr>

<p>Alternatively this person is simply incorrect and doesn't understand cryptography, or they are trying to scam you.</p>

CC BY-SA 4.0
2019-07-10T19:20:39.297Z
What about P2SH addresses? If i create some that are 1 of M, then one private key can control more than one address. Then is it possible to link those addresses together?
Albert S
CC BY-SA 4.0
2019-07-10T23:36:08.120Z
Note that not all P2SH addresses are multisig. In the case you describe, you can "link" them together by looking at the scripts of multiple multisig spends (the script containing the pubkeys are only visible when spent) and seeing if any share the same public keys.
Ava Chow
CC BY-SA 4.0
2019-07-10T00:24:12.110Z
2019-07-10T00:24:12.110Z
Ava Chow
<p>I have seen a claim as follows:</p>

<blockquote>
  <p>[We] apply algorithms to detect which bitcoin addresses are sharing the same private keys. In most cases, this leads to a high-level assertion of certain addresses to be owned and controlled by a single party</p>
</blockquote>

<p>is that possible?</p>

<p>What I'm thinking is one private key per one public key 
As far as i understand, HD wallets use a seed to create many private/public key pairs, but no two public key shares the same private keys.</p>

<p>Any pointers would be appreciated.</p>

<private-key><bip32-hd-wallets>
Linking Bitcoin addresses based on a private key - is that possible
Albert S
# Linking Bitcoin addresses based on a private key - is that possible

(Asked by: username_0 on 2019-07-09)

I have seen a claim as follows:

> [We] apply algorithms to detect which bitcoin addresses are sharing the same private keys. In most cases, this leads to a high-level assertion of certain addresses to be owned and controlled by a single party

is that possible?

What I'm thinking is one private key per one public key
As far as i understand, HD wallets use a seed to create many private/public key pairs, but no two public key shares the same private keys.

Any pointers would be appreciated.

**Tags:** private-key, bip32-hd-wallets


---

## 1 answers

### Answer by username_1 on 2019-07-10. Score: 3

You are correct in thinking that there is only one private key for one public key (or rather that is one of the assumptions that ECDSA relies on). While technically it is possible for a Bitcoin address to have multiple public keys and therefore multiple private keys, this is extremely unlikely to occur as it requires a hash collision. Of course there are guaranteed to be addresses that have multiple public-private keypairs associated with them because there are more keypairs than addresses.

In practice, it is impossible for such a collision to occur so, for all intents and purposes, an address has only one public and private key. It is the same for BIP 32 HD wallets since the seed is used to generate the private keys for each address. There is no known mathematical relation between two child private keys so it is impossible to determine whether two public keys are derived from the same BIP 32 HD seed.

However, BIP 32 is not the only way to derive private keys as basically any string of 256 bits can be a private key. So people may be using other methods to generate their private keys, and those may have mathematical relationships between each other. So it is possible that this claim you have quoted refers to these other ways of generating private keys.

---

Alternatively this person is simply incorrect and doesn't understand cryptography, or they are trying to scam you.

> **Comments:**
> **username_0**: What about P2SH addresses? If i create some that are 1 of M, then one private key can control more than one address. Then is it possible to link those addresses together?  
> **username_1**: Note that not all P2SH addresses are multisig. In the case you describe, you can "link" them together by looking at the scripts of multiple multisig spends (the script containing the pubkeys are only visible when spent) and seeing if any share the same public keys.  

---

