I am studying grasp bitcoin e book and I got here to the half associated to HD wallets and tips on how to create a Little one personal key (hyperlink). It says the next:
The father or mother public key, chain code, and the index quantity are mixed and hashed with the HMAC-SHA512 algorithm to provide a 512-bit hash. This 512-bit hash is cut up into two 256-bit halves. The fitting-half 256 bits of the hash output change into the chain code for the kid. The left-half 256 bits of the hash are added to the father or mother key to provide the kid personal key. In Extending a father or mother personal key to create a baby personal key, we see this illustrated with the index set to 0 to provide the “zero” (first by index) youngster of the father or mother.
The bolded sentence causes me misunderstanding. What kind of addition is that this? If the classical addition of the left 256 bits of the hash end result to the personal key of the father or mother is applied, then it is going to result in a 512-bit personal key of the kid, which isn’t right (the personal key must be 256-bit). Is that this maybe referring to addition within the context of the “logical and” between the left hash end result and the father or mother’s personal key? What kind of addition is supposed right here when the end result must be 256-bit? Some reply is given right here, however I am nonetheless not clear. The reply is expounded to the usage of modules.
What additional confuses me is that the e book says that if the kid’s personal secret is identified, the father or mother’s personal key may be decided? That may make excellent sense to me if it was about including the left half of the hash to the father or mother’s personal key. You merely take away the half associated to the hash from the 512-bit end result and get father or mother’s personal key. Nevertheless, how can or not it’s achieved right here?