如何妥善備份你的以太坊錢包?

新世界大門

當你打開數字貨幣新世界大門時,你需要學會一項在這世界生存的技能, 如何妥善的備份你的錢包

在過去的世界中,當你把密碼弄丟時,你僅需要向服務商提交忘記密碼的申請,稍過一會,你就會收到一封郵件,拿起鍵盤,輸入你的新密碼。這過程就像魔法一樣,你重新獲得賬戶的支配權。

這么理所當然的功能,在新世界中,你再也見不著蹤影。

這是你看到數字貨幣諸多不方便的一面,也是它令人著迷的另一面。因為這是人類歷史上,第一次通過技術徹底、純粹地保障「私有財產神圣不可侵犯」。而這一切,都建立在你如何妥善地保管你的私鑰的基礎上。

私鑰,即財富。

錢包生成機制

在數字貨幣世界中,你的錢包由私鑰,公鑰構成。在學會保管錢包前,你需要明白私鑰與公鑰的生成機制: 非對稱加密算法。

在 1976 年以前,所有的加密方式都是同一種模式:

  1. 甲方選擇一種加密規則,對信息進行加密;
  2. 乙方使用同一種規則,對信息進行解謎;

由于加密與解密皆為同一種規則,被稱為「對稱加密算法」。此加密算法的最大弱點就是甲乙雙方都需要了解解密規則,而保存和傳遞解密規則的過程存在極高的安全風險。

直到 1977 年,Ron Rivest、Adi Shamir 和 Leonard Adleman 設計了一種非對稱加密算法,此算法以他們三人名字命名,被稱為「RSA 算法」。

圖片出自 media.consensys.net

以上圖為例,解釋非對稱加密模式的流程:

  1. Bob 與 Alice 通過非對稱算法生成各自的私鑰和公鑰(公鑰可以通過私鑰推導);
  2. Bob 想給 Alice 發送一份加密信息;
  3. Bob 用 Alice 的公鑰對信息進行加密;
  4. 加密的信息僅能通過 Alice 的私鑰解密;

當前數字貨幣(比特幣、以太幣等)采用的是「橢圓曲線算法」,橢圓曲線算法同樣也是非對稱算法,相比起 RSA 算法有更多的優勢,比如安全性能高、計算量小、存儲空間占用小、帶寬要求低等。

每一個錢包賬戶包含一份密鑰對,即私鑰與公鑰。私鑰(k)是一個數字,通常是隨機選出的。有了私鑰,我們就可以使用橢圓曲線乘法這個單向加密函數生成一個公鑰(K)。有了公鑰(K),我們就可以使用一個單向加密哈希函數生成該賬戶地址(A)。

當你發生交易時,每筆交易都需要一個有效的簽名才會被存儲在區塊鏈。只有有效的私鑰才能產生有效的數字簽名,因此擁有錢包賬戶的私鑰就擁有了該賬戶的支配權。

錢包形態

在了解錢包的生成機制后,我們很快就明白一點,我們備份錢包,就是備份私鑰,但因保管方式不同,所表現的形態也不一樣。

目前常見的私鑰形態:

  1. Private Key
  2. Keystore && Password
  3. Mnemonic Seed

Private Key

Private Key 就是一份隨機生成的 256 位二進制數字,你甚至可以用硬幣、鉛筆和紙來隨機生成你的私鑰:擲硬幣 256 次,用紙和筆記錄正反面并轉換為 0 和 1,隨機得到的 256 位二進制數字可作為私鑰。這 256 位二進制數字,就是私鑰原始的狀態。

Keystore && Password

在以太坊官方錢包中,私鑰與公鑰將會以加密(創建錢包時設置的密碼,請務必記住!)的方式保存為一份 JSON 文件,存儲在 /Users/yourname/Library/Ethereum/keystore 中。 這份 JSON 文件就是 keystore,所以你需要同時備份 keystore 和對應的 password。

Mnemonic code

Mnemonic code 由 BIP 39 提案提出,目的是通過隨機生成 12 ~ 24 個容易記住的單詞,單詞序列通過 PBKDF2 與 HMAC-SHA512 函數創建出隨機種子,該種子通過 BIP-0032 提案的方式生成確定性錢包。

BIP 39 定義助記碼創建過程如下:

  1. 創造一個 128 到 256 位的隨機順序(熵)。
  2. 提出 SHA256 哈希前幾位,就可以創造一個隨機序列的校驗和。
  3. 把校驗和加在隨機順序的后面。
  4. 把順序分解成 11 位的不同集合,并用這些集合去和一個預先已經定義的 2048個單詞字典做對應。
  5. 生成一個 12 至 24 個單詞的助記碼。

所以當你記住 12 ~ 24 個助記碼后,就相當于記住私鑰。助記碼要比私鑰更方便記憶和保管。目前支持助記碼的錢包有 token 和 jaxx 。

錢包備份方式

因為錢包的形態多樣(本質一樣),所以備份的方式也同樣多點,但最終的目的: 防盜,防丟,分散風險

  • 防盜:分離備份,假如 keystore 或密碼被盜,但對應的密碼 和 keystore 依然安全;

  • 防丟:多處備份,降低丟失所有對應的 keystore && password 、助記碼、私鑰等等風險;

  • 分散風險:將資金適當分散,降低損失程度,同時采取多重簽名方式,提取超過限制金額,需要多把私鑰授權;

下面為大家介紹常見的備份方式:

  1. 多處和分離備份 keystore && password
  2. 紙錢包
  3. 腦錢包
  4. 多重簽名

多處和分離備份 keystore && password

  1. 打開以太坊官方錢包,在菜單欄中選擇 ACCOUNTS -> BACKUP -> ACCOUNTS,你會看到一個 keystore 文件夾,在里面保存你創建過的錢包賬戶,以 UTC--2016-08-16....... 格式命名的 JSON 文件,這就是你的 keystore 文件。
  2. 將 keystore 文件放置多處安全的位置,如離線的 USB 以及你信任的云存儲服務商。
  3. keystone 對應的 password,你應該采用強密碼,同樣多處且與 keystore 分離備份。

紙錢包備份

紙錢包實質就是將 keystore 或 私鑰以紙質化形式保存,一般為二維碼形式。

你可以通過命令行的方式

cat /Users/yourname/Library/Ethereum/keystore/<key_file> | qrencode -o keystore.png

也可以到 MyEtherWallet: Open Source JavaScript Client-Side Ether Wallet 離線提交你的 keystore 或 私鑰,就可以直接打印對應的二維碼紙錢包。

腦錢包

我們所說的腦錢包并不是由用戶自身輸入自定義的詞句生成私鑰(因為這并不安全),而是通過 BIP 39 提案的方式生成足夠隨機的,可記憶的助記碼。這是一個方案,但不是一個非常好的方案,因為人類的大腦并不總是靠譜。

多重簽名

多重簽名是一個不錯的選擇,它的優勢是當你需要提取超過限制的金額時,需要多把私鑰同時授權,同時提升防盜,防丟的安全性。

在以太坊官方錢包中,你可以在 Wallet Contracts 下方中選擇 Add Wallet Contract,前提是你用來創建 Wallet Contract 的 account 有不少于 0.02 ETH,足以支付交易所需的費用。

多重簽名

當你選擇 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 代表在單個賬戶授權情況下,每日可提款的上限
Z 代表突破提款上限,需要多少賬戶授權

默認我們采取 X = 3 ,Z =2 的方式,錢包合約由三個賬戶管理,需突破取款上限需要兩個賬戶同時授權。

采取多重簽名的機制后,你可以多處且分離的方式保管你的 keystore 和 password,提升防盜,防丟的安全性。

關于更多多重簽名的詳情可看官方文檔: Account Management — Ethereal Homestead 0.1 documentation

結語

不管你用任何方式備份錢包,達到 防盜,防丟,分散風險 的目的即可。

參考:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 本文轉載,出處如下:數字證書原理 文中首先解釋了加密解密的一些基礎知識和概念,然后通過一個加密通信過程的例子說明了...
    隨安居士閱讀 1,715評論 1 8
  • 〇、序言 貨幣由于其天然屬性決定了其與安全不可分割的聯系,從最早的金庫、保險柜、鏢局到后來的ATM機、運鈔車;從存...
    怒馬2048閱讀 39,089評論 4 79
  • 我們運城,有一個差不多跟爬山一樣的鳳凰谷。 到了那里,就有一個標志,我們買完票,就開車去爬山了。上來,就看到人都擠...
    田錚洋閱讀 784評論 0 0
  • “誰的青春不放縱”,這句話在人們的心中根深蒂固,許多青少年更是奉為座右銘,做出某些瘋狂舉動良心有些過不去,一想到...
    老熊sama閱讀 759評論 0 2