目錄文章以及資料(開源):github地址
- 密碼
- 私鑰
- keystore
- 助記詞
- 以太坊對BIP的支持
- 密碼、私鑰、keystore與助記詞的關系
- 如何解鎖賬戶
密碼
首先明白密碼不是私鑰,它是在創建賬戶時候的密碼(注意可以修改),密碼在以下情況下會使用到:
- 作為轉賬的支付密碼
- 用keystore匯入錢包的時候需要輸入的密碼,用來解鎖keystore的
私鑰
私鑰由64位長度的十六進制的字符組成,比如:0xA4356E49C88C8B7AB370AF7D5C0C54F0261AAA006F6BDE09CD4745CF54E0115A,一個賬戶只有一個私鑰且不能修改,,通常一個錢包中私鑰和公鑰是成對出現的,有了私鑰,我們就可以通過一定的演算法生成公鑰,再通過公鑰經過一定的演算法生成地址,這一程序都是不可逆的,私鑰一定要妥善保管,若被泄漏別人可以通過私鑰解鎖賬號轉出你的該賬號的數字貨幣,
keystore
Keystore常見于以太坊錢包,它是將私鑰以加密的方式保存為一份 JSON 檔案,這份 JSON 檔案就是 keystore,所以它就是加密后的私鑰,Keystore必須配合錢包密碼才能使用該賬號,
助記詞
私鑰是64位長度的十六進制的字符,不利于記錄且容易記錯,所以用演算法將一串亂數轉化為了一串12 ~ 24個容易記住的單詞,方便保存記錄,注意:
- 助記詞是私鑰的另一種表現形式
- 助記詞可以獲取相關聯的多個私鑰,反過來私鑰沒法獲取助記詞,
要弄清楚助記詞與私鑰的關系,得清楚BIP協議,是Bitcoin Improvement Proposals的縮寫,意思是Bitcoin 的改進建議,用于提出 Bitcoin 的新功能或改進措施,BIP協議衍生了很多的版本,主要有BIP32、BIP39、BIP44,
以太坊對BIP的支持
BIP是用于提出 Bitcoin 的新功能或改進措施,那么對于以太坊來說如何支持呢?
- 以太坊在EIPs/issues/84中討論,是否遵循 BIP32 和 BIP44,社區里提出來很多有意思的觀點,位元幣是基于 UTXO 的,所以可以使用 HD 錢包(BIP32)為每個交易分配一個新地址,以保護您的隱私,然而,以太坊是基于帳戶,每個帳戶都有一個地址,BIP 是位元幣的提案,而且位元幣的資料結構的設計是圍繞改變地址的想法構建的,BIP 的一些提案可能并不適合以太坊,以太坊的模式和位元幣UTXO 不同,以太坊轉賬不能改變地址,如果在以太坊上實作 UTXO ,用戶還必須簽名兩個交易以將余額的一部分發送到一個地址,將余額的一部分發送到第二個地址 - 這將使成本增加一倍,而且第二個交易可能不會在同一個區塊中,當然以太坊也可以通過智能合約的方式實作,另外,以太坊目前官方錢包采用 KDF 的形式,也就是我們常說的 Keystore 的形式,
- 以太坊在EIPs/issues/85中討論,以太坊社區似乎也采用了 BIP32 的做法,提議 HD 路徑為 :
m/44'/60'/0'/0/n,n 是第 n 次生成地址,目前以太坊客戶端實作了BIP32的客戶端有:Jaxx, Metamask, Exodus, imToken, TREZOR (ETH) & Digital Bitbox,
密碼、私鑰、keystore與助記詞的關系

如何解鎖賬戶
解鎖賬戶有如下幾種方式:
- 私鑰(Private Key)
- Keystore+密碼(Keystore+Password)
- 助記詞(Mnemonic code)
我們可以得到以下總結:
- 通過私鑰+密碼可以生成keystore,即加密私鑰,
- 通過keystore+密碼可以獲取私鑰,即解密keystore,
- 通過助記詞根據不同的路徑獲取不同的私鑰,即使用HD錢包將助記詞轉化成種子來生成主私鑰,然后派生海量的子私鑰和地址,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/169011.html
標籤:其他
