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

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

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

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

引言

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

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

協(xié)議官方鏈接如果想詳細的了解這些協(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

驗證網站:https://iancoleman.io/bip39/

數字錢包概念

錢包用來存錢的,在區(qū)塊鏈中,我們的數字資產都會對應到一個賬戶地址上, 只有擁有賬戶的鑰匙(私鑰)才可以對資產進行消費(用私鑰對消費交易簽名)。
私鑰和地址的關系如下:

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

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

如何創(chuàng)建賬號

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

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

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

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

BIP32、BIP39、BIP44

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

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

BIP32:定義分層確定性錢包(簡稱“HD Wallet”),是一個系統(tǒng)可以從單個種子 生成一樹狀結構存儲多組密鑰對(私鑰和公鑰)。好處是可以方便的備份、轉移到其他相容裝置因為(都只需要種子),以及分層的權限等。

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

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

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

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

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

BIP32

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

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

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

 

(圖來自精通比特幣)

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

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

來分析下這個分層推導的過程,第一步推導主秘鑰的過程:

 

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

 

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

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

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

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

秘鑰路徑及BIP44

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

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

根據 EIP85提議的討論以太坊錢包也遵循BIP44標準,確定路徑是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 提案可以讓我們保存一個隨機數種子(通常16進制數表示),而不是一堆秘鑰,確實方便一些,不過用戶使用起來(比如冷備份)也比較繁瑣,這就出現(xiàn)了BIP39,它是使用助記詞的方式,生成種子的,這樣用戶只需要記住12(或24)個單詞,單詞序列通過 PBKDF2 與 HMAC-SHA512 函數創(chuàng)建出隨機種子作為 BIP32 的種子。

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

// 隨機數種子
090ABCB3A6e1400e9345bC60c78a8BE7
// 助記詞種子
candy maple cake sugar pudding cream honey rich smooth crumble sweet treat

使用助記詞作為種子其實包含2個部分:助記詞生成及助記詞推導出隨機種子,下面分析下這個過程。

生成助記詞

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

 

(圖來源于網絡)

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

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

助記詞推導出種子

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

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

 

(圖來源于網絡)

同樣代碼來表示一下:

<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>("校驗和地址:"+ util.<strong>toChecksumAddress</strong>(address1.<strong>toString</strong>('hex')));

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

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

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

小結

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

目前我們的市面上單到的以太幣、比特幣錢包基本都遵循這些標準。

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

你可能感興趣的文章

更多

熱門幣種

  • 幣名
    最新價格
    24H漲幅
  • bitcoin BTC 比特幣

    BTC

    比特幣

    $ 103310.09¥ 735846.77
    +1.81%
  • ethereum ETH 以太坊

    ETH

    以太坊

    $ 3386.62¥ 24121.87
    +2.83%
  • tether USDT 泰達幣

    USDT

    泰達幣

    $ 0.9998¥ 7.1212
    -0.01%
  • ripple XRP 瑞波幣

    XRP

    瑞波幣

    $ 2.3251¥ 16.5609
    +5.07%
  • binance-coin BNB 幣安幣

    BNB

    幣安幣

    $ 950.84¥ 6772.54
    +0.98%
  • solana SOL Solana

    SOL

    Solana

    $ 159.16¥ 1133.64
    +3.14%
  • usdc USDC USD Coin

    USDC

    USD Coin

    $ 1.0002¥ 7.1241
    +0.03%
  • tron TRX 波場

    TRX

    波場

    $ 0.2867¥ 2.042
    +0.63%
  • dogecoin DOGE 狗狗幣

    DOGE

    狗狗幣

    $ 0.1636¥ 1.1652
    +0.68%
  • cardano ADA 艾達幣

    ADA

    艾達幣

    $ 0.5364¥ 3.8206
    +1.9%

幣圈快訊

  • 美國一法院裁定FBI對清除一塊包含3,400枚BTC硬盤無責

    2025-11-06 16:57
    Cointelegraph在X平臺發(fā)文表示,美國一法院裁定FBI對一塊包含3,400枚BTC的硬盤被清除不承擔責任,因硬盤所有者在后期才承認是其所有。此次事件增加了被認為無法追回的加密貨幣數量,目前估計有高達370萬枚BTC(約占總供應量的18%)丟失。
  • 美國法院駁回“前罪犯”追討價值3.45億美元比特幣的訴訟

    2025-11-06 16:51
    據Cointelegraph報道,美國第十一巡回上訴法院三名法官小組駁回了“前罪犯”MichaelPrime對政府的訴訟。Prime此前因身份盜竊罪被定罪,其聲稱FBI查封并清除了其存有超過3,400枚比特幣的硬盤,目前價值約3.45億美元。法院認為Prime無權起訴政府,因為他此前否認擁有大量加密貨幣。在2019年11月認罪協(xié)議前,Prime曾聲稱擁有“約3,500枚比特幣”,但認罪后改口稱僅擁有“200至1,500美元的比特幣”。2022年7月出獄后,Prime要求歸還硬盤,但FBI已按標準程序將其清除。
  • 香港上市公司Moon已在美國OTCQX市場掛牌交易,聚焦比特幣消費產品

    2025-11-06 16:49
    香港上市公司MoonInc.(港交所代碼:1723)宣布其股票已在OTCQXBestMarket上市,向美國零售和機構投資者開放交易。這一升級旨在增強美國投資者對這家香港上市公司的可及性,并支持其向比特幣消費產品的戰(zhàn)略轉型。此次OTCQX上市被視為其國際增長戰(zhàn)略的一部分,同時進一步推動了香港和亞洲地區(qū)的比特幣生態(tài)系統(tǒng)發(fā)展。未來關鍵里程碑包括泰國和韓國的牌照和合作伙伴發(fā)布,以及比特幣加載點的活躍用戶數據更新。公司計劃將比特幣加載功能整合到其傳統(tǒng)預付分銷網絡中,目標是通過現(xiàn)金充值渠道分發(fā)比特幣。
  • 美法院免責FBI誤擦3,400枚BTC硬盤,加密貨幣“永久丟失”量逼近370萬枚

    2025-11-06 16:48
    Cointelegraph在X平臺發(fā)文表示,美國一法院裁定FBI對一塊包含3,400枚BTC的硬盤被清除不承擔責任,因硬盤所有者在后期才承認是其所有。此次事件增加了被認為無法追回的加密貨幣數量,目前估計有高達370萬枚BTC(約占總供應量的18%)丟失。
  • 幣安Alpha:UnifAINetwork(UAI)空投申領門檻為229Alpha積分

    2025-11-06 16:47
    BinanceAlpha上線UnifAINetwork(UAI),Alpha交易將于2025年11月6日19:00(UTC8)開放。擁有至少229點幣安Alpha積分的用戶可以按先到先得的方式領取320個UAI代幣的空投。如果獎勵池未全部發(fā)放完畢,積分門檻將每5分鐘自動降低5點。請注意,領取空投將消耗15個幣安Alpha點數。用戶必須在24小時內在Alpha活動頁面確認領??;否則,將被視為放棄領取空投。
  • 查看更多