Closed arshbot closed 6 years ago
Is the seed generated from mneumonicToSeed or mneumonicToSeedHex considering a private key
No
or master private key?
No
The seed
is 64-bytes in length, and is used as entropy for private key generation. Private keys are 32-bytes in length, and have some numerical constraints.
Okay thanks. Do you know how I'd generate a private key from the seed?
BIP32 does the following:
let I = crypto.hmacSHA512('Bitcoin seed', seed)
let IL = I.slice(0, 32)
Where IL
is the private key (which is checked to be in the range [0, n]
.
If you intend to use the BIP32 standard, I'd suggest using a library to do this for you.
Huh, so the private key is just half the seed? (Assuming the seed is 64 bits) I've found a ton of libraries that do this really well, but I'm really trying to perform stuff like privkey, address generation as manually as I can without performing intricate math myself.
Huh, so the private key is just half the seed?
Indeed, after being HMAC'd.
You could simply do a .slice
too, or you could HMAC-SHA256, or, or, or.
What's done with the right half of the seed if it isn't useful in recreating the wallet's functionality later on?
@arshbot for BIP32, it is used as the chainCode
, which is used in deriving BIP32 child nodes.
I'm attempting to generate the private key (not the extended private key, although if the path to generating the private key is through that then that'd be interesting). However I'm having a lot of difficulty.
Is the seed generated from
mneumonicToSeed
ormneumonicToSeedHex
considered a private key or master private key? Does this definition differ between different currencies? i.e. Bitcoin and Ethereum?