進入數(shù)字貨幣的領(lǐng)域,我們就不得不接觸錢包這個概念幽钢,而各種名目繁多的數(shù)字錢包甚至比區(qū)塊鏈的基礎(chǔ)理論還讓人抓耳撓腮歉备。今天我們就先了解一些有關(guān)HD錢包的知識吧!
初次看到HD錢包匪燕,你有沒有錯誤地將它理解成硬件(Hardware)錢包蕾羊。我是根本不知道什么是HD錢包喧笔,它與我們通常看到的熱錢包和冷錢包是什么關(guān)系龟再,它是否屬于全節(jié)點錢包书闸、輕錢包、中心化錢包(鏈下錢包)中的一種利凑。各種數(shù)字錢包的概念浆劲,給我一種云里霧里的感覺,完全搞不清楚其中的來龍去脈哀澈。
不過再難的結(jié)也需要一點點的去解開牌借,畢竟關(guān)乎著我們的數(shù)字資產(chǎn)的安全,或許某個操作失誤割按,就讓我們的投資資產(chǎn)無處可尋膨报。言歸正傳,來聊聊HD錢包吧适荣!
一现柠、HD錢包的概念
HD 錢包全稱為是分層確定性(Hierarchical Deterministic)錢包的縮寫 HD Wallets。
我們知道數(shù)字錢包是用來保存我們的密鑰和地址的弛矛,而數(shù)字貨幣是被記錄在區(qū)塊鏈網(wǎng)絡(luò)中的每個區(qū)塊上的够吩。因此,如何安全方便的生成丈氓、保存和備份恢復(fù)密鑰才是錢包的關(guān)鍵周循。為此,錢包已經(jīng)進化了三次扒寄,從最初的非確定(隨機)錢包到第二代的確定性(種子)錢包鱼鼓,直到現(xiàn)在的分層確定性錢包拟烫,錢包的更新迭代經(jīng)過了三個階段该编。
實際上想要理解分層確定性錢包的概念也并沒有我們想象的那么困難。它的原理用兩句話就可以表達清楚:
首先硕淑,要用一個隨機數(shù)來生成主私鑰课竣,這跟其他類型的錢包生成私鑰過程沒有任何區(qū)別。
然后置媳,再用一個確定性的于樟、不可逆的算法,基于主私鑰生成任意數(shù)量的子私鑰拇囊。
那為什么要用“確定迂曲、不可逆”的算法呢?因為“確定”才能保證從一個主私鑰可以生成出全部的子私鑰,而“不可逆”則是為了確保不能通過子私鑰反推出主私鑰寥袭。
之所以叫分層確定性錢包是因為私鑰的衍生結(jié)構(gòu)是樹狀結(jié)構(gòu),父密鑰可以衍生一系列子密鑰,每個子密鑰又可以衍生出一系列孫密鑰忙干,以此類推窍蓝,無限衍生。
這種結(jié)構(gòu)跟公司的組織架構(gòu)和家譜非常相似咽扇!我們在首次創(chuàng)建 HD 錢包或者備份錢包時,會產(chǎn)生一個助記詞,助記詞是一連串的英?單詞佳遣,這一串單詞序列就可以創(chuàng)建種子,種子又可以創(chuàng)建所有的私鑰凡伊。單詞順序也是錢包的備份零渐,可以恢復(fù)錢包。而種?對應(yīng)的就是所確定性錢包的隨機數(shù)系忙。
HD 錢包的優(yōu)點在于只需要主公鑰相恃,就可以生成出任意數(shù)量的子公鑰。也就是說笨觅,無需私鑰介入(主私鑰和子私鑰)拦耐,就能基于主公鑰生成新(公鑰)地址,而這些地址其實都能被主私鑰所控制见剩。
有利必有弊杀糯,當(dāng)我們暴露助記詞時,也相當(dāng)于將所有的私鑰拱手讓人了苍苞,你所擁有的數(shù)字資產(chǎn)的安全性也歸零了固翰。
二,為什么要有那么多的私鑰
為什么一個用戶得需要那么多的私鑰羹呵,我們以比特幣交易的找零機制來說明骂际。
?筆?特幣交易是?個含有輸?值和輸出值的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)植?了將?筆資?從初始點(輸?值)轉(zhuǎn)移??標地址(輸出值)的代碼信息冈欢。
談到比特幣的交易輸入和輸出歉铝,還必須了解一個名詞UTXO(Unspent Transaction Output),它是?特幣交易的基本單位凑耻,是?個未經(jīng)使?的交易輸出太示。?個??的?特幣會被當(dāng)作UTXO分散到數(shù)百個交易和數(shù)百個區(qū)塊中。實際上香浩,并不存在儲存?特幣地址或賬?余額的地點类缤,只有被所有者鎖住的、分散的UTXO邻吭。
?特幣可以被分割成表??位?數(shù)的“聰”餐弱,?個UTXO可以是?“聰”的任意倍。UTXO可以是任意值,但只要它被創(chuàng)造出來了膏蚓,就像不能被切成兩半的硬幣?樣不可再分了猖败。如果?個UTXO??筆交易所需量?,它仍會被當(dāng)作?個整體?消耗掉降允,但同時會在交易中?成零頭恩闻。
這段話是什么意思,來舉個形象點的例子剧董。如果你有一筆20?特幣的UTXO并且想?付1?特幣幢尚,那么你的交易必須消耗掉整個20?特幣的UTXO并且產(chǎn)?兩個輸出:?個是?付了1?特幣給接收?,另?個是?付19?特幣的找零到你的錢包翅楼。這樣的話尉剩,?部分?特幣交易都會產(chǎn)?找零。
問題就來了毅臊,產(chǎn)生的找零應(yīng)該返還原地址呢理茎,還是返還到一個新地址。中本聰在設(shè)計比特幣時管嬉,運用的找零機制是創(chuàng)建了一個新的地址作為每筆交易的找零地址皂林。這樣設(shè)計的好處,是為了保護交易用戶的隱私和避免一些安全隱患蚯撩。
這在現(xiàn)實生活中础倍,就好像你用多個名字和身份證在不同的銀行開通了數(shù)個銀行帳號,即便有人知道每個帳號上的資金往來情況胎挎,也是不能根據(jù)資金流向刨根溯源查到真正的數(shù)字貨幣擁有人沟启,這就是比特幣所謂的匿名性。
這樣你應(yīng)該知道了一個錢包用戶為什么需要那么多的私鑰犹菇,因為公鑰和私鑰總是成對出現(xiàn)的德迹,每筆交易都有可能產(chǎn)生一個找零地址,而與這些地址相對應(yīng)的私鑰保管和備份就成了數(shù)字交易的技術(shù)難題揭芍。HD 錢包由一個公鑰就可以生成任意個數(shù)的子公鑰胳搞,這極大地解決了數(shù)字錢包的使用硬傷。
最后沼沈,再溫馨提示一聲流酬,請一定要安全可靠的方式及時備份助記詞,并仔細將錢包的助記詞及時抄寫到安全的地方列另。另外,助記詞是未加密的私鑰旦装,安全性極低页衙,對助記詞加密也是保證錢包安全的措施之一。