I'm trying to understand how keys are generated by wallets in details and what different approaches that are used. More specifically I'm interested in how Electrum does this and how the deterministic approach work.
I'll start with my understanding so far and would really appreciate if someone could tell me what I got right and where I misunderstood. 🙏
My understanding is that the seed is a word based represtain of the master private key. At least in the case of Electrum this master key is used to generate 20 public keys - that are used as my public receiving addresses. As this approach is deterministic I assume that the exact same 20 public addresses would be generated if I restore another walled using the same seed?
I can generate more public addresses from the master key. As many as I like.
The gap limit comes in play when I restore wallets and scan for funds on possible addresses. If the gap limit is for example 20, the restored wallet will scan and keep generating addresses until it find 20 unused addresses.
As I understand it it would just work fine if I have a wallet on one machine and then restore it on another. The only edge case I can see is if I in one wallet would create a gap of addresses that are unused, and the have funds on addresses after that that gap. Those fund might require some work to show up in wallet number two, as it would stop looking on further addresses when hitting a gap limit of unused addresses.
I'm also interested in understanding if there are other approaches to generating addresses, unused by other wallets. And shortly what the pros would be to use those.