轉自:http://8btc.com/thread-1164-1-1.htmlphp
最近隨着比特幣話題的火熱,又有一批人賣房或傾產換成比特幣入圈,這一次與之前不一樣的是,之前傾產入圈的人都是技術人員,有足夠的能力來保護好本身的比特幣財產,而如今入圈的,多了一些對比特幣安全不在行的人。要知道,QQ被盜,你能夠找騰訊申訴回來;網銀被盜,你能夠報警,追回來的但願仍是相對比較高,同時QQ和網銀對盜號木馬都有各類設防,比特幣客戶端是沒有設防的,被盜了也不知道從哪下手去找回來。賣房買比特幣這種行爲屬於我的投資,我不發表意見,可是爲了幫助新手們不至於一時大意,比特幣都被盜走或丟失,我打算再寫一篇文章,着重談論一下「冷存儲」,由於冷存儲是防網絡黑客的最有效方法。注意,冷存儲只是防網絡盜竊,並不防現實生活中的竊取。
在網上我見過一些人他們並不懂,或沒懂透,對於保護比特幣表現很是焦慮,總在挖空心思發明各類方法防盜防丟失,而實際上看他說出來的那些手段,根本沒搔到癢處,盡在窮折騰。並且這樣窮折騰的結果恐怕防不住黑客反而會成功地把本身給「防」了,若是不幸真發生這種事情,我只能說:別有一番異樣的悲摧。因此咱們要採起最簡單有效的方法,就夠了。
關於比特幣的安全入門能夠參考個人另外一篇文章:《如何保護好咱們的比特幣(bitcoin)》http://8btc.com/thread-819-1-1.html
若是是囤幣,或是持有大量的比特幣,那麼不要怕麻煩,必定要採用冷存儲的方式。冷存儲是指離線生成比特幣私鑰,並離線保存,離線使用。這樣私鑰沒有在聯網的機子上出現,再厲害的黑客也沒法經過網絡盜走你的私鑰。
關於比特幣地址與私鑰的基本知識能夠參考這篇文章,這裏就不贅述。《完全玩轉比特幣地址和私匙》http://www.8btc.com/privkey
那麼要如何離線生成私鑰呢?這裏的離線是指經過不聯網的機器生成私鑰,不是單指在本地生成。若是採用Armory客戶端,這個客戶端自己的工做方式就是能夠離線操做的,能夠離線生成私鑰並能夠離線發送比特幣。只是這個客戶端沒有中文版,並且也沒找到中文教程,貌似也沒有人談論使用這個客戶端的心得。因此在這裏作一個簡單的使用介紹。
Armory與其它客戶端同樣有MAC、Linux、Windows版本。安裝包沒分在線端和離線端,安裝後電腦上同時有在線端和離線端,用戶在使用的時候自行區分運行。其中Armory在線端基於bitcoin-QT客戶端,因此還要先安裝bitcoin-QT,並且在線端對系統的要求比較高,至少要4G內存。Windows版目前只支持64位系統,Mac和Linux版有32位及64位版本。離線端能夠獨立運行,對機器要求不高。
分別在電腦上安裝Armory以後,在下圖的菜單中能夠看到這樣的快捷啓動圖標(其它系統相似)。
<ignore_js_op>html
下面要在離線端和在線端分別進行設置。
離線端:
這臺電腦永遠不要聯接網絡,在這臺電腦上建立錢包,生成地址或導入私鑰。
這時候錢包的標誌是「Encryptde」,表示這是有私鑰的錢包。
根據「先備份後使用」的原則備份好私鑰後就能夠啓用錢包裏的BTC地址了。
<ignore_js_op>瀏覽器
根據上圖所示進入錢包設置界面,以下圖。
在這裏能夠生成地址,導入私鑰,導出私鑰。(導入私鑰的地址能夠刪掉,自行生成的地址不能刪除)
還有一個關鍵應用:生成「只看錢包」供「在線端」使用。
<ignore_js_op>安全
在線端/聯網端:
在「聯網端」的機器上運行Armory,界面跟「離線端」是同樣的,先進行設置:
主界面點「File」-「Setting」調出設置界面。
「Bitcoin Install Dir」一欄選中你的QT客戶端所在的安裝目錄。
「Bitcoin Home Dir」一欄選中QT客戶端的工做目錄。
<ignore_js_op>網絡
而後Armory就開始同步鏈塊,「Synchronizing with Network 」一欄就是同步的進度,若是以前在QT客戶端下同步過了,那這一步會很快。
「Scanning Transaction History」這一步是運算出錢包餘額等相關資料。個人電腦是4G內存,剛夠基本要求,結果在這一步跑了幾個小時,跑的時候逛吃內存。如今終於明白爲何幾乎沒什麼普通用戶使用Armory,由於它對內存佔用特別大,一旦運行,幾乎幹不了其它事。你必需要搞一臺高配電腦來運行它。
按下圖兩個步驟,導入剛纔在離線端生成的「只看錢包」。
<ignore_js_op>工具
等「Scanning Transaction History」的進程跑完就可使用了。
在這裏的錢包標誌是「Watching-Only」,表示不包含BTC私鑰。
<ignore_js_op>加密
完成上面的設置步驟以後,就能夠進行發送比特幣的操做。
步驟以下:
1.在聯網端
點擊「Offline Transactions」, 以後點擊「Create New Offline Transaction」建立一個新事務。
而後點擊「Send Bitcoins」來填寫發送比特幣的數量和接收地址。 這時「Send」按鍵是灰的,不可點擊。
點「Create Unsigned Transaction」 建立一個「未簽證」的事務。
點「Save to file…」 會生成一個 「.unsigned.tx」爲後綴的文件。
把這個文件拷貝到離線端。
2.在離線端
點擊「Offline Transactions」, 後點「Sign Offline Tranasaction」打開簽證界面。
點「Load file...」載入剛纔那個「.unsigned.tx」文件。
點「Sign」進行簽證。
點「Save to file…」保存爲一個「.signed.tx」爲後綴的文件。
把這個簽證好的文件拷貝到聯網端。
3.回到聯網端
若是剛纔這邊的操做過程沒有動,把「.signed.tx」文件放在與「.unsigned.tx」相同的目錄,那麼能夠點 「Next Step」 繼續操做,而後要彈出的窗口中把已簽證的事務廣播出去,完成交易。
若是聯網端被關掉了,那麼打開以後按 「Offline Transactions」 ,以後點擊「Broadcast Transaction」再載入已簽證的事務文件,確認後點「Ready to Broadcast!」就能夠完成交易。
這樣只要你保證離線端的電腦不鏈接到互聯網,那麼你的私鑰就不會在網上出現過,也就不會從網絡被盜走。
可是有的朋友也擔憂這樣在兩臺電腦之間用U盤傳遞文件,會傳播木馬。這個理論上是有可能的。那麼你把離線端的操做系統改爲Windows之外的系統,或者設置一下讓系統不要自動運行和不要雙擊運行U盤裏的程序就好了。並且如今隨便一個殺軟件均可以滅掉靠U盤傳播的木馬。
spa
用Armory客戶端,意味着須要兩臺電腦專用,其中一臺還要高配置,若是我不想用這種方式,那麼要怎麼進行冷存儲呢?
咱們能夠按下面的步驟來操做:
1、首先是準備工做:
你須要一臺用於離線製做私鑰的電腦,製做完私鑰以後這臺電腦的系統要刪掉。因此你同時還須要懂得安裝系統和格式化硬盤。若是須要把私鑰打印到紙上保存,那麼還須要一臺打印機直聯電腦。
以Windows系統爲例,安裝完操做系統以後還須要準備如下軟件:
生成私鑰:
有BTC客戶端bitcoin-qt,Multibit等。
能夠生成個性化地址的:vanitygen,
另外還有 腦錢包。
生成二維碼的工具:erweimadayin 或其它同類軟件。
文本處理軟件:Office或其它你認爲知足要求的軟件。
其它工具:若是是打印到紙上,那麼有必要對私鑰進行必定程度的加密,能夠用工具也能夠用某種方法,總之要事先準備好。
在斷網以前不要運行BTC客戶端,由於一運行就會自動生成錢包。作完這一切以後就斷開網絡,若是用筆記本,那麼要特別注意斷開WIFI。
2、生成私鑰
有三類方法,選一種就能夠。
1.運行比特幣客戶端,新建一批地址,而後導出私鑰。
Bitcoin-qt客戶端導出私鑰的方法能夠見我前面提到的《如何保護好咱們的比特幣》一文。
Multibit客戶端導出私鑰能夠直接經過菜單欄上選「工具」-「導出私鑰」來操做。如果要打印到紙上,那不要選擇對導出的私鑰加密碼。
2.用vanitygen生成私鑰,詳見個人另外一篇文章《手把手教你如何擁有個性化的BTC地址》http://8btc.com/thread-886-1-1.html
3.用腦錢包生成私鑰。
腦錢包是一個工具,根據你的提供的字符串生成私鑰,這樣只要你記住字符串,就何時均可以獲得那個特定的私鑰。你只要保證這個字串不會跟別人想的同樣,不會被別人試出來,不會忘記,那麼就是靠譜的保存方法。
腦錢包程序的得到能夠在電腦離線以前把這兩個網頁之一「另存爲」保存到本地。
http://p2pbucks.com/tools/brainwallet/index.html
http://brainwallet.org/
在本地能夠經過瀏覽器打開運行,根據提示生成私鑰就好了。
腦錢包的一個應用例子能夠參考:《腦錢包狂想曲》http://8btc.com/forum.php?mod=viewthread&tid=817 主要是發揮你的想象力,但不要做繭自縛。
3、保存私鑰
除了腦錢包你記得方法就行,上面其它方式獲得的私鑰要保存起來。
有兩種保存途徑,第一是保存到U盤等電子介質上(可靠性本身評估),第二是打印到紙上。
若是是保存到電子介質上,那麼能夠直接保存,也能夠壓縮加密再保存(事先要準備相應的工具)。
若是是打印到紙上,那麼爲了不紙張被人看到或拍到泄露私鑰,有必要對私鑰進行必定程度的加密,例如在特定的位置上加某些字母,或是某種可逆的方法打亂順序,或是用工具加密。這部分就靠你本身的想象力,原則有一點:不要把本身給防住了。爲了之後導入私鑰方便,能夠把加密後的私鑰製做成二維碼一塊兒打印到紙上。
4、驗證私鑰
保存好了,那麼你要怎麼保證這些私鑰和地址是有效且不出差錯的呢?
那就逆操做一遍。證實你的備份保存可以得回正確的私鑰。把私鑰在離線電腦上的另外一個客戶端上導入,對比地址是否正確,同進也能夠對每一個地址進行簽名,而後把簽名拿到其它地方進行驗證。
5、刪除操做系統
作完第四步,證實私鑰有效,地址有效,能從備份獲得正確的私鑰。那就刪除操做系統,把整個硬盤都格式化。這樣,就算你那個操做系統有木馬也無所謂,私鑰是斷網後生成的,竊取你的私鑰也沒機會傳出去。
6、啓用
某一天,你要用啓用這些地址上的比特幣。若是是電子介質保存的,那麼有點麻煩,要在一臺離線的電腦上操做,取出一個私鑰,而後刪掉操做系統,以避免暴露整一批私鑰。
若是是從紙上導回,能夠單獨導回一個私鑰。建議私鑰用一次就做廢,例若有A、B兩個冷存儲地址,A上有100BTC,你想轉出20個,剩下的80個仍是冷存儲,那麼把20BTC轉出的同時把其他的80BTC轉到冷地址B上(客戶端都支持同時給多個地址發幣的),A地址做廢再也不使用,這樣能夠最大限度地保障安全。
注意:若是你是用手機的掃描二維碼,因爲如今的手機應用節操不齊,你要保證這個應用不會收集你掃描的內容。
其它擴展:
以上的方法是一個比較典型的過程,實現的手段能夠不少,也能夠作得很簡單,就看你有什麼辦法去實現。你若是有一個樹莓派,由於它的「硬盤」其實就是一個SD卡,換一個SD卡就至關於換一個操做系統,因此只要有一張專用的SD卡保存操做系統專用來處理離線私鑰而且保管好就好了,這也是一個很是不錯的解決方案。
若是以爲本文對你有幫忙,能夠捐助 BTC:1N9shXD3V4DrAjBt9oqvZXPYf81DVvoooo操作系統