Hierarchical Deterministic
private child key
let I
IF index ≥ 2^31 (hardened key)
I = HMAC-SHA512(parent_private_key, chaincode)
****ELSE
I = HMAC-SHA512(parent_public_key, chaincode)
I_l, I_r = I.split()
child_private_key = I_l
child_chaincode = I_r
public child key (neutered)
public child key
If index **≥** 2^31 (hardened key)
return failure
ELSE
HMAC-SHA512(parent_public_key, chaincode)
// same as the above.
private child key: Not possible.
Derivation path
m / purpose' / coin_type' / account' / change / address_index
For example,
m/44’/60’/0’/0/0
purpose: 44’ following the BIP43.
coin_type: ethereum(60)
account: for many purposes(e.g., donation, saving, common expenses)
change
- external(0): for deposit
- internal(1): for sending back
address: public key and private key
master private key’s sole purpose is wallet tree regeneration. It is unable to sign transactions.
change address becomes harder for external observers to track your wallet balance and transaction history. (For Account Discovery)
Shamir's Secret Sharing(SSS): a way to split a secret (like a private key) into multiple shares and reconstruct the private key
TSS(Threshold Signature Scheme) and MPC(Multi-Party Computation):
Signing transactions securely
MPC 어떤 식으로 분리?
어떻게 서명 만듦?