1. Storage of Keys, Addresses and so on
How precisely is all this saved?
In Basic
Any approach that the builders of a selected pockets need. It’s seemingly that completely different wallets retailer their information otherwise.
In Bitcoin core, for instance.
The pockets software program named “Bitcoin core” will retailer the personal 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 type with the password being the encryption key (presumably 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 at the least the least important digits must be saved together with every derived tackle. Perhaps somebody can remark.
BDB vs SQLite wallets
The general organisation of this file has modified and is predicated on easy key-value database libraries, initially Berkeley-DB (BDB) and extra lately SQLite AFAIK.
Descriptor vs non-Descriptor wallets
The keys and values have modified from the unique type to a “descriptor” type. 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 imagine anybody writing a pockets ought to make their very own selections.
If writing a pockets app, I’d most likely explicitly retailer all generated addresses and paths. Another individuals would do one thing very completely different.