原文:如何妥善備份你的以太坊錢包驶兜?
作者:ashu
新世界大門
當(dāng)你打開數(shù)字貨幣新世界大門時远寸,你需要學(xué)會一項在這世界生存的技能, 如何妥善的備份你的錢包 肆资。
在過去的世界中郑原,當(dāng)你把密碼弄丟時监署,你僅需要向服務(wù)商提交忘記密碼的申請,稍過一會栖秕,你就會收到一封郵件晓避,拿起鍵盤俏拱,輸入你的新密碼。這過程就像魔法一樣事格,你重新獲得賬戶的支配權(quán)。
這么理所當(dāng)然的功能远搪,在新世界中逢捺,你再也見不著蹤影。
這是你看到數(shù)字貨幣諸多不方便的一面倘潜,也是它令人著迷的另一面涮因。因?yàn)檫@是人類歷史上恨憎,第一次通過技術(shù)徹底、純粹地保障「私有財產(chǎn)神圣不可侵犯」瓤荔。而這一切输硝,都建立在你如何妥善地保管你的私鑰的基礎(chǔ)上程梦。
私鑰,即財富郎逃。
錢包生成機(jī)制
在數(shù)字貨幣世界中挺份,你的錢包由私鑰,公鑰構(gòu)成优训。在學(xué)會保管錢包前各聘,你需要明白私鑰與公鑰的生成機(jī)制: 非對稱加密算法躲因。
在 1976 年以前忌傻,所有的加密方式都是同一種模式:
- 甲方選擇一種加密規(guī)則搞监,對信息進(jìn)行加密腺逛;
- 乙方使用同一種規(guī)則棍矛,對信息進(jìn)行解謎够委;
由于加密與解密皆為同一種規(guī)則,被稱為「對稱加密算法」茁帽。此加密算法的最大弱點(diǎn)就是甲乙雙方都需要了解解密規(guī)則潘拨,而保存和傳遞解密規(guī)則的過程存在極高的安全風(fēng)險铁追。
直到 1977 年,Ron Rivest琅束、Adi Shamir 和 Leonard Adleman 設(shè)計了一種非對稱加密算法涩禀,此算法以他們?nèi)嗣置谎郏环Q為「RSA 算法」罪治。
以上圖為例,解釋非對稱加密模式的流程:
- Bob 與 Alice 通過非對稱算法生成各自的私鑰和公鑰(公鑰可以通過私鑰推導(dǎo))雁社;
- Bob 想給 Alice 發(fā)送一份加密信息霉撵;
- Bob 用 Alice 的公鑰對信息進(jìn)行加密;
- 加密的信息僅能通過 Alice 的私鑰解密徒坡;
當(dāng)前數(shù)字貨幣(比特幣喇完、以太幣等)采用的是「橢圓曲線算法」,橢圓曲線算法同樣也是非對稱算法不脯,相比起 RSA 算法有更多的優(yōu)勢防楷,比如安全性能高则涯、計算量小、存儲空間占用小亿昏、帶寬要求低等龙优。
每一個錢包賬戶包含一份密鑰對事秀,即私鑰與公鑰。私鑰(k)是一個數(shù)字宰衙,通常是隨機(jī)選出的睹欲。有了私鑰,我們就可以使用橢圓曲線乘法這個單向加密函數(shù)生成一個公鑰(K)袋哼。有了公鑰(K)涛贯,我們就可以使用一個單向加密哈希函數(shù)生成該賬戶地址(A)。
當(dāng)你發(fā)生交易時弟翘,每筆交易都需要一個有效的簽名才會被存儲在區(qū)塊鏈稀余。只有有效的私鑰才能產(chǎn)生有效的數(shù)字簽名,因此擁有錢包賬戶的私鑰就擁有了該賬戶的支配權(quán)盒蟆。
錢包形態(tài)
在了解錢包的生成機(jī)制后茁影,我們很快就明白一點(diǎn)丧凤,我們備份錢包愿待,就是備份私鑰仍侥,但因保管方式不同鸳君,所表現(xiàn)的形態(tài)也不一樣或颊。
目前常見的私鑰形態(tài):
- Private Key
- Keystore && Password
- Mnemonic Seed
Private Key
Private Key 就是一份隨機(jī)生成的 256 位二進(jìn)制數(shù)字,你甚至可以用硬幣醉顽、鉛筆和紙來隨機(jī)生成你的私鑰:擲硬幣 256 次游添,用紙和筆記錄正反面并轉(zhuǎn)換為 0 和 1唆涝,隨機(jī)得到的 256 位二進(jìn)制數(shù)字可作為私鑰唇辨。這 256 位二進(jìn)制數(shù)字赏枚,就是私鑰原始的狀態(tài)嚎京。
Keystore && Password
在以太坊官方錢包中鞍帝,私鑰與公鑰將會以加密(創(chuàng)建錢包時設(shè)置的密碼帕涌,請務(wù)必記住r韭)的方式保存為一份 JSON 文件纫版,存儲在 /Users/yourname/Library/Ethereum/keystore 中客情。 這份 JSON 文件就是 keystore,所以你需要同時備份 keystore 和對應(yīng)的 password梭伐。
Mnemonic code
Mnemonic code 由 BIP 39 提案提出糊识,目的是通過隨機(jī)生成 12 ~ 24 個容易記住的單詞赂苗,單詞序列通過 PBKDF2 與 HMAC-SHA512 函數(shù)創(chuàng)建出隨機(jī)種子贮尉,該種子通過 BIP-0032 提案的方式生成確定性錢包。
BIP 39 定義助記碼創(chuàng)建過程如下:
1. 創(chuàng)造一個 128 到 256 位的隨機(jī)順序(熵)绘盟。
2. 提出 SHA256 哈希前幾位鸠真,就可以創(chuàng)造一個隨機(jī)序列的校驗(yàn)和。
3. 把校驗(yàn)和加在隨機(jī)順序的后面龄毡。
4. 把順序分解成 11 位的不同集合吠卷,并用這些集合去和一個預(yù)先已經(jīng)定義的 2048個單詞字典做對應(yīng)。
5. 生成一個 12 至 24 個單詞的助記碼沦零。
所以當(dāng)你記住 12 ~ 24 個助記碼后祭隔,就相當(dāng)于記住私鑰。助記碼要比私鑰更方便記憶和保管。目前支持助記碼的錢包有 imToken 和 jaxx 疾渴。
錢包備份方式
因?yàn)殄X包的形態(tài)多樣(本質(zhì)一樣)千贯,所以備份的方式也同樣多點(diǎn),但最終的目的: 防盜搞坝,防丟,分散風(fēng)險 敦第。
防盜:分離備份,假如 keystore 或密碼被盜,但對應(yīng)的密碼 和 keystore 依然安全舀射;
防丟:多處備份空镜,降低丟失所有對應(yīng)的 keystore && password 、助記碼洼怔、私鑰等等風(fēng)險诡右;
分散風(fēng)險:將資金適當(dāng)分散,降低損失程度次员,同時采取多重簽名方式市殷,提取超過限制金額绪妹,需要多把私鑰授權(quán);
下面為大家介紹常見的備份方式:
- 多處和分離備份 keystore && password
- 紙錢包
- 腦錢包
- 多重簽名
多處和分離備份 keystore && password
打開以太坊官方錢包,在菜單欄中選擇 ACCOUNTS -> BACKUP -> ACCOUNTS民镜,你會看到一個 keystore 文件夾,在里面保存你創(chuàng)建過的錢包賬戶,以 UTC--2016-08-16....... 格式命名的 JSON 文件,這就是你的 keystore 文件葛菇。
將 keystore 文件放置多處安全的位置,如離線的 USB 以及你信任的云存儲服務(wù)商庵朝。
keystone 對應(yīng)的 password,你應(yīng)該采用強(qiáng)密碼,同樣多處且與 keystore 分離備份。
紙錢包備份
紙錢包實(shí)質(zhì)就是將 keystore 或 私鑰以紙質(zhì)化形式保存,一般為二維碼形式苛坚。
你可以通過命令行的方式:
cat /Users/yourname/Library/Ethereum/keystore/<key_file> | qrencode -o keystore.png
也可以到 MyEtherWallet: Open Source JavaScript Client-Side Ether Wallet 離線提交你的 keystore 或 私鑰娇昙,就可以直接打印對應(yīng)的二維碼紙錢包危喉。
腦錢包
我們所說的腦錢包并不是由用戶自身輸入自定義的詞句生成私鑰(因?yàn)檫@并不安全),而是通過 BIP 39 提案的方式生成足夠隨機(jī)的颗胡,可記憶的助記碼。這是一個方案闸迷,但不是一個非常好的方案,因?yàn)槿祟惖拇竽X并不總是靠譜师溅。
多重簽名
多重簽名是一個不錯的選擇墓臭,它的優(yōu)勢是當(dāng)你需要提取超過限制的金額時窖维,需要多把私鑰同時授權(quán)琳轿,同時提升防盜琉闪,防丟的安全性刻两。
在以太坊官方錢包中户誓,你可以在 Wallet Contracts 下方中選擇 Add Wallet Contract硕旗,前提是你用來創(chuàng)建 Wallet Contract 的 account 有不少于 0.02 ETH墙基,足以支付交易所需的費(fèi)用。
當(dāng)你選擇 MULTISIGNATURE WALLET CONTRACT ,將會看到如下提示:
“This is a joint account controlled by X owners. You can send up to Y ether per day. Any transaction over that daily limit requires the confirmation of Z owners.”
X 代表此錢包合約由多少賬戶控制
Y 代表在單個賬戶授權(quán)情況下奸忽,每日可提款的上限
Z 代表突破提款上限富俄,需要多少賬戶授權(quán)
默認(rèn)我們采取 X = 3 ,Z =2 的方式浅妆,錢包合約由三個賬戶管理,需突破取款上限需要兩個賬戶同時授權(quán)。
采取多重簽名的機(jī)制后仓手,你可以多處且分離的方式保管你的 keystore 和 password剿另,提升防盜,防丟的安全性阳准。
關(guān)于更多多重簽名的詳情可看官方文檔: Account Management — Ethereal Homestead 0.1 documentation
結(jié)語
不管你用任何方式備份錢包讼稚,達(dá)到 防盜,防丟藕帜,分散風(fēng)險的目的即可收津。