1. Storage of Keys, Addresses and many others
How precisely is all this saved?
In Common
Any means that the builders of a specific pockets need. It’s doubtless that totally different wallets retailer their information in another way.
In Bitcoin core, for instance.
The pockets software program named “Bitcoin core” will retailer the non-public keys within the pockets.dat file within the specified or default information listing. The default is %APPDATA%/Bitcoin/ or ~/.bitcoin/ relying on platform. If a pockets password is supplied, the important thing information is saved in encrypted kind with the password being the encryption key (probably not directly and possibly utilizing AES IIRC).
The addresses generated are saved in the identical file however needn’t be encrypted.
I do not know if the total derivation paths are explicitly saved. I think about that a minimum of the least vital digits should be saved together with every derived tackle. Possibly somebody can remark.
BDB vs SQLite wallets
The general organisation of this file has modified and relies on easy key-value database libraries, initially Berkeley-DB (BDB) and extra not too long ago SQLite AFAIK.
Descriptor vs non-Descriptor wallets
The keys and values have modified from the unique kind to a “descriptor” kind. So there are non-descriptor wallets and descriptor wallets.
HD vs non-HD wallets
There was additionally a change to Hierarchical Deterministic (HD) wallets from the unique non-HD pockets.
2. Derivation Paths
I see that every one addresses are recognized utilizing a path naming conference. Does that imply that every one the paths are saved, and in a state of affairs the place an tackle must be reused, it’s regenerated every time?
These are implementation particulars. I do not know the way Bitcoin core or different wallets deal with this and I consider anybody writing a pockets ought to make their very own choices.
If writing a pockets app, I might most likely explicitly retailer all generated addresses and paths. Another individuals would do one thing very totally different.
