If I understand well, what you describe is one of the characteristics of HD wallets: a single seed allows you to generate a virtually infinite number of wallets that are all separate from each other. The only way to link them to each other, given no cross-transaction, would be to know the seed.
Essentially, yes. There are other pieces of information which would allow someone to link addresses, such as the extended or master public keys, but the only way they could have these pieces of information is if you revealed them.
Then, if as you mention, I need to restore the seed on another wallet/service, how would the software know "which derivation path to look for"?
My understanding is that this is the "deterministic" part of HD wallet and the derivation paths follow a sequence that will always be the same, going from wallet number 1 to wallet number infinite always in the same order no matter the service used to access this wallet. Am I correct?
Largely correct, except for one small point which I'll explain at the bottom of this post.
Most wallets use the
BIP44 scheme for derivation paths. A typical derivation path for an address would look like this:
The m refers to your master private key, derived from your seed phrase.
The 44 refers to the address type. 44 is for legacy addresses which begin with a 1. This number would change to 49 for P2SH addresses beginning with a 3, and to 84 for Bech32 addresses beginning with bc1.
The first zero refers to coin type. This is always 0 for mainnet (i.e. not testnet) bitcoin.
The second zero refers to the account.
The third zero refers to whether the individual address is a change address or not.
The last zero is the index number of the individual address in the wallet.
Each address in one account will share the first three numbers, and only the last two numbers will change. For example, the first address would have the derivation path above, whereas the second address would have the following derivation path:
And your first change address would have the following derivation path:
Now, when you create a new account, your wallet simply increments the account number, which is the second zero, by one, and starts deriving new address. So the first address in your second account would have the following path:
Now, as I said above, this is a standard protocol, so provided you remember that you created extra accounts in Ledger Live, you'll always be able to restore those accounts by following the standard derivation paths.
The one small point to mention is that there are a small handful of wallets which do not follow these standard paths and instead use their own paths, but as Ledger Live is not one of these, you don't have to worry about them.