I'm working on a personal summary, and have been trying to wrap my head around the basics of ECC which is utilized during key derivation in HD-wallets.
I've got something, but man, it's complex.
If you're knowledgeable in that regard, feel free to leave a comment, and I'll @ ya once the summary is up! I'd really appreciate your input!
The first three chapter of Jimmy songs Programming Bitcoin book is free on GitHub and a good intro to the subject. The basic idea is you can start with a secret 256 bit number and you can use a curve and perform some mathematical operations and get a public key that you can share with anybody(think address to receive funds). This is actually how the first Bitcoin transactions were done(Pay to public key). It’s theoretically impossible for anybody to gain any information about your private key with just the public key. With the private key you can then sign messages(Bitcoin transactions) that can be proved mathematically with very little computing power that only the person with knowledge of the private could have computed the signature.
HD wallets are used to compute a lot of the private public keys pairs(and addresses) to make backing up easier. Before HD wallets every time a new address was generated a new corresponding private key had to be backed up. With HD wallets all we have to do is store the seed (phrase) and a derivation path and we can restore all the private keys needed to recreate our wallet.
If you’re trying to understand ecc I would start with how it is used to generate a public key from a private key first then move on to how it is used in HD wallets.
reply
I'm going to post the first part (mnemonic) possibly today, since the master seed is needed to derive the master xpriv-> master Xpub, which is where I'm currently at.
reply
Going to shill saving satoshi here, chapter 4 goes through ECC and I think it is a great resource for going a little deeper into the cryptography going from private-key to public-key
reply
This site rocks: https://learnmeabitcoin.com/technical/keys/hd-wallets/ Also, Programming Bitcoin by Jimmy Song is great for ECC.
reply
Absolutely! I've been using that very site for a few weeks now, and have even contacted Greg to ask if he'd be interested in reviewing the summary's contents before they're posted, which he gladly agreed to!
I'll have the improved version sent to him tomorrow morning. 🤠
You'll surely remember some of the diagrams I've used in the summary, they're his. 😆
reply
Take the base58 class
reply
Why Base58?
reply
They mean this: https://base58.info/
reply
Ah! Seems very developer- and code-heavy, ain't it?
reply
I’m taking the course and I have a much better understanding of what’s going on
reply
Well... then I'll @ ya whether you like it or not 😜
reply
Yes
reply
Maybe, ask more specific questions. Do you mean BIP39? Or what do you refer to?
BIP39 key derivation performs HMAC512 and then some ECC addition. Nothing that much complex.
reply
Hm, until you try to type it out into a comprehensive summary, compadre. 🌝
I'll have ya @'dded, if that's okay?
reply