1. 程式人生 > >區塊鏈錢包之BIP32, BIP39, BIP44

區塊鏈錢包之BIP32, BIP39, BIP44

BIP 全名是 Bitcoin Improvement Proposals,是提出 Bitcoin 的新功能或改進措施的檔案。可由任何人提出,經過稽核後公佈在 bitcoin/bips 上。BIP 和 Bitcoin 的關係,就像是 RFC 之於 Internet。

BIP32, BIP39, BIP44

HD Wallet虛擬貨幣錢包裡面使用的就是這些東西 ,包含其設計動機和理念、實作方式、例項等。

  • BIP32:定義 Hierarchical Deterministic wallet (簡稱 “HD Wallet”),是一個系統可以從單一個 seed 產生一樹狀結構儲存多組 keypairs(私鑰和公鑰)。好處是可以方便的備份、轉移到其他相容裝置(因為都只需要 seed),以及分層的許可權控制等。
  • BIP39:將 seed 用方便記憶和書寫的單字表示。一般由 12 個單字組成,稱為 mnemonic code(phrase),中文稱為助記詞或助記碼。例如:
average green proud remember advance trick estate oblige trouble when cube person
  • BIP44:基於 BIP32 的系統,賦予樹狀結構中的各層特殊的意義。讓同一個 seed 可以支援多幣種、多帳戶等。各層定義如下:
m / purpose' / coin_type' / account' / change / address_index
//purporse'
: 固定值44', 代表是BIP44 //coin_type': 這個代表的是幣種, 可以相容很多種幣, 比如BTC0', ETH是60' //btc一般是 m/44'/0'/0'/0 //eth一般是 m/44'/60'/0'/0

校驗測試

在Android中, 一般是使用bitcoinj這個庫基本上可以完成所有操作, 但是對於ETH以太坊,可以使用一個更方便的庫web3j
當前的錢包app基本上都用所有幣種公用一套助記詞, 然後可以分別生成不同的錢包地址, 如果需要測試助記詞, 和校驗助記詞生成的地址, 那麼可以訪問這個網站: https://iancoleman.io/bip39/

1. 生成助記詞

2. 選擇幣種, 檢視生成的地址