比特幣學習3-BIP39翻譯解讀

[TOC]

前言

BIP39英文地址

原文地址:http://www.reibang.com/p/2472bb87f04b
作者:夢幻艾斯
備注:歡迎轉載磁携,請保留原文地址僵芹。

摘要

這個BIP描述了一個使用一組方便記憶的單詞(簡稱助記詞)生成確定性錢包種子的方案

它由兩部分組成:

  1. 生成助記詞

  2. 將助記詞轉化成二進制種子睬关。

    這個種子可以通過BIP-0032方法或者類似方法生成一個確定性錢包忧额。

解決的問題

與處理錢包種子的原始二進制或十六進制表示相比辐马,助記碼或句子對于人類更容易理解和記憶力穗。助記詞可以寫在紙上或通過電話說出來毅弧。

本指南旨在將計算機生成的隨機性與人類可讀的轉錄相結合。這不是一種將用戶創(chuàng)建的句子(也稱為腦袋)處理成錢包種子的方式当窗。

生成助記詞

助記詞必須將熵的長度編碼為32的倍數(shù)够坐。熵的長度越長,安全系數(shù)越高崖面,相應的生成的助記詞長度越長元咙。我們將初始熵的長度稱為ENT。ENT允許的長度是128-256位巫员。

首先庶香,生成一個ENTbits的熵。通過SHA256生成熵的hash简识,取<pre>ENT / 32</pre> bits當作checksum赶掖。這個checksum加在初始熵的后面感猛。

接下來,這些連接的比特被分成11位的組奢赂,每個編碼從0到2047的數(shù)字陪白,用作詞表中的索引。最后膳灶,我們將這些數(shù)字轉換成單詞拷泽,并將這些連詞作為助記句。

下表描述了 初始化熵長度 (ENT), checksum 長度 (CS) 和 生成的助記詞長度
(MS) 之間的關系

<pre>
CS = ENT / 32
MS = (ENT + CS) / 11

| ENT | CS | ENT+CS | MS |
+-------+----+--------+------+
| 128 | 4 | 132 | 12 |
| 160 | 5 | 165 | 15 |
| 192 | 6 | 198 | 18 |
| 224 | 7 | 231 | 21 |
| 256 | 8 | 264 | 24 |
</pre>

疑問:

  1. 為什么將ENT+CS分割成11位的組袖瞻?

    因為211等于2048司致,助記詞單詞列表的個數(shù)為2048個。所以11位長度就可以完全覆蓋單詞列表的索引聋迎。

  2. 為什么ENT的長度是32的倍數(shù)

    通過公式我們得出MS = (ENT + CS) / 11=(ENT + ENT / 32) / 11得到最終結果:
    3ENT = 32 MS

    因為ENT和MS都是整數(shù)脂矫,所以得出ENT是32的倍數(shù),MS是3的倍數(shù)

單詞表

理想的單詞列表具有以下特征:

  1. 最好的單詞選擇方式

    選擇的單詞最好只需要輸入單詞的前4位就可以唯一標識單詞

  2. 避免類似單詞

    像"build" 和 "built", "woman" 和 "women", 或者 "quick" 和 "quickly"這類單詞容易記錯或者寫錯霉晕。應該避免使用

  3. 單詞排好序

    • 單詞列表被排序庭再,允許更高效地查找代碼單詞
      (即實現(xiàn)可以使用二分搜索而不是線性搜索)
    • 這也允許使用trie(前綴樹),例如為了更好的壓縮

單詞列表可以包含本地字符牺堰,但它們必須使用規(guī)范化表單兼容性分解(NFKD)以UTF-8編碼拄轻。

從助記詞生成種子

用戶應該使用密碼來保護他們的助記詞。如果用戶沒有提供密碼伟葫,程序將會用空字符串""代替恨搓。

為了從助記詞中生成二進制的種子。我們使用PBKDF2函數(shù)筏养,以一個助記詞句子(以UTF-8 NFKD表示)為參數(shù),使用"mnemonic" + 密碼作為鹽(以UTF-8 NFKD表示)斧抱。迭代次數(shù)設置為2048次,HMAC-SHA512函數(shù)作為為隨機函數(shù)渐溶。生成的密鑰長度為512位(等于64字節(jié))辉浦。

鹽格式示例:

  1. 密碼為空時鹽="mnemonic"
  2. 密碼為"111111"時,鹽="mnemonic111111"

這個種子可以在后續(xù)使用BIP-0032或類似方法生成確定性錢包茎辐。

助記詞的選擇和助記詞生成種子的方法是獨立的宪郊。這樣做使得代碼變得很簡單。由于對助記詞句子對結構沒有約束拖陆,客戶端可以自用的實現(xiàn)他們的單詞列表或者助記詞生成器弛槐。從而簡稱拼寫錯誤或者其它需求。

雖然使用不是由“生成助記符”部分中描述的算法生成的助記符是可能的慕蔚,但不建議這樣做丐黄,并且軟件必須使用單詞表計算助記符句子的校驗和,并且如果它無效則發(fā)出警告孔飒。

所描述的方法還提供了合理的可否認性灌闺,因為每個密碼短語都會生成有效的種子(因此也就是確定性的錢包)艰争,但只有正確的種子才能使所需的錢包可用。

助記詞單詞列表

移動到單獨的文檔

這里是這種語言作為助記詞單詞列表的使用方式桂对,客戶端可以根據(jù)需求定制自己的助記詞單詞列表甩卓。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蕉斜,隨后出現(xiàn)的幾起案子逾柿,更是在濱河造成了極大的恐慌,老刑警劉巖宅此,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件机错,死亡現(xiàn)場離奇詭異,居然都是意外死亡父腕,警方通過查閱死者的電腦和手機弱匪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來璧亮,“玉大人萧诫,你說我怎么就攤上這事≈λ唬” “怎么了帘饶?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長群扶。 經(jīng)常有香客問我及刻,道長,這世上最難降的妖魔是什么穷当? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任提茁,我火速辦了婚禮,結果婚禮上馁菜,老公的妹妹穿的比我還像新娘。我一直安慰自己铃岔,他們只是感情好汪疮,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著毁习,像睡著了一般智嚷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上纺且,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天盏道,我揣著相機與錄音,去河邊找鬼载碌。 笑死猜嘱,一個胖子當著我的面吹牛衅枫,可吹牛的內容都是我干的。 我是一名探鬼主播朗伶,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼弦撩,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了论皆?” 一聲冷哼從身側響起益楼,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎点晴,沒想到半個月后感凤,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡粒督,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年俊扭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坠陈。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡萨惑,死狀恐怖,靈堂內的尸體忽然破棺而出仇矾,到底是詐尸還是另有隱情庸蔼,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布贮匕,位于F島的核電站姐仅,受9級特大地震影響,放射性物質發(fā)生泄漏刻盐。R本人自食惡果不足惜掏膏,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望敦锌。 院中可真熱鬧馒疹,春花似錦、人聲如沸乙墙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽听想。三九已至腥刹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間汉买,已是汗流浹背衔峰。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人垫卤。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓威彰,卻偏偏與公主長得像,于是被迫代替她去往敵國和親葫男。 傳聞我的和親對象是個殘疾皇子抱冷,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345