文章以及資料(開源):github地址
首先明白密碼不是私鑰,它是在創建賬戶時候的密碼(注意可以修改)。密碼在以下情況下會使用到:
私鑰由64位長度的十六進制的字符組成,比如:0xA4356E49C88C8B7AB370AF7D5C0C54F0261AAA006F6BDE09CD4745CF54E0115A
,一個賬戶只有一個私鑰且不能修改,。通常一個錢包中私鑰和公鑰是成對出現的,有了私鑰,我們就可以通過一定的算法生成公鑰,再通過公鑰經過一定的算法生成地址,這一過程都是不可逆的。私鑰一定要妥善保管,若被泄漏別人可以通過私鑰解鎖賬號轉出你的該賬號的數字貨幣。
Keystore常見於以太坊錢包,它是將私鑰以加密的方式保存爲一份 JSON 文件,這份 JSON 文件就是 keystore,所以它就是加密後的私鑰。Keystore必須配合錢包密碼才能使用該賬號。
私鑰是64位長度的十六進制的字符,不利於記錄且容易記錯,所以用算法將一串隨機數轉化爲了一串12 ~ 24個容易記住的單詞,方便保存記錄。注意:
要弄清楚助記詞與私鑰的關係,得清楚BIP協議,是Bitcoin Improvement Proposals
的縮寫,意思是Bitcoin 的改進建議,用於提出 Bitcoin 的新功能或改進措施。BIP協議衍生了很多的版本,主要有BIP32、BIP39、BIP44。
BIP是用於提出 Bitcoin 的新功能或改進措施,那麼對於以太坊來說如何支持呢?
m/44'/60'/0'/0/n
,n 是第 n 次生成地址。目前以太坊客戶端實現了BIP32的客戶端有:Jaxx, Metamask, Exodus, imToken, TREZOR (ETH) & Digital Bitbox
。解鎖賬戶有如下幾種方式:
我們可以得到以下總結: