分层确定性钱包通过椭圆曲线密码学机制,确保可以通过在没有私钥参与的情况下,由公钥直接分散成子公钥,并且分散的子公钥可以由分散的子私钥认证。
1、确定路径 index , 依据Bip44 找到对应币种的 index,"44H(Bip44)/%dH(index)/%dH(account)" .
2、依照路径生成相应密钥,生成流程 数字钱包助记词生成公私钥流程分析 。
3、如bitcoin, index 为 0 ,则第一个地址为 44H/0H/0H 。
4、每次从头遍历路径,44H,发现没有生成公私钥,则根据 masterKey 公钥(或私钥)、链码、childNumber(44) 生成对应公私钥。
5、到中间 0H(index) 时,其parent 变为 44H, 则使用 44H 的公钥(或私钥)、 链码 、childNumber(0)生成对应公私钥。
6、到 0H (account)其parent 变为 0H (index),则使用 0H (index) 的公钥(或私钥)、 链码 、childNumber(0)生成对应公私钥,生成多个地址时,childNumber 随着0H (account)递增而递增,如: 44H/0H/0H、44H/0H/1H、44H/0H/2H...
这样在拥有 助记词时,可以恢复出 mastKey,根据分层确定性,可以计算出各个账户的公私钥,即拥有了该钱包的使用权。