<blockquote>
  <p>The bunch of input addresses (usually) come from a single HD wallet.</p>
</blockquote>

<p>That's one possibility.  It could also be that they come from a non-HD wallet, so that they correspond to a bunch of independently generated private keys that happen to belong to the same person.  Or they could all belong to different people, who have agreed to combine their coins and send them somewhere.  There's no way for us to know for sure.</p>

<blockquote>
  <p>a transaction input address is hierarchically derived from the previous one</p>
</blockquote>

<p>That's not completely correct.  A public key in an HD wallet is derived from the previous one <strong>together with</strong> the master extended public key.  Unless you know the master key (which would normally be kept secret), you can't determine what the next key in the sequence would be.  Hence you cannot find out what other keys / addresses belong to that user.</p>

<p>The complete technical details of how key derivation is done are in <a href="https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" rel="noreferrer">BIP 32</a>.</p>

CC BY-SA 3.0
2017-12-12T17:43:06.387Z
2017-12-12T17:43:06.387Z
Nate Eldredge
<p>For example, see this transaction:
<a href="https://blockchain.info/de/tx/517c634fcf802bb8114516bc32718acf8a4e360decb7d93859e913f958d7bb6d" rel="nofollow noreferrer">https://blockchain.info/de/tx/517c634fcf802bb8114516bc32718acf8a4e360decb7d93859e913f958d7bb6d</a></p>

<p>In my understanding, the bunch of input addresses (usually) come from a single HD wallet. I.e. a transaction input address is hierarchically derived from the previous one and so on. Is this true for every transaction? What else could be a reason for multiple input addresses?
Is there any way/method/ready-to-use-script that I can input with some address from an HD wallet and that generates a series of child addresses?
Say, I know some (hierarchically older) address of the user who sent this transaction. This method would allow me to compare the thus generated child addresses against the input addresses visible in the transaction. Hence, if there is a match, I would be able to link this transaction to this particular user. Is this train of thoughts correct?</p>

<transactions><address><bip32-hd-wallets><input>
Why are there multiple input addresses in one transaction and are they linkable to one single address?
dsayx
# Why are there multiple input addresses in one transaction and are they linkable to one single address?

(Asked by: username_0 on 2017-12-12)

For example, see this transaction:
<https://blockchain.info/de/tx/517c634fcf802bb8114516bc32718acf8a4e360decb7d93859e913f958d7bb6d>

In my understanding, the bunch of input addresses (usually) come from a single HD wallet. I.e. a transaction input address is hierarchically derived from the previous one and so on. Is this true for every transaction? What else could be a reason for multiple input addresses?
Is there any way/method/ready-to-use-script that I can input with some address from an HD wallet and that generates a series of child addresses?
Say, I know some (hierarchically older) address of the user who sent this transaction. This method would allow me to compare the thus generated child addresses against the input addresses visible in the transaction. Hence, if there is a match, I would be able to link this transaction to this particular user. Is this train of thoughts correct?

**Tags:** transactions, address, bip32-hd-wallets, input


---

## 1 answers

### Answer by username_1 on 2017-12-12. Score: 6

> The bunch of input addresses (usually) come from a single HD wallet.

That's one possibility. It could also be that they come from a non-HD wallet, so that they correspond to a bunch of independently generated private keys that happen to belong to the same person. Or they could all belong to different people, who have agreed to combine their coins and send them somewhere. There's no way for us to know for sure.

> a transaction input address is hierarchically derived from the previous one

That's not completely correct. A public key in an HD wallet is derived from the previous one **together with** the master extended public key. Unless you know the master key (which would normally be kept secret), you can't determine what the next key in the sequence would be. Hence you cannot find out what other keys / addresses belong to that user.

The complete technical details of how key derivation is done are in [BIP 32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki).


---

