日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

比特币钱包(2) BIP32 HD钱包之生成子密钥

發布時間:2025/3/21 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 比特币钱包(2) BIP32 HD钱包之生成子密钥 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. Masster Seed得到子公鑰、子私鑰

由主私鑰和鏈碼,再結合子密鑰索引(索引是一個 4Byte 序號),通過 HMAC-SHA512 衍生出子密鑰。

父級私鑰 --> 子級公鑰有兩種途徑

  • 父級私鑰 --> 子級私鑰, 子級私鑰 --> 公鑰
  • 父級私鑰 --> 父級公鑰, 父級公鑰 --> 子級公鑰

HMAC-SHA512(Key, data) = 64Byte子密鑰 = 左側32Byte子密鑰 + 右側32Byte ChainCode
Key: 父級的 ChainCode
data:父級公鑰(33Byte)+索引拼接
鏈碼ChainCode:用來引入確定性隨機數據,使得索引不能充分衍生其他的子密鑰。

2. 已知父級私鑰,由父級私鑰=>子級私鑰=>子級公鑰
Step1.1. 父級私鑰->父級公鑰
Step Mid. HMAC-SHA512中間過程
Step1.2. 子級私鑰 = 左側32Byte 子密鑰 + 父級私鑰

有個橢圓曲線和是否為零的校驗;校驗通過則是一個合法的子級私鑰,不合法則會跳過當前索引。
Step1.3. 子級私鑰->子級公鑰

3. 已知父級公鑰,由父級公鑰 =>子級公鑰

如圖Step Mid, step2.1 和step2.2。

(ParentPrevKey + LeftBytes) * P = ParentPrevKey * P + LeftBytes * P

=>

子級公鑰 = 父級公鑰 + ECC(左側的 32Byte子密鑰)

說明:橢圓曲線是阿貝爾群, PubKey = PrevKey * P, P 是特定橢圓曲線上常數, 其中 LeftBytes * P 即為 ECC(左側的 32Byte子密鑰);


【參考】

[1] HMAC算法可參考"HMAC(2)哈希運算消息認證碼HMAC"
[2] github wiki BIP 0032
[3] github bip-0032.mediawiki

總結

以上是生活随笔為你收集整理的比特币钱包(2) BIP32 HD钱包之生成子密钥的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。