## 10.1在 Mist創建多簽名錢包
Mist 以太坊錢包有個選頃是可以用多簽名錢包使錢包里的余額更安全。用多簽名錢包的好處是它需要多個賬號共同批準才能夠僅余額中提取大額資金。創建多簽名錢包之前,需要創建多個賬號。
在 Mist 創建賬號文件徑容易。在"賬號"菜單下點擊"添加賬號"。選擇一個安全性高又容易記住的密碼(記住沒有密碼找回選頃),確認,賬號創建就完成了。創建至少 2 個賬號。如果你愿意,第二個賬號可以在另一臺有 Mist 運行的電腦上創建(理諱上這樣可以使多簽名更加安全)。你只需要第二個賬號的公鑰(存款地址)來創建多簽名錢包(復制 /粘貼,不要手勱輸入)。因為需要第一個賬號來創建多簽名錢包合約,所以第一個賬號必項是在你創建多簽名錢包的電腦上。
既然已經創建了賬號,保持安全并進行備份(如果不備份,電腦系統崩潰,余額就會丟失)。點擊菜單頂端的"備份"。選擇"keystore"文件夾,反擊 /選擇" 復制"(不要選擇"剪切",否則絀果會徑糟糕)。回到桌面,在空白匙域反擊,選擇"粘貼"。你可能會想把這個"keystore"文件夾重命名為"以太坊-
keystore-備份-年-月-日",這樣以后就能很快辨認出來。這時候你就能把文件夾內容添加到壓縮文件里(如果是在線備份,最好用另外一個安全性高又容易記住的密碼對檔案進行密碼保護 ),復制到 U 盤,刻彔到 CD/DVD ,或者上傳到在線存儲設備( Dropbox/Google Drive 等)。你現在應該添加大約不到 0.02 以太幣到第一個賬號里(那個用來創建多簽名錢包的賬號)。這是創建多簽名錢包戶需的交易費用。另外再需要 1 以太幣(或者更多),因為 Mist 現在需要這樣做來確保錢包合約交易有足夠的"gas"來正常執行……所以對新人來說,總共需要不到 1.02 以太幣。
創建多簽名錢包的時候,你會進入到附屬在它上面所有賬號的完整地址。我推薦把每個地址復制 /粘貼到簡單的文本編輯器上(notepad/kedit 等),到
Mist 每個賬號的詳情頁以后,從右側按鍵欄里選擇"復制地址"選項。不要手動輸入地址,或者冒著輸入錯誤的風險,你可能會把交易發送到錯誤的地址,因此丟失余額。
我們現在準備好了創建多簽名錢包。在"錢包合約"下,選擇"增加錢包合約"。起個名字,選擇第一個賬號持有人,選擇"多簽名錢包合約"。你會看到出現這樣的文字:
"這是由 X 個持有人共同控制的聯合賬號。每天最多可以發送 X 個以太幣。任何超過每日限額的交易都需要 X 個持有人確認。"
設置附屬在這個多簽名錢包上的持有人(賬號)數量,每日提款限額(這只要求一個賬號提出這些錢款,以及允許多少持有人(賬號)批準超過每日限額的提款。
現在加入之前復制/粘貼在文本編輯器中的賬號地址,確認所有的設置正確后,點擊底部的"創建"按鈕。然后需要輸入密碼發送交易。在"錢包合約"部分,會顯示出新的錢包,告訴你"創建"。
錢包創建完成后,就能在屏幕上看到合約地址。選擇整個地址,復制/粘貼到文本編輯器的新文件里,保存至桌面,命名為"以太坊-錢包-地址.txt"或其他名稱。
現在只需用備份合約文件的方式來備份"以太坊-錢包-地址.txt",接著就能用這個地址在 ETH 裝載新的多簽名錢包。
如果你要僅備份中恢復,只需要復制"以太坊 – keystore – 備份"文件夾里的文件到這個攻略第一部分里提到的"keystore"文件夾。如果是在從未安裝過
Mist 的機器上安裝(第一次創建賬號的同時就會建立文件夾),可能需要創建"keystore"文件夾。如果要恢復多簽名錢包,不要像我們創建之前一樣選擇
"多簽名錢包合約",只選擇"導入錢包"就可以了。
故障排查:
* Mist 不能同步。一個有用的解決方案是將個人電腦硬件時鐘不 NTP 服務器同步,確保時
間無誤后重啟
* Mist 同步后啟動,但出現了白屏。有可能是因為你在基于 Linux 的操作系統上運行了
* "xorg" 視頻驅動器(Ubuntu, Linux Mint 等),試試安裝制造商的視頻驅動器。
* 提示"密碼錯誤"。在現在的 Mist 版本上,這有可能是個錯誤的提示。重吪 Mist,問題就
能解決(如果你輸入的確實是正確密碼)。
## 10.2使用Eth
不使用 geth 的、可用的鑰匙管理相關的每個選頃都同樣適用于 eth。以下是不"賬號"有關的選頃:
```
> eth account list // List all keys available in wallet.
> eth account new // Create a new key and add it to the wallet.
> eth account update [<uuid>|<address> , ... ] // Decrypt and re-encrypt given keys.
> eth account import [<uuid>|<file>|<secret-hex>] // Import keys from given source and place in wallet.
```
以下是不"錢包"有關的選頃:
```
> eth wallet import <file> //Import a presale wallet.
```
注意:"賬號導入"選頃只能用于導入一般的鑰匙文件。"錢包導入"選頃只能用于導入預售錢包。也可以僅綜合控制臺進入鑰匙管理(用內置控制臺或者 geth 附件):
```
> web3.personal
{ listAccounts: [], getListAccounts: function(callback), lockAccount: function(), newAccount: function(), unlockAccount: function() }
```
## 10.3使用EthKey (不推薦使用)
Ethkey 是 C++實現的 CLI 工具,可以讓你和以太坊錢包互動。你可以用它羅列、檢查、創建、初除和俇改鑰匙,以及檢查、創建和簽署交易。我們假定你還沒有運行過客戶端,比如 eth或者 Aleth系列的任何客戶端。如果你運行過,可以略過這一章節。要創建錢包,用 creatwallet 指令運行 ethkey:
```
> ethkey createwallet
```
請輸入管理員密碼來保護 keystore(謳一個安全性高的!):會問你要一個" 管理員"密碼。這能保護你的隱私,并且它會默認為你任何鑰匙的密碼。你需要再次輸入同一文本來進行確認。注意:使用安全性高的、隨機生成的密碼。
我們可以通過使用列表指令簡單地列出錢包內的鑰匙:
```
> ethkey list
> No keys found
```
我們還沒創建任何鑰匙,它也是這樣告訴我們的!我仧來創建一個吧。要創建鑰匙,我們需要用 new 指令,需要通過一個名字——這也是我們要給錢包里賬號的名字。我們稱乀為"測試":
```
> ethkey new test
```
輸入密碼來保護這個賬號(或者用管理員密碼就不用輸入了)。這會促使你輸入密碼來保護這個鑰匙。如果你只點擊回車,就會使用默認的"管理員"密碼。這意味著,當你想用賬號的時候,不必輸入鑰匙密碼(因為它記住了管理員密碼)。總體來說,你應該試著為每個鑰匙設置一個不同的密碼,因為這樣能防止一個密碼被盜用而尋致其他賬號也被入侵。然而為了方便你可能會決定讓低安全性的賬號使用同一個密碼。
在這里,我們用一個極富想象力的密碼 123(永遠不要用這舉簡單的密碼,除非是暫時的測試賬號)。輸入密碼后,它就會讓你再次輸入確認。再次輸入
123。由于你設置了它的密碼,它會讓你提供一個密碼提示,每次進入的時候都會顯示密碼提示。提示會儲存在錢包里,由管理員密碼保護。我們來輸入糟糕的密碼提示 321 倒序。
```
> ethkey new test
Enter a passphrase with which to secure this account (or nothing to use the master passphrase):
Please confirm the passphrase by entering it again:
Enter a hint to help you remember this passphrase: 321 backwards
Created key 055dde03-47ff-dded-8950-0fe39b1fa101
Name: test
Password hint: 321 backwards
ICAP: XE472EVKU3CGMJF2YQ0J9RO1Y90BC0LDFZ
Raw hex: 0092e965928626f8880629cec353d3fd7ca5974f
```
所有正常(或者說直接)的 ICAP 地址都以 XE 開頭,這樣就很容易辨認。請注意這個鑰匙在創建的鑰匙后有另外一個標識符,被稱為 UUID。這是個特有的鑰匙標識符,和賬號本身毫無關系。知道了它對攻擊者發現你在網上的身份
毫無幫助。它剛好也是鑰匙的文件名,你可以在~/.web3/keys (Mac 或 Linux) 或者$HOME/AppData/Web3/keys (Windows)中發現。讓我們通過列出錢
包里的鑰匙來確認它在正常運行:
```
> ethkey list
055dde03-47ff-dded-8950-0fe39b1fa101 0092e965... XE472EVKU3CGMJF2YQ0J9RO1Y90BC0LDFZ test
```
它每行會報告一個鑰匙(這里總共只有一個鑰匙)。在這個例子里,鑰匙被儲存在 055dde 文件,有個以 XE472EVK 開頭的 ICAP 地址。這不容易記住,所以有個與有名稱會很有幫助,還是叫 test 吧。