1. Storage of Keys, Addresses and so forth
How precisely is all this saved?
In Basic
Any means that the builders of a specific pockets need. It’s doubtless that completely different wallets retailer their knowledge in a different 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 knowledge listing. The default is %APPDATA%/Bitcoin/
or ~/.bitcoin/
relying on platform. If a pockets password is supplied, the important thing knowledge is saved in encrypted kind with the password being the encryption key (probably not directly and doubtless 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 no less than the least important digits must be saved together with every derived handle. 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 just lately 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 each one addresses are recognized utilizing a path naming conference. Does that imply that each one the paths are saved, and in a state of affairs the place an handle must be reused, it’s regenerated every time?
These are implementation particulars. I do not understand how Bitcoin core or different wallets deal with this and I consider anybody writing a pockets ought to make their very own selections.
If writing a pockets app, I might in all probability explicitly retailer all generated addresses and paths. Another individuals would do one thing very completely different.