對於儲存區塊鏈資產的錢包,還有不少人沒搞懂,尤其是地址、公鑰、密碼、私鑰、助記詞、Keystore等專有名詞,讓人一頭霧水。可是,如果不搞清楚這些概念,很可能會造成區塊鏈資產的損失。
今天,我們就把這些讓人看得雲裡霧裡的概念一次性講明白。
公鑰=銀行賬戶,地址=銀行卡號
為了方便理解,我們還是採用《比特幣的安全性到底有多高?》的比喻:「公鑰」就像你的銀行賬戶,「地址」就像你的銀行卡號碼。
以以太坊錢包為例,建立一個以太坊錢包後,會生成一個以“0x”開頭的字串,這個字串就是錢包「地址」。
錢包的「地址」是由「公鑰」透過計算得來,就像銀行先給你開戶,後給你銀行卡卡號。
錢包「地址」的主要用途是收款,當然也可以作為轉賬的憑證,就像別人打錢給你時你需要告訴人家銀行卡卡號一樣。
密碼=銀行卡密碼
在建立錢包時,需要自己設定一個「密碼」,通常這個「密碼」要求不少於8個字元。為了安全,「密碼」最好設定複雜一點。
這個「密碼」的用途有兩個,一是轉賬時需要輸入「密碼」,類似於你用銀行卡給別人轉賬需要輸入密碼;二是用Keystore匯入錢包時,必須輸入這個「密碼」。
這個「密碼」是可以進行修改或重置的。輸入原「密碼」後,就可以直接修改「密碼」了;但如果原「密碼」忘記了,可以用「私鑰」或是「助記詞」匯入錢包,同時設定新的「密碼」。
在現實世界中,一個銀行卡只對應一個密碼,密碼修改後,原密碼就失效了。但是區塊鏈錢包中,一個錢包在不同手機上可以用不同的「密碼」,彼此相互獨立,互不影響。
私鑰=銀行卡號+銀行卡密碼
建立錢包後,輸入「密碼」可以匯出「私鑰」。這個「私鑰」是由64個字元組成的字串,當然有的錢包採用的編碼不一樣,字元數可能更少。一個錢包「地址」只有一個私鑰且不能修改。
只要輸入「私鑰」並設定一個「密碼」(不用輸入原「密碼」),就能進入錢包並擁有這個錢包的掌控權,就可以把錢包中的幣轉移走。
所以,私鑰就相當於是“銀行卡號+銀行卡密碼”,非常重要,一定要妥善儲存。
助記詞=私鑰=銀行卡號+銀行卡密碼
前面提到,「私鑰」由64位字串組成,所以非常容易抄錯,於是就出現了「助記詞」。
「助記詞」,顧名思義,就是幫助你記錄、記憶。「助記詞」由12個單片語成,每個單詞之間有一個空格,和「私鑰」一樣,一個錢包只有一套「助記詞」且不能修改。
「助記詞」和「私鑰」具有同樣的功能:只要輸入「助記詞」並設定一個「密碼」(不用輸入原「密碼」),就能進入錢包並擁有這個錢包的掌控權,就可以把錢包中的幣轉移走。
「助記詞」只能備份一次,備份後,在錢包中便不會再顯示。因此,在備份時一定要抄寫下來。
Keystore+密碼=私鑰
錢包裡有一個備份「Keystore」的功能,選擇備份「Keystore」,輸入「密碼」,會出現一大段程式碼,這個就是「Keystore」。
在匯入錢包時,只要輸入「Keystore」 和「密碼」,就能進入錢包了。這一點和用「私鑰」或「助記詞」匯入錢包不一樣,後兩者不需要知道原「密碼」,而是直接重置「密碼」。
「Keystore」可以理解為加密後的「私鑰」,和錢包的「密碼」有關,錢包的「密碼」修改後,「Keystore」也發生相應變化。
需要特別注意的是,在用「Keystore」匯入錢包時,需要輸入「密碼」,這個「密碼」是備份「Keystore」時的錢包「密碼」,與後來「密碼」是否有修改無關。
結語
在現實世界中,如果你的銀行卡丟了,密碼忘了,可以去銀行幫你找回,你的錢還是你的錢,丟不了,這是中心化的優勢。
但是在區塊鏈世界中,錢包資訊要是丟了,就沒人能夠幫你找回。因此,只要你保護好錢包資訊,錢包裡面的財產只屬於你自己,誰也搶不走,這是去中心化的優勢。