If I use a hierarchical deterministic (HD) wallet, like Electrum, I get a huge number of addresses.
Obviously each address has to correspond to a public key, and also each public key has to correspond to a private key.
I understand that there is a well ordered sequence of private keys and similar well ordered sequence of public keys. The child key in this sequence is derived from the previous, parent key.
They all lead back to just one original public key and just one original private key.
Now the question:
Say I pick up a random address from the pool of addresses that my wallet has generated. I use it to pay something.
Say I choose another address and use it to pay for something else.
Is there a direct way to correlate these two addresses?
Is there a way to tell that they are from the same wallet?
Is there an indirect way to do the same?
What's the best practice as far as privacy is concerned when using your HD Wallet generated addresses?
Is it enough to pick a new address every time?
Thank you in advance!
If there is no connection between the two adresses (no linked inputs) then no, it shouldn't be possible to connect the two to each other.
If however, for example the change of adress A goes to adress B, it could indeed prove a correlation. ( Which is unlikely since change -> change adress. )( Or if the change from A and B both go to change adress C.)
Is there a way to tell that they are from the same wallet?
Without any shared inputs or outputs, i don't think so.
See
https://bitcoin.stackexchange.com/questions/7447/is-it-possible-to-figure-out-whether-two-addresses-are-in-the-same-wallet?noredirect=1&lq=1What's the best practice as far as privacy is concerned when using your HD Wallet generated addresses?
Make sure that you don't combine inputs, and use a new change adress for every transaction that you make from another "Receive" adress.
Also:
Obviously each address has to correspond to a public key, and also each public key has to correspond to a private key.
I understand that there is a well ordered sequence of private keys and similar well ordered sequence of public keys. The child key in this sequence is derived from the previous, parent key.
They all lead back to just one original public key and just one original private key.
What do you mean by all? The adresses?
From my understanding; they don't "lead" back, but are rather just generated from one keypair. I don't think it is a two way function, so there's no way to get the MPK with just a child private key.