比特幣的助記符是什么

題圖

還記得我們創(chuàng)建比特幣錢包時的場景嗎掀序?其中有一步操作八回,要求我們拿出紙筆岩遗,把屏幕上出現(xiàn)的一系列單詞(有時稱助記符,有的軟件叫Seed Words)按順序抄在紙張上控轿,并提示我們保管好冤竹,因為這些單詞是恢復錢包的唯一手段。

如果你對比特幣有一定的了解茬射,當你在看到這些助記符時肯定會產(chǎn)生疑惑鹦蠕,因為通常人們理解的是:只有私鑰才需要保管,且只有私鑰才能恢復錢包在抛,但創(chuàng)建錢包時并沒有要求你保存私鑰钟病,而是記錄一些助記符,那么我們很容易的做出推斷——私鑰和助記符之間一定有著某種聯(lián)系。

我和助記符的故事

那為了驗證這種聯(lián)系肠阱,在沒有搞清楚助記符背后的邏輯之前票唆,通常的做法是驗證這些助記符是否能像私鑰一樣恢復錢包

很多人一開始應該和我一樣,很少考慮錢包的事情屹徘,然后把代幣都托管在交易所的錢包上走趋,但9月4日之后,我開始陸續(xù)把資產(chǎn)轉移到自己的錢包噪伊,記得第一次使用比特幣錢包,我先轉了一筆價值不到100元的比特幣到錢包上鉴吹,然后在錢包上把這個賬號刪掉,接著使用助記符恢復這個錢包授滓,在確認能夠恢復后琳水,才放心的把剩余代幣轉移過去肆糕。

我還記得當初花了2個小時來折騰這個事兒,因為我使用的是trezor錢包在孝,trezor在恢復時會故意打亂助記符的順序,由于忽視了這一點始赎,導致多浪費了不少時間。實際上仔燕,如果你理解了助記符的原理造垛,你完全不需要再花時間來反復驗證了。

種子

那么助記符到底是怎么回事呢晰搀,在介紹助記符之前,我們要先說一個概念——種子(Seed)外恕,實際上比特幣錢包往往不會直接保存私鑰,而是保存一個“種子”(Seed)數(shù)據(jù)罪郊,步驟大致如下:

  1. 產(chǎn)生種子數(shù)據(jù)
  2. 用種子算出一個賬號數(shù)據(jù)
  3. 通過這個賬號尚洽,可以產(chǎn)生無數(shù)個私鑰

其中從第1步到第2步,只要種子不變,通過種子算出的賬號也是不變的尺铣。

而第3步中争舞,你可以給每個產(chǎn)生的私鑰分配一個序號,例如0竞川、1、2等床牧,只要序號確定遭贸,那么私鑰的數(shù)值就是一定的。這也是為什么我們可以在錢包里創(chuàng)建多個賬號的原因壕吹,這么多賬號雖然都各自擁有一對公、私鑰踏堡,但我們只需要一個種子咒劲,就可以把它們?nèi)炕謴停阏f是不是很神奇腐魂,保存種子比直接保存私鑰效率要高很多。

下面我們通過一個程序(bitcoin explorer是一個比特幣命令行工具)來觀察一下整個過程(符號 '#' 右邊的文字是我的解釋):

  1. 產(chǎn)生種子數(shù)據(jù)
$ bx seed
00654f0bbd1721b75bbe54e29fdbf755523ab435708336ad
  1. 產(chǎn)生account數(shù)據(jù)削樊,你可以把這一步重復多次判导,然后會觀察到產(chǎn)生的結果是一樣的
# 產(chǎn)生master數(shù)據(jù)
$ bx hd-new 00654f0bbd1721b75bbe54e29fdbf755523ab435708336ad
xprv9s21ZrQH143K4VHVZmdpHhfRKmZ4fnySJBpNaSpkC7UfA3wNiMzN714ga5BSqXhdGDJCaMvW5Ww176mnuTsB4pFurk2fNrnsNhYS4igVrkS
# 產(chǎn)生account數(shù)據(jù)
$ bx hd-private --hard xprv9s21ZrQH143K4VHVZmdpHhfRKmZ4fnySJBpNaSpkC7UfA3wNiMzN714ga5BSqXhdGDJCaMvW5Ww176mnuTsB4pFurk2fNrnsNhYS4igVrkS
xprv9uUeTjMk9f3C2u7sEUzBqtWWJ9AekeHAy1pfjq5X19nKW5qqyiUr5LBHp87bHSyNSMRT9ehaBP4H5A21AVSzFhjiqvxbDMfTQfhYD6Hh3xV
  1. 通過account數(shù)據(jù)眼刃,你就可以按照序號來產(chǎn)生私鑰了,同樣你也可以多試幾次擂红,并觀察同樣的序號围小,產(chǎn)生的私鑰是否是一致的
# 序號0
$ bx hd-private --index 0 xprv9uUeTjMk9f3C2u7sEUzBqtWWJ9AekeHAy1pfjq5X19nKW5qqyiUr5LBHp87bHSyNSMRT9ehaBP4H5A21AVSzFhjiqvxbDMfTQfhYD6Hh3xV
xprv9xcBDpHwSSEXHBCMqTcMSGooQjLgYKXxkMN9cdVWV9HJKVBzgMhk1kXy1WdsfG9FT1SzATjAPguZjGj6LoBhLBd7tyKz2EA2xixX6uxAuVN
# 序號1
$ bx hd-private --index 1 xprv9uUeTjMk9f3C2u7sEUzBqtWWJ9AekeHAy1pfjq5X19nKW5qqyiUr5LBHp87bHSyNSMRT9ehaBP4H5A21AVSzFhjiqvxbDMfTQfhYD6Hh3xV
xprv9xcBDpHwSSEXLjzaSkjq8khKHKR1BsXHWVZhz14VNZsM5eWyjYVwhwsjnLHJaHXD4EXrTSM1N3JzWJU8jqNrmF4sdpFiTEGsh1MkNUR6TUy

助記符

現(xiàn)在你再知道錢包是如何保存私鑰了的吧肯适,但這還沒完成榜,設想一個場景,在助記符出現(xiàn)之前赎婚,我們要備份賬號就一定要記下種子,而你也看到了纬凤,種子是一串長長的字符串撩嚼,它沒有任何意義,人們在記錄它的時候會很容易出錯完丽,助記符就是為了解決這個問題而生的。

從整個產(chǎn)生私鑰的過程來說猖任,要引入了更容易記錄的助記符瓷耙,只需調整一下種子的生成過程:

讓種子的生成算法僅依賴于助記符

通過示意圖刁赖,可以看到所做的調整是:用算法生成助記符,再通過助記符產(chǎn)生種子鸡典,后面的步驟保持不變枪芒。

下面我們再用命令來演示下如何產(chǎn)生助記符,及它是如何產(chǎn)生種子的

# 創(chuàng)建一個用來生成助記符的種子
$ bx seed
b03e3cf733130570068147160b80a117078ed3c9459dc2d2

# 創(chuàng)建助記符
$ bx mnemonic-new b03e3cf733130570068147160b80a117078ed3c9459dc2d2
rabbit vehicle differ great core retreat borrow cigar bid foster choose come jump hazard celery recipe security motion

# 通過助記符創(chuàng)建一個用來生成私鑰的種子
$ bx mnemonic-to-seed rabbit vehicle differ great core retreat borrow cigar bid foster choose come jump hazard celery recipe security motion
488e65727e3bf0440cee45863961828a2de2963c14e2124740c6e18d5c0c61a7c661760aa8fc82141af5c023e69a997d88ef1f1204eeef9e90e323dc76cfcdc6

同樣的纽甘,對于相同的助記符抽碌,你可以多執(zhí)行幾次bx mnemonic-to-seed命令,看看產(chǎn)生的種子是否都是一致的左权,可以推斷,恢復錢包的過程就是從這條命令開始的赏迟。

最后,如果你有一定的編程基礎烹笔,建議你去閱讀一下Bitcoin Explorer的源碼(這套代碼的組織結構非常清晰)抛丽,可以更深入的理解背后的密碼學原理。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末允蜈,一起剝皮案震驚了整個濱河市蒿柳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌垒探,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蛤克,死亡現(xiàn)場離奇詭異夷蚊,居然都是意外死亡,警方通過查閱死者的電腦和手機筋现,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門箱歧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人洒沦,你說我怎么就攤上這事驼鹅∩瘢” “怎么了豺型?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵姻氨,是天一觀的道長。 經(jīng)常有香客問我肴焊,道長,這世上最難降的妖魔是什么似嗤? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任届宠,我火速辦了婚禮,結果婚禮上豌注,老公的妹妹穿的比我還像新娘轧铁。我一直安慰自己,他們只是感情好齿风,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布聂宾。 她就那樣靜靜地躺著,像睡著了一般系谐。 火紅的嫁衣襯著肌膚如雪讨跟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天茶袒,我揣著相機與錄音凉馆,去河邊找鬼亡资。 笑死向叉,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的瘦黑。 我是一名探鬼主播奇唤,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼咬扇!你這毒婦竟也來了?” 一聲冷哼從身側響起经窖,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤隅居,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后棉钧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涕蚤,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年佑钾,在試婚紗的時候發(fā)現(xiàn)自己被綠了烦粒。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡兽掰,死狀恐怖徒役,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情杉女,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布速勇,位于F島的核電站婆瓜,受9級特大地震影響,放射性物質發(fā)生泄漏廉白。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一院溺、第九天 我趴在偏房一處隱蔽的房頂上張望磅轻。 院中可真熱鬧,春花似錦聋溜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至注盈,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間老客,已是汗流浹背震叮。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人权纤。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像外邓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子侦啸,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 一丧枪、快速術語檢索 比特幣地址:(例如:1DSrfJdB2AnWaFNgSbv3MZC2m74996JafV)由一串...
    不如假如閱讀 15,896評論 4 88
  • 本文出自于金馬老師課程——“金馬帶你定投區(qū)塊鏈”的課程拧烦,還有“白話區(qū)塊鏈”公眾號中的概念,我的目的就是把對同一個概...
    丁昆朋閱讀 2,350評論 5 8
  • 今日閑來翻書時偶然看到一首小詩炼吴,想起身邊有不少朋友說起過失眠的毛病疫衩,情況嚴重時一夜天明都不安睡也是有的。我一向覺得...
    相思不惘閱讀 328評論 1 1
  • 這時晚上八點二十提针,河東萬達的coldstark咖啡廳,魏亞男坐在靠窗的第三桌辐脖,長直發(fā)皆愉,唇紅齒白嗜价,約定相親的那個男人...
    王叫獸_邢敏閱讀 329評論 0 0
  • Easy 根據(jù)二叉樹的中根次序和后跟次序重建二叉樹久锥。假設沒有重復异剥。 Solution:首先需要知道什么事二叉樹的中...
    穿越那片海閱讀 389評論 0 1