欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

當(dāng)前位置:主頁 > 區(qū)塊鏈 > 錢包知識 > 加密貨幣錢包助記詞

HD加密貨幣錢包助記詞所涉及的 BIP32、BIP44、BIP39介紹

2025-08-21 16:26:20 | 來源: | 作者:佚名
本文介紹了BIP32、BIP39和BIP44在加密貨幣錢包中的作用,BIP32提供了一種通過種子生成無限私鑰的分層確定性方法,BIP39通過助記詞簡化種子備份,BIP44則定義了多幣種錢包的路徑規(guī)范,使得管理不同加密貨幣變得更加便捷和安全

引言

錢包是很多人第一次接觸以太坊或其他虛擬貨幣的地方。無論是用手機(jī)還是瀏覽器的錢包,相信很多人都對一串陌生的單字感到好奇而且很重要還要備份。這是源于比特幣中錢包的設(shè)計(jì),采用第三機(jī)制的錢包通常稱為HD錢包。

隨著比特幣區(qū)塊鏈的發(fā)展,人們已經(jīng)不滿足于,只有一個(gè)賬號的情況,有些人會有好幾個(gè)賬戶,但是這就出現(xiàn)一個(gè)問題,我有幾個(gè)賬號,就要保存幾個(gè)私鑰,這就特別麻煩和不友好,所以,就出現(xiàn)了bip32確定性算法,該算法可以讓你只有同一個(gè)種子,就可以生成無數(shù)個(gè)私鑰和地址,這就大大方便了用戶的使用。但是這個(gè)種子,也比較長,用戶使用起來也比較繁瑣,這就出現(xiàn)了bip39,它是使用助記詞的方式,生成種子的,這樣用戶只需要記住,12個(gè)單詞(3,6,9,12,15,18,21,24支持這些單詞數(shù),目前使用較廣泛的是12和24),這就有大大提高了用戶使用的便利性。又隨著區(qū)塊鏈發(fā)展,市面上出現(xiàn)了很多幣種,之前的確定性算法只是針對比特幣的,也就是說只支持一種幣種,用戶想用同一個(gè)種子,管理不同幣種,這就促使了bip44協(xié)議的出現(xiàn),它是基于bip32協(xié)議的,它給bip32的路徑,賦予了不同的意義,很好的解決了多幣種,多地址的問題。

協(xié)議官方鏈接如果想詳細(xì)的了解這些協(xié)議,請查看官方文檔(解析的最清楚)

big32:https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki

bip39:https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki

bip44:https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki

驗(yàn)證網(wǎng)站:https://iancoleman.io/bip39/

數(shù)字錢包概念

錢包用來存錢的,在區(qū)塊鏈中,我們的數(shù)字資產(chǎn)都會對應(yīng)到一個(gè)賬戶地址上, 只有擁有賬戶的鑰匙(私鑰)才可以對資產(chǎn)進(jìn)行消費(fèi)(用私鑰對消費(fèi)交易簽名)。
私鑰和地址的關(guān)系如下:

一句話概括下就是:私鑰通過橢圓曲線生成公鑰, 公鑰通過哈希函數(shù)生成地址,這兩個(gè)過程都是單向的。

因此實(shí)際上,數(shù)字錢包實(shí)際是一個(gè)管理私鑰(生成、存儲、簽名)的工具,注意錢包并不保存資產(chǎn),資產(chǎn)是在鏈上的。

如何創(chuàng)建賬號

創(chuàng)建賬號關(guān)鍵是生成一個(gè)私鑰, 私鑰是一個(gè)32個(gè)字節(jié)的數(shù), 生成一個(gè)私鑰在本質(zhì)上在1到2^256之間選一個(gè)數(shù)字。
因此生成密鑰的第一步也是最重要的一步,是要找到足夠安全的熵源,即隨機(jī)性來源,只要選取的結(jié)果是不可預(yù)測或不可重復(fù)的,那么選取數(shù)字的具體方法并不重要。

比如可以擲硬幣256次,用紙和筆記錄正反面并轉(zhuǎn)換為0和1,隨機(jī)得到的256位二進(jìn)制數(shù)字可作為錢包的私鑰。

從編程的角度來看,一般是通過在一個(gè)密碼學(xué)安全的隨機(jī)源(不建議大家自己去寫一個(gè)隨機(jī)數(shù))中取出一長串隨機(jī)字節(jié),對其使用SHA256哈希算法進(jìn)行運(yùn)算,這樣就可以方便地產(chǎn)生一個(gè)256位的數(shù)字。

實(shí)際過程需要比較下是否小于n-1(n = 1.158 * 10^77, 略小于2^256),我們就有了一個(gè)合適的私鑰。否則,我們就用另一個(gè)隨機(jī)數(shù)再重復(fù)一次。這樣得到的私鑰就可以根據(jù)上面的方法進(jìn)一步生成公鑰及地址。

BIP32、BIP39、BIP44

BIP全稱是Bitcoin Improvement Proposals,是提出比特幣的新功能或改進(jìn)措施的文件。盡管任何人提出,經(jīng)過審核后公布在bitcoin/bips上。BIP和比特幣的關(guān)系,就像是RFC之于互聯(lián)網(wǎng)。

而其中的BIP32、BIP39、BIP44共同定義了目前被廣泛使用的HD錢包,包含其設(shè)計(jì)動機(jī)和理念、實(shí)作方式、實(shí)例等。

BIP32:定義分層確定性錢包(簡稱“HD Wallet”),是一個(gè)系統(tǒng)可以從單個(gè)種子 生成一樹狀結(jié)構(gòu)存儲多組密鑰對(私鑰和公鑰)。好處是可以方便的備份、轉(zhuǎn)移到其他相容裝置因?yàn)椋ǘ贾恍枰N子),以及分層的權(quán)限等。

BIP39:將種子用方便記憶和書寫的單字表示。一般由12個(gè)單字組成,稱為助記碼(詞組),中文稱為助記詞或助記碼。例如:

rose rocket invest real refuse margin festival danger anger border idle brow

BIP44:基于 BIP32 的系統(tǒng),賦予樹狀結(jié)構(gòu)中的各層特殊的意義。讓同一個(gè)種子可以支持多幣種、多賬戶等。各層定義如下:

m / purpose' / coin_type' / account' / change / address_index

其中的purporse'固定是44',代表使用BIP44。而coin_type'用來表示不同的幣種,例如Bitcoin就是0',Ethereum是60'。

BIP32

錢包也是一個(gè)私鑰的容器,按照上面的方法,我們可以生成一堆私鑰(一個(gè)人也有很多賬號的需求,可以更好保護(hù)隱私),而每個(gè)私鑰都需要備份就特別麻煩的。

最早期的比特幣錢包就是就是這樣,還有一個(gè)昵稱:“Just a Bunch Of Keys(一堆私鑰)“

為了解決這種麻煩,就有了BIP32 提議: 根據(jù)一個(gè)隨機(jī)數(shù)種子通過分層確定性推導(dǎo)的方式得到n個(gè)私鑰,這樣保存的時(shí)候,只需要保存一個(gè)種子就可以,私鑰可以推導(dǎo)出來,如圖:

 

(圖來自精通比特幣)

上圖中的孫秘鑰就可以用來簽發(fā)交易。

補(bǔ)充說明下 BIP: Bitcoin Improvement Proposals 比特幣改進(jìn)建議, bip32是第32個(gè)改進(jìn)建議。
BIP32提案的名字是:Hierarchical Deterministic Wallets, 就是我們所說的HD錢包。

來分析下這個(gè)分層推導(dǎo)的過程,第一步推導(dǎo)主秘鑰的過程:

 

根種子輸入到HMAC-SHA512算法中就可以得到一個(gè)可用來創(chuàng)造主私鑰(m) 和 一個(gè)主鏈編碼( a master chain code)這一步生成的秘鑰(由私鑰或公鑰)及主鏈編碼再加上一個(gè)索引號,將作為HMAC-SHA512算法的輸入繼續(xù)衍生出下一層的私鑰及鏈編碼,如下圖:

 

衍生推導(dǎo)的方案其實(shí)有兩個(gè):一個(gè)用父私鑰推導(dǎo)(稱為強(qiáng)化衍生方程),一個(gè)用父公鑰推導(dǎo)。同時(shí)為了區(qū)分這兩種不同的衍生,在索引號也進(jìn)行了區(qū)分,索引號小于2^31用于常規(guī)衍生,而2^31到2^32-1之間用于強(qiáng)化衍生,為了方便表示索引號i’,表示2^31+i。

因此增加索引(水平擴(kuò)展)及 通過子秘鑰向下一層(深度擴(kuò)展)可以無限生成私鑰。

注意, 這個(gè)推導(dǎo)過程是確定(相同的輸入,總是有相同的輸出)也是單向的,子密鑰不能推導(dǎo)出同層級的兄弟密鑰,也不能推出父密鑰。如果沒有子鏈碼也不能推導(dǎo)出孫密鑰?,F(xiàn)在我們已經(jīng)對分層推導(dǎo)有了認(rèn)識。

一句話概括下BIP32就是:為了避免管理一堆私鑰的麻煩提出的分層推導(dǎo)方案。

秘鑰路徑及BIP44

通過這種分層(樹狀結(jié)構(gòu))推導(dǎo)出來的秘鑰,通常用路徑來表示,每個(gè)級別之間用斜杠 / 來表示,由主私鑰衍生出的私鑰起始以“m”打頭。因此,第一個(gè)母密鑰生成的子私鑰是m/0。第一個(gè)公共鑰匙是M/0。第一個(gè)子密鑰的子密鑰就是m/0/1,以此類推。

BIP44則是為這個(gè)路徑約定了一個(gè)規(guī)范的含義(也擴(kuò)展了對多幣種的支持),BIP0044指定了包含5個(gè)預(yù)定義樹狀層級的結(jié)構(gòu):
m / purpose' / coin' / account' / change / address_indexm是固定的, Purpose也是固定的,值為44(或者 0x8000002C)
Coin type這個(gè)代表的是幣種,0代表比特幣,1代表比特幣測試鏈,60代表以太坊完整的幣種列表地址:https://github.com/satoshilabs/slips/blob/master/slip-0044.mdAccount代表這個(gè)幣的賬戶索引,從0開始
Change常量0用于外部(收款地址),常量1用于內(nèi)部(也稱為找零地址)。外部用于在錢包外可見的地址(例如,用于接收付款)。內(nèi)部鏈用于在錢包外部不可見的地址,用于返回交易變更。 (所以一般使用0)
address_index這就是地址索引,從0開始,代表生成第幾個(gè)地址,官方建議,每個(gè)account下的address_index不要超過20

根據(jù) EIP85提議的討論以太坊錢包也遵循BIP44標(biāo)準(zhǔn),確定路徑是m/44'/60'/a'/0/na 表示帳號,n 是第 n 生成的地址,60 是在 SLIP44 提案中確定的以太坊的編碼。所以我們要開發(fā)以太坊錢包同樣需要對比特幣的錢包提案BIP32、BIP39有所了解。

一句話概括下BIP44就是:給BIP32的分層路徑定義規(guī)范

示例

coinaccountchangeaddresspath
Bitcoinfirstexternalfirstm / 44’ / 0’ / 0’ / 0 / 0
Bitcoinfirstexternalsecondm / 44’ / 0’ / 0’ / 0 / 1
Bitcoinfirstinternalsecondm / 44’ / 0’ / 0’ / 1 / 1
Bitcoin Testnetfirstexternalfirstm / 44’ / 1’ / 0’ / 0 / 0
Bitcoin Testnetsecondexternalfirstm / 44’ / 1’ / 1’ / 0 / 0

BIP39

BIP32 提案可以讓我們保存一個(gè)隨機(jī)數(shù)種子(通常16進(jìn)制數(shù)表示),而不是一堆秘鑰,確實(shí)方便一些,不過用戶使用起來(比如冷備份)也比較繁瑣,這就出現(xiàn)了BIP39,它是使用助記詞的方式,生成種子的,這樣用戶只需要記住12(或24)個(gè)單詞,單詞序列通過 PBKDF2 與 HMAC-SHA512 函數(shù)創(chuàng)建出隨機(jī)種子作為 BIP32 的種子。

可以簡單的做一個(gè)對比,下面那一種備份起來更友好:

// 隨機(jī)數(shù)種子
090ABCB3A6e1400e9345bC60c78a8BE7
// 助記詞種子
candy maple cake sugar pudding cream honey rich smooth crumble sweet treat

使用助記詞作為種子其實(shí)包含2個(gè)部分:助記詞生成及助記詞推導(dǎo)出隨機(jī)種子,下面分析下這個(gè)過程。

生成助記詞

助記詞生成的過程是這樣的:先生成一個(gè)128位隨機(jī)數(shù),再加上對隨機(jī)數(shù)做的校驗(yàn)4位,得到132位的一個(gè)數(shù),然后按每11位做切分,這樣就有了12個(gè)二進(jìn)制數(shù),然后用每個(gè)數(shù)去查BIP39定義的單詞表,這樣就得到12個(gè)助記詞,這個(gè)過程圖示如下:

 

(圖來源于網(wǎng)絡(luò))

下面是使用bip39生成生成助記詞的一段代碼:

<strong>var</strong> bip39 = require('bip39')
// 生成助記詞
<strong>var</strong> mnemonic = bip39.<strong>generateMnemonic</strong>()
console.<strong>log</strong>(mnemonic)

助記詞推導(dǎo)出種子

這個(gè)過程使用密鑰拉伸(Key stretching)函數(shù),被用來增強(qiáng)弱密鑰的安全性,PBKDF2是常用的密鑰拉伸算法中的一種。
PBKDF2基本原理是通過一個(gè)為隨機(jī)函數(shù)(例如 HMAC 函數(shù)),把助記詞明文和鹽值作為輸入?yún)?shù),然后重復(fù)進(jìn)行運(yùn)算最終產(chǎn)生生成一個(gè)更長的(512 位)密鑰種子。這個(gè)種子再構(gòu)建一個(gè)確定性錢包并派生出它的密鑰。

密鑰拉伸函數(shù)需要兩個(gè)參數(shù):助記詞和鹽。鹽可以提高暴力破解的難度。 鹽由常量字符串 “mnemonic” 及一個(gè)可選的密碼組成,注意使用不同密碼,則拉伸函數(shù)在使用同一個(gè)助記詞的情況下會產(chǎn)生一個(gè)不同的種子,這個(gè)過程圖示圖下:

 

(圖來源于網(wǎng)絡(luò))

同樣代碼來表示一下:

<strong>var</strong> hdkey = require('ethereumjs-wallet/hdkey')
<strong>var</strong> util = require('ethereumjs-util')
<strong>var</strong> seed = bip39.<strong>mnemonicToSeed</strong>(mnemonic, "pwd");
<strong>var</strong> hdWallet = hdkey.<strong>fromMasterSeed</strong>(seed);
<strong>var</strong> key1 = hdWallet.<strong>derivePath</strong>("m/44'/60'/0'/0/0");
console.<strong>log</strong>("私鑰:"+util.<strong>bufferToHex</strong>(key1._hdkey._privateKey));
<strong>var</strong> address1 = util.<strong>pubToAddress</strong>(key1._hdkey._publicKey, true);
console.<strong>log</strong>("地址:"+util.<strong>bufferToHex</strong>(address1));
console.<strong>log</strong>("校驗(yàn)和地址:"+ util.<strong>toChecksumAddress</strong>(address1.<strong>toString</strong>('hex')));

校驗(yàn)和地址是EIP-55中定義的對大小寫有要求的一種地址形式。

密碼可以作為一個(gè)額外的安全因子來保護(hù)種子,即使助記詞的備份被竊取,也可以保證錢包的安全(也要求密碼擁有足夠的復(fù)雜度和長度),不過另外一方面,如果我們忘記密碼,那么將無法恢復(fù)我們的數(shù)字資產(chǎn)。

一句話概括下BIP39就是:通過定義助記詞讓種子的備份更友好

小結(jié)

HD錢包(Hierarchical Deterministic Wallets)是在BIP32中提出的為了避免管理一堆私鑰的麻煩提出的分層推導(dǎo)方案。
而BIP44是給BIP32的分層增強(qiáng)了路徑定義規(guī)范,同時(shí)增加了對多幣種的支持。
BIP39則通過定義助記詞0讓種子的備份更友好。

目前我們的市面上單到的以太幣、比特幣錢包基本都遵循這些標(biāo)準(zhǔn)。

免責(zé)聲明:本文只為提供市場訊息,所有內(nèi)容及觀點(diǎn)僅供參考,不構(gòu)成投資建議,不代表本站觀點(diǎn)和立場。投資者應(yīng)自行決策與交易,對投資者交易形成的直接或間接損失,作者及本站將不承擔(dān)任何責(zé)任。!
Tag:BIP32   BIP44   BIP39  

你可能感興趣的文章

更多

熱門幣種

  • 幣名
    最新價(jià)格
    24H漲幅
  • bitcoin BTC 比特幣

    BTC

    比特幣

    $ 112326.97¥ 806530.1
    -1.49%
  • ethereum ETH 以太坊

    ETH

    以太坊

    $ 4224.37¥ 30331.82
    -2.53%
  • ripple XRP 瑞波幣

    XRP

    瑞波幣

    $ 2.8684¥ 20.5956
    -3.01%
  • tether USDT 泰達(dá)幣

    USDT

    泰達(dá)幣

    $ 0.9996¥ 7.1773
    -0.03%
  • binance-coin BNB 幣安幣

    BNB

    幣安幣

    $ 835.77¥ 6000.99
    -3.6%
  • solana SOL Solana

    SOL

    Solana

    $ 180.25¥ 1294.23
    -3.23%
  • usdc USDC USD Coin

    USDC

    USD Coin

    $ 0.9999¥ 7.1794
    +0.01%
  • tron TRX 波場

    TRX

    波場

    $ 0.3528¥ 2.5331
    -0.03%
  • dogecoin DOGE 狗狗幣

    DOGE

    狗狗幣

    $ 0.2154¥ 1.5466
    -2.14%
  • cardano ADA 艾達(dá)幣

    ADA

    艾達(dá)幣

    $ 0.8521¥ 6.1182
    -3.85%

幣圈快訊

  • 美股三大指數(shù)均小幅收跌

    2025-08-22 04:26
    金色財(cái)經(jīng)報(bào)道,美股三大指數(shù)均小幅收跌,標(biāo)普500指數(shù)跌0.4%,道指跌0.34%,納指跌0.34%。大型科技股多數(shù)下跌,特斯拉、Meta跌超1%,蘋果、微軟、英偉達(dá)、奈飛、亞馬遜、AMD、英特爾小幅下跌;谷歌小幅上漲。
  • 道瓊斯指數(shù)收盤下跌152.81點(diǎn),標(biāo)普500和納斯達(dá)克均下跌

    2025-08-22 04:06
    ChainCatcher消息,據(jù)金十報(bào)道,道瓊斯指數(shù)在8月21日(周四)收盤下跌152.81點(diǎn),跌幅為0.34%,報(bào)44,785.5點(diǎn);標(biāo)普500指數(shù)收盤下跌25.61點(diǎn),跌幅為0.4%,報(bào)6,370.17點(diǎn);納斯達(dá)克綜合指數(shù)收盤下跌72.55點(diǎn),跌幅為0.34%,報(bào)21,100.31點(diǎn)。
  • 美股三大股指小幅收跌,小鵬汽車漲超11%

    2025-08-22 04:01
    ChainCatcher消息,據(jù)金十報(bào)道,美股周四收盤,道指初步收跌0.34%,標(biāo)普500指數(shù)跌0.4%,納斯達(dá)克綜合指數(shù)跌0.34%。沃爾瑪百貨跌超4%,特斯拉跌1%。納斯達(dá)克中國金龍指數(shù)收漲1.3%,小鵬汽車漲11.6%,蔚來汽車漲超9%,阿里巴巴跌1%。
  • 美法院駁回特朗普涉民事欺詐案裁決紐約州總檢察長提起上訴

    2025-08-22 03:38
    金色財(cái)經(jīng)報(bào)道,當(dāng)?shù)貢r(shí)間8月21日,美國紐約州上訴法院駁回美國總統(tǒng)特朗普因民事欺詐被判處約5億美元罰款的判決。特朗普在其社交平臺“真實(shí)社交”上發(fā)文稱,他非常尊重法院“有勇氣推翻這項(xiàng)非法且可恥的裁決”,從商業(yè)角度來說,這項(xiàng)裁決“是一場前所未見的政治迫害”。當(dāng)天,紐約州總檢察長辦公室就上訴法院駁回裁決一事提起上訴。
  • 千萬粉絲KOLAndrewTate做空YZY,規(guī)模達(dá)17.5萬美元

    2025-08-22 03:33
    ChainCatcher消息,據(jù)@mlmabc監(jiān)測,擁有千萬粉絲的KOLAndrewTate剛剛在YZY(KanyeWest的Meme幣)上開立了一個(gè)17.5萬美元的空頭倉位,開倉價(jià)為0.8523美元,爆倉價(jià)為1.0306美元。
  • 查看更多