比特币钱包(4) BIP39 助记词
生活随笔
收集整理的這篇文章主要介紹了
比特币钱包(4) BIP39 助记词
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 定義生成助記詞
助記詞句子(mnemonic word sequence)作為密碼,使用若干個助記詞來替換之前直接生成隨機數的方式(確定性錢包的種子隨機數)。
1.1. 生成步驟
1) . 生成 128~256 位 (bits) 的隨機數,稱為熵(以128bits為例);
規定熵的位數必須是 32 的整數倍,所以熵的長度取值位 128 到 256 之間取 32 的整數倍的值,分別為 128, 160, 192, 224, 256;
2) . 計算熵 checksum
將熵進行 SHA256 哈希,取出前 4bits 用作校驗碼;(校驗碼長度 = 數據總長度 / 32);
3) . 將原始熵和 checksum 拼接為 132bits 長度
4) . 將 132bits 長度按照 11bits 分割為 12 份
5) . 每 11bits 對應為 2048 長度的單詞表中的一個單詞;
(助記詞庫有 2048 個詞,用 11 位可全部定位詞庫中所有的詞,作為詞的索引)
1.2. 隨機位數與助記詞個數的對應表
校驗和 = 長度為熵的長度/32 位
助記詞個數 = (熵+校驗和)/11
| 128 | 4 | 132 | 12 |
| 160 | 5 | 165 | 15 |
| 192 | 6 | 198 | 18 |
| 224 | 7 | 231 | 21 |
| 256 | 8 | 264 | 24 |
2. 助記詞生成 Master Seed(512 位,64 字節)
BIP39 采用PBKDF2函數推算種子.
- 哈希函數HMAC-SHA512(key =“mnemonic” , passphrase 作為鹽)
- 2048 作為重復計算的次數
【參考】
[1] HMAC算法可參考"HMAC(2)哈希運算消息認證碼HMAC"
總結
以上是生活随笔為你收集整理的比特币钱包(4) BIP39 助记词的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 比特币钱包(3) BIP32 HD钱
- 下一篇: 比特币钱包(5) BIP44 账户表示形