區塊鏈知識系列 - HD Wallet 分層確定性錢包

HD錢包 - HD Wallet 分層確定性錢包

錢包的類型

私鑰不同的生成方法,也對應着不同的錢包結構,通常可以分爲非確定性錢包和確定性錢包。比特幣最早的客戶端(Satoshi client)就是非確定性錢包,錢包是一堆隨機生成的私鑰的集合。

確定性錢包則不需要每次轉賬都要備份,確定性錢包的私鑰是對種子進行單向哈希運算生成的,種子是一串由隨機數生成器生成的隨機數。在確定性錢包中,只要有這個種子,就可以找回所有私鑰

BIP44的規則使得 HD 錢包非常強大,用戶只需要保存一個種子,就能控制所有幣種,所有賬戶的錢包。

可以一個錢包,同時支持比特幣和以太坊

HD 錢包是生成不重複使用地址的方法 ,記住一個種子就可以訪問所有地址的錢而不需要每個地址都備份私鑰。當然HD 錢包不僅適用於比特幣,HD 錢包可以讓一個錢包同時管理多資產成爲可能性。

BIP32

定義 Hierarchical Deterministic wallet (簡稱 “HD Wallet”),是一個系統可以從單一個 seed 產生一樹狀結構儲存多組 keypairs(私鑰和公鑰)。好處是可以方便的備份、轉移到其他相容裝置(因爲都只需要 seed),以及分層的權限控制等。

BIP39

將 seed 用方便記憶和書寫的單字表示。一般由 12 個單字組成,稱爲 mnemonic code(phrase),中文稱爲助記詞或助記碼。

BIP44

基於 BIP32 的系統,賦予樹狀結構中的各層特殊的意義。讓同一個 seed 可以支援多幣種、多帳戶等

各層定義如下:

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

  • purporse’ 固定是 44’,代表使用 BIP44
  • coin_type’ 用來表示不同幣種,例如 Bitcoin 就是 0’,Ethereum 是 60’。
  • account’ 代表這個幣的賬戶索引,從0開始。
  • change 常量0用於外部鏈,常量1用於內部鏈(一般使用0)
  • address_index 這就是地址索引,從0開始,代表生成第幾個地址,官方建議,每個account下的address_index不要超過20

例如: m/44'/60'/0'/0/0 表示在一個 Ethereum HD Wallet 中,第一個帳戶的第一組 keypair

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章