跟大家一起學習區塊鏈技術系列之一 比特幣之錢包(6)保存根種子

保存根種子

HD協議中根種子是128bit、256bit或512bit的隨機數,必須要被準確的備份。為了更方便,使用非數字的備份方法,比如記住或者手抄,BIP39定義了一種方法產生512bit的根種子,從一個由自然語言單詞組成的偽句子(助記詞)計算得來,這個偽句子也是從128bit到256bit的熵生成的,可以選擇設置密碼保護。

單詞的數量和使用的熵的數量有關:

Entropy Bits

Words

128

12

160

15

192

18

224

21

256

24

密碼長度沒有要求,它簡單的追加到偽句子的後面,然後這些助記詞加上密碼一起做2048次HMAC-SHA512哈希,得到一個看起來隨機的512bit種子。因為任意數輸入到哈希函數都得到看起來隨機512bit種子,沒有途徑證明用戶輸入了正確的密碼,可能讓用戶在脅迫的情況下還可以保護種子。

隨意密鑰錢包

隨意密鑰錢包,也被稱作“就是一串密鑰”,是一個過時的錢包形式,最初的比特幣核心客戶端就是用的這種方式。比特幣核心客戶端錢包會通過偽隨機數發生器自動創建100個密鑰,以備後用。

這些私鑰存在一個叫虛擬密鑰池裡,不管前面的密鑰有沒有使用,新密鑰都要創建,保證池裡有100個未使用的密鑰。(如果錢包加密了,只能在錢包解鎖的情況下生成新密鑰)

這就使得備份錢包是個非常大的困難,考慮到為了保存新的密鑰必須手動備份。如果新的密鑰產生了,使用了,然後丟失了沒有備份,那麼存在這個密鑰上的比特幣永久丟失了。很多舊風格的錢包遵循簡單的格式,僅僅按用戶需要產生一個新的密鑰。

這種錢包類型已經過時了,因為備份的麻煩不在鼓勵使用。


分享到:


相關文章: