1、腦錢包簡介
在比特幣的世界里,比特幣地址(格式類似這樣:1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T)相當于銀行帳號,比特幣私鑰(格式類似這樣:5KJvsngHeMpm884wtkJNzQGaCErckhHJBGFsvd3VyK5qMZXj3hS)相當于開啟這個帳號的密碼,一個地址(帳號)對應一個私鑰(密碼)。只知道比特幣地址是不能得知比特幣私鑰的,也是無法動用里面的比特幣的,這和你知道別人的銀行帳號但不知道別人的帳號密碼不能取款和轉賬一樣。但是和銀行不一樣的是,知道了比特幣私鑰卻可以得知其比特幣地址,并且能對該地址下的比特幣進行轉賬,也就是說獲得比特幣私鑰就擁有了該私鑰和地址下的比特幣的完全控制權——私鑰就是一切!所以如果1:你弄丟了你的比特幣私鑰;或2:你的比特幣私鑰給別人知道了,你該地址下的比特幣也就完蛋了:要么永遠動用不了地址上的比特幣,要么被知道你的私鑰的人轉走。
等等,這些好像和你一直在用的比特幣客戶端比如Bitcoin-QT不一樣,你可能都不用涉及到私鑰的概念。那是因為私鑰都包含在錢包文件wallet.dat里面了,平時我們所指的備份錢包就是備份這個存有私鑰的文件。如果你想進階到一個更高的使用比特幣的水平,私鑰的概念是必須了解并掌握的,其帶來的優勢也是很明顯的,比如你可以不再依賴錢包文件,不局限于某個客戶端,可以用各種不同的客戶端(最好是比特幣官網上有推薦的)導入私鑰使用里面的比特幣,并可用完即刪除以防止比特幣被盜。現在我假設通過上面的解釋,你已經清楚比特幣的地址和私鑰的概念,接下來我們來了解腦錢包。
我們都知道,比特幣的地址(帳號)和私鑰(密碼)都是很長的一串字符,光靠腦子記憶是行不通的。比特幣地址倒沒關系,你可以寫下來發給要轉賬給你的人,讓他轉賬給你。但你不能泄露或丟失你的比特幣私鑰,否則該地址下的比特幣你會被轉走或沒永遠用不了。為了保證不泄露或丟失比特幣私鑰你可能會把密鑰打印出來(這就是紙錢包了)并保存在一個高度安全的地方,比如存進銀行保險箱、藏在你家床底下、或在你家院子里(如果有的話)挖個洞埋起來但是,這也太麻煩了,幸好我們還有另一種選擇:腦錢包。
現在想象一下,有這樣的一個工具:你可以用一句話做為暗號在該工具上生成一個比特幣地址和對應的一個私鑰(這就是腦錢包了),你可以用這個生成的地址來接收比特幣,用這個生成的私鑰來轉賬,你不必記住私鑰也不必把私鑰打印下來,每次需要用比特幣的時候就用這句暗號去這個工具上把私鑰再生成一遍,使用完了再在客戶端上把私鑰刪除。你所需要做的只是:確保記住這句暗號(李笑來老師提醒腦錢包有風險:一個不小心摔成腦震蕩。這個等一下我們有辦法解決)。這是很酷的一件事情!
2、選擇腦錢包暗號的原則
原則1:字符足夠多以防止被爆力破解;
原則2:對別人來說特別不容易猜出來;
原則3:對你自己來說特別容易記起來;
這就是我們選擇腦錢包暗號的原則。基于這3個原則我即興選擇一句暗號: 2010年我讀了一本書,書名叫《把時間當作朋友》,我特別認同181頁的內容。 這樣字符夠多了;同時這句話里面包含了很多個人獨特的經歷,對我自己來說也很容易記得;對別人來說卻不容易猜:他要猜到2010年還要猜到是讀一本書,而且還要猜到書名,還要猜到我認同181頁——Mission: Impossible. 基于這個3個原則,選擇自己的暗號吧,接下來我們要看看具體如何生成腦錢包了。
3、生成腦錢包的工具
其實生成腦錢包的工具就是一個有JavaScript的網頁。用chrome 或 firefox登錄www.bitaddress.org,然后如果你像我這樣強迫癥,非要讓自己的私鑰從生成到使用都不接觸網絡,以最大限度的避免被盜的話,在網頁上點擊右鍵,把這個網頁另存為下來(這其實很必要,你以后可以離線用這個工具了)。具體見圖1.1:
4、生成腦錢包
現在假設你已經保存好這個網頁,并且復制到離線的電腦上用chrome 打開。以下是生成腦錢包的具體操作:
第一步:點擊網頁菜單上的 Brain Wallet,并選中 Enter Passphrase 輸入框后面的 Show;
第二步:輸入暗號,這里我用剛剛即興選擇的那一句;
第三步:點擊 Show 下面 View 按鈕生成私鑰和地址;
就可以看到生成的私鑰和地址啦!!! 地址:1Fd8zmErZRccNUmG3pjcys887Uqt5QMA1v 私鑰:5JueocrCHvCpqsV45DiFiUXKG6nB61MpYTd35PH2phhkVTWnK6Z 細節見圖1.2:
5、如何生成無法被暴力破解的最高安全性的腦錢包
我們的主題是“使用無法被暴力破解的最高安全性的腦錢包”,按道理說如果你是一個正常人,這種暗號這樣的安全性也就夠了,很少概率會被猜到或破解了。不過如果你是像我這么嚴重強迫癥的家伙,下面的內容你一定要知道并應用。 無法被爆力破解的最高安全性的腦錢包其實就是用兩句暗號分別生成兩對私鑰和地址,再用這兩對私鑰相乘(地址不用),生成一對新的私鑰和地址。 例如我用剛剛的那句暗號(我們叫它暗號1): “2010年我讀了一本書,書名叫《把時間當作朋友》,我特別認同181頁的內容。”生成了私鑰1:5JueocrCHvCpqsV45DiFiUXKG6nB61MpYTd35PH2phhkVTWnK6Z 現在我在選多一句暗號(暗號2)“我12歲那年和黃小明打了一架,我左手脫臼他頭破血流,但是我們現在是朋友。” 按剛剛的方法生成了另一對私鑰(私鑰2)和地址: 地址:1D4JjK3dM46mFqDFfxB8KJWCk4xHNFaJ4Y 私鑰:5JznMx1b3YKQMSGGnz7QpMZ2zvvk9ckGHHhjt96HoCbkX4PWkqH
接著我們把 私鑰1:5JueocrCHvCpqsV45DiFiUXKG6nB61MpYTd35PH2phhkVTWnK6Z 和 私鑰2:5JznMx1b3YKQMSGGnz7QpMZ2zvvk9ckGHHhjt96HoCbkX4PWkqH 生成一對新的 私鑰和地址: 地址:1GyvtsBgXti8FhqmNv7HjT38V8msKxWoxf 私鑰:5JSbvC1GNb74jDjdijY5XnhNcfbngaTAaHavchkn3JdHnnzQ4Kh
具體操作步驟是:
第一步:點擊網頁菜單上的 Vanity Wallet ;
第二步:分別復制私鑰1和私鑰2(地址不用)到網頁上的那兩個輸入框上;
第三步:點擊選上 Multiply ;
第四步:點擊生成按鈕 Calculate Vanity Wallet.
細節見圖1.3:
為什么說這樣生成的私鑰是無法被破解而安全性最高的?因為這是兩句暗號生成兩個私鑰相乘出來的,根本無法用任何單一的暗號生成,在我們保證不泄露任何一句并且保證電腦不被病毒木馬入侵的前提下,黑客既無法窮舉破解出來也無法通過木馬偷走。唯一獲得該私鑰的方法是兩句暗號對在一起,可世界上有那么多字符可以作為暗號,黑客又如何知道你第一句用的是那一句用了多少字符?還要對上另外一句?用任何數量的字符對任何數量的字符?禽獸!快放開那個黑客!
如果說剛剛一句暗號生成的腦錢包的破解是Mission: Impossible,那現在就是Mission: Impossible II和III了,呵呵。
6、如何在客戶端上導入腦錢包私鑰
生成腦錢包之后,你可以直接轉比特幣到該地址,通過www.blockchain.info 搜索該地址就可以看到轉賬記錄,不用任何客戶端也可以使用。但是一旦你要使用該地址中的比特幣你就必須用到其私鑰了,具體來說就是把私鑰導入到比特幣客戶端中,就可以自由支配地址上的比特幣了。這里重點介Armory客戶端——號稱目前功能最強大的比特幣客戶端,因為下一主題要介紹的就是這個客戶端的冷藏和離線交易功能。 在“私鑰從生成到使用都不接觸網絡”的原則下,假設(也建議)你仍然在離線的電腦上操作Armory,導入私鑰到 Armory的具體操作如下:
第一步:用在線電腦登錄bitcoinarmory.com,下載好并復制到離線電腦中安裝好Armory。
第二步:新建一個Armory錢包,要注意我們的目的不是使用這個錢包的地址和私鑰,是用來導入我們腦錢包的私鑰和地址的;
具體操作見圖1.4-1.6:
第三步:導入腦錢包私鑰到Armory錢包中使用。具體操作如圖1.7-1.8:
注意:核對私鑰與地址符合之后點Yes 之后還要輸入Armory 的錢包密碼,才能完成導入。
7、比特幣的找零機制——腦錢包
(使用者必知,否則后悔莫及) 開始用腦錢包時,我是想這樣用它的:每次收款就在blockchain.info上查看到帳情況,需要給別人付款轉賬的時候再把私鑰導入到Armory,使用完了就刪除掉整個Armory的錢包文件,絕對不讓腦錢包私鑰在網絡上多逗留一刻。這很合理,長期把腦錢包私鑰放在錢包文件那就不叫腦錢包了。 那是我第一次把腦錢包私鑰導入到 Armory, 我完成了一筆1BTC的轉賬,正想把存著我的腦錢包私鑰的Armory錢包刪除,但不知道怎么的我覺得應該點開查看我的腦錢包地址下的余額是否正確。這一查看嚇死我了:我發現我導入的腦錢包的地址上的BTC余額為零!錢包地址本那里多了一個標有Change字樣的地址,其余額正是我腦錢包地址應該有的。瞬間我就石化了:我只是轉了1BTC出去,它怎么沒經我同意就把我腦錢包上剩下的BTC轉到Armory錢包的一個新的地址上?如果我剛剛把Armory錢包文件都刪除了,豈不是我的BTC都丟失了?好險!
后來我通過查資料,知道這是比特幣的找零機制:為了保證隱私(匿名性)客戶端默認設置(不只Armory默認是這樣,另一個輕客戶端Electrum也是)為每轉出一筆錢就把剩下的自動轉移到錢包里面新的一個地址名下。這個目的是好的,但是和我用腦錢包的初衷完全背離:我用腦錢包的目的就是想讓我的BTC永遠的和我的那句暗號綁在一起,現在它給我轉到別的地址去了!這太扯了!于是我決定找找看Armory上是否有不找零的設置選項,還真的找到了,終于解決了問題。具體設置如圖1.9-1.10:
第一步:通過菜單File點擊settings進入設置,把用戶模式user mode設置為expert,見圖1.9:
第二步,轉賬時選中Use an existing address for change(找零到一個已存在的地址,如果你不選中這個,就會把腦錢包上的余額轉移到一個新的地址上),再選中Remember for future transactions(記住為以后轉賬默認設置,選中這個以后就不用在重復設置了。)見圖1.10:
通過上面的設置,我們就可以避免腦錢包上的比特幣糊里糊涂地被找零到新地址上了。
二、利用Armory的冷儲存和離線交易功能
1、私鑰冷儲存和離線交易的概念
正如我們在第一節討論過的,轉賬要用到私鑰,有私鑰就能轉賬,私鑰就是一切,所以毫不夸張的說我們要像保護自己的生命一樣保護自己的私鑰!但是很多人對自己的私鑰保護嚴重不足,很多人在windows系統下加密了錢包,簡單的備份一下錢包文件,以為這樣就挺安全了,其實這是很危險的。因為所有的客戶端其實都是把私鑰和地址存放在錢包文件(錢包文件存放在系統的AppData文件夾里面),我們都知道比特幣轉賬需要要聯網,這樣也就為黑客打開了一扇盜取我們的比特幣的方便之門了,技術厲害的黑客完全可以通過在你的電腦上植入木馬獲得錢包文件并在你轉賬輸入錢包密碼時記錄鍵盤獲得錢包密碼,這樣你的比特幣就和你永別了。每個人都希望這樣的事情不要發生在自己身上,但是光有希望肯定是不夠的,得有實際行動才行!利用Armory的私鑰冷儲存和離線交易功能正是這樣切實的保護方法。
簡單來說,Armory的私鑰冷儲存就在一臺永不上線的電腦上安裝好Armory客戶端并管理我們的私鑰(可以是Armory自己生成的也可以是導入的)讓我們的私鑰不接觸網絡。但是轉賬的時候需要網絡啊:Armory離線交易功能可以讓我們的私鑰在完全不接觸網絡的前提下完成轉賬,這就很牛逼了!只要我們的私鑰不接觸網絡,就不可能被黑客盜取。除非那不是黑客是黑社會破門入。
2、工具準備
準備一個U盤、兩部電腦,其中一部連接網絡,另一部不要連接網絡,兩部電腦分別安裝不同的操作系統(防止病毒和木馬通過U盤在同系統不同電腦上傳播),并分別安裝好Armory客戶端(下載地址:https://bitcoinarmory.com/get-armory/ ),要注意,在線的Armory客戶端需要在安裝有Bitcoin QT客戶端的系統上才能正常運行,如果你的在線電腦沒有Bitcoin QT客戶端,就需要先安裝一個。離線電腦的Armory客戶端不需要以Bitcoin QT客戶端為基礎,可以獨立運行。
這里有個操作系統選擇的建議,如果你日常主要用的系統是Windows,那就在離線電腦上安裝LINUX。我自己的組合就是Windows7 + Linux mint(基于UBUNTU的一個Linux版本),如果實在沒有兩臺電腦,也可以在同一臺電腦上安裝不同的系統來實現,只是這樣平時轉賬的時候要重啟電腦進入不同操作系統,會有點不方便。
3、私鑰冷儲存和離線交易的具體操作
一共有六個步驟,其中第一至第三步是完成私鑰冷儲存創建的過程;第三到第六步是平時轉賬是進行離線交易的操作過程。六個步驟分別為:
第一步:用離線電腦的Armory客戶端創建冷藏錢包
第二步:制作不包含私鑰的只能觀看的錢包備份
第三步:把不包含私鑰的只能只能觀看的錢包備份導入到在線電腦的Armory客戶端上
第四步:用在線電腦的Armory客戶端創建未簽名交易。
第五步:把未簽名交易拿到離線電腦的Armory客戶端上簽名
第六步:把已簽名的交易拿到在線電腦的Armory客戶端上廣播完成轉賬
下面我們一步一步展開:
第一步:用離線電腦的Armory客戶端創建冷藏錢包。這一步的操作和上一節在Armory上創建錢包或導入腦錢包私鑰一樣,這里不在贅述。
第二步:制作不包含私鑰的只能觀看的錢包備份(Watching-Only),并保存到U盤上,細節見圖2.1:
第三步:把不包含私鑰的只能只能觀看的錢包備份導入到在線電腦的Armory客戶端上。
細節見圖2.2-2.3:
圖2.3 注意:完成這一步之后,Armory會停止響應一會兒,然后提示導入已經成功并重新同步數據,整個過程需要時間大概3-10分鐘,視電腦速度而定。圖2.4是成功導入只能觀看的錢包備份并同步好數據之后:
到這一步為止我們已經完成了私鑰的冷儲存,接下來的步驟是日常轉賬交易中的離線交易操作。
第四步:用在線電腦的Armory客戶端創建未簽名交易
顧名思義,未簽名交易就是還沒有通過私鑰簽名的交易,我們平時要轉賬給別人的時候,可以按需要先創建這樣未簽名的交易,具體操作見圖2.5-2.7:
到這里為止,我們已經完成了一筆離線交易中創建未簽名交易的操作并保存為文件到U盤,接下來的步驟就是我們把這筆未簽名交易復制到離線電腦上,用Armory客戶端進行簽名。
第五步:把未簽名交易拿到離線電腦的Armory客戶端上簽名。
通過上一步,我們把未簽名交易一文件的形式保存早U盤,現在把U盤插入到離線電腦上,并打開Armory客戶端,因為離線電腦的Armory客戶端的錢包包含私鑰,所以能對這筆未簽名交易進行簽名,具體操作見圖2.11-2.17:
到這里為止,我們已經為未簽名的離線交易簽名完畢并自動保存在U盤中,接下來的步驟就是拿去在線電腦的Armory客戶端上進行廣播。
第六步:把已簽名的交易拿到在線電腦的Armory客戶端上廣播完成轉賬
這是最后一步了,通過把以簽名的離線交易拿到在線電腦的Armory客戶端上廣播,整個轉賬過程將全部完成。具體操作見圖2.18-2.23:
圖2.21 以上完整介紹“私鑰冷儲存和離線交易”的概念和相關的操作,建議感興趣和有條件的朋友可以配合腦錢包的那一節,開始用小額的比特幣進行實際操作以熟練掌握。
三、終極錢包安全備份法
1、三種可能丟幣的情況
為什么要備份錢包?答案是防止丟幣。可能大部分人都會這么回答。這是沒錯的,但不夠具體,比較模糊,最終也會影響效果。如果我們能更進一步把丟幣這個問題分解一下,其實可以得到三種可能丟幣的情況,這將有助于我們針對各種可能的情況設計更好的措施,得到最佳的效果。
三種可能的丟幣情況分別是:
第一種可能丟幣的情況:被黑客通過各種入侵手段盜取錢包或私鑰。這種可能的情況是大家共同意識到并考慮得最多的,但預防措施卻不一定做足,比如有人因為怕麻煩竟然連起碼的錢包加密都沒能做到;有人會對錢包進行簡單加密,但這些對于防止黑客入侵盜取比特幣是很不足夠的,特別是在windows系統環境下。
第二種可能丟幣的情況:因為各種原因自己弄丟了錢包、錢包密碼或私鑰。這種可能的情況也是大部分人(除了新手,新手可能會因為沒備份錢包文件在重裝系統后丟失錢包文件)能考慮到的,并且會做各種備份,比如用腦錢包、紙錢包、錢包文件備份到U盤和云端。但一樣做的不是很好,有時候反而方便了第一中丟幣可能:黑客盜取。比如有人竟然將客戶端的原形錢包文件格式(QT錢包格式:wallet.dat、Armory錢包格式:XXX.wallet、electrum格式:electrum.dat)不做任何偽裝就備份到云端上了,而且錢包密碼還居然跟云端帳號密碼一樣(在現實中我就見過有人是這樣),總之頗為顧此失彼。最后還有一種屬于自己弄丟錢包(私鑰)和密碼的可能性:出現人身意外。
第三種可能的丟幣情況:被身邊的人有意或無意中得到錢包(和密碼)或私鑰。這種可能的情況相對比較少被考慮到,可能也是所做的相關防護最不足的。想象一下這種情景:身邊走的比較近的人(但是不一定特別可靠的),知道你有在搞比特幣。突然有一天你沒在家(你家有人)的時候他去你家了,然后不管出于什么原因,他借用你的電腦結果“不小心”打開你的錢包(或私鑰)或在某個抽屜里發現了你的紙錢包備份……這些都是有可能發生的。
以上的討論涵蓋了所有可能丟幣的情況,和相關的防護(備份)措施。從中我們可以看到由于模糊性,使我們沒有考慮周全并針對各種可能設計安全備份,導致防護不足。可能你要說這也太夸張了,那都是多小概率的事件啊,果然是嚴重的強迫癥。但我要說的是,小概率事件一旦發生了就是毀滅性的,是你承受不了(呵呵,我自己因為忘記900個LTC的錢包密碼都難受的要命,不敢想象要是我的比特幣都丟了。),如果比特幣值得我們認真對待,那我們就盡量在相關的各方面認真一點吧。 有沒有一種備份方法能兼顧防止這三種可能丟幣的情況呢?答案是有的,但不是單一的備份方法,是各種方法的組合,相信配合上一節介紹的冷儲存和離線交易,能實現最大程度上的比特幣使用安全。
2、防止三種丟幣可能的終極備份方法
以下的備份方法是各種單個方法的綜合,建議全部運用起來,這樣效果也是最好的,也可以根據需要只使用其中幾種,但一定要記住三種可能的丟幣情況,并針對性的去設計備份方法。
A )使用雙倍安全性的腦錢包,并把腦錢包私鑰導入到離線電腦的Armory客戶端加密錢包中冷儲存。這樣做的目的是萬一你忘記了腦錢包暗號了,你可以從這個冷儲存中找到私鑰,而且平時離線交易轉賬也比較方便,不必每次都重新導入私鑰。但是一定要注意,除了錢包加密,電腦的操作系統也一定要設密碼,并貼一個“此電腦不能上網,待維修”的提醒,以防止被身邊的人“借用電腦”。
B )經常復習腦錢包暗號以防止時間長了忘記。你可以把復習腦錢包暗號這件事安排為按時間重復的(如2個月復習一次)日程事件,時間到了手機或電腦提醒復習。復習不能是回憶幾遍就行了,是要到離線電腦上打開那個生成腦錢包的離線網頁,重新生成一遍,看看私鑰(和地址)是否正確。
B )用改編變異的方式把腦錢包暗號寫下來,存放在安全的地方。
這個方法需要詳細說明一下:
第一:有四種改編和變異的方法任選一種即可:變換暗號的關鍵字眼、刪減暗號的關鍵字眼、變換暗號文字的排列順序、增加無關的文字。下面以我們用過的暗號來舉例說明:
原來的暗號是:2010年我讀了一本書,書名叫《把時間當作朋友》,我特別認同181頁的內容。 變換關鍵字眼:2011年我讀了一本書,書名叫《心理學改變生活》,我特別認同292頁的內容。 刪減關鍵字眼:我讀了一本書,書名叫《把時間當作朋友》,我特別認同。 增加無關文字:就在2010年我讀了一本書,書名叫做《把時間當作朋友》,我真的特別認同其中181頁的內容。 這個暗號不太好改變順序,就不舉例了。
第二:接著還要考慮寫在哪里,寫完要存放在哪里:
以寫日記或文章的方式把變異的暗號以行文所需的兩句話寫進日記本中(除了你自己,別人不可能知道其中的秘密的)使其看起來不那么刻意、唐突,然后藏在家里隱私的地方(有條件可以存銀行保險柜)。通過這樣的方式記錄暗號,相當于具備紙錢包的功能,但是比紙錢包更隱蔽(紙錢包格式太過引人注目),別人看到了也不可能注意得到。這也是我固執地認為腦錢包要勝過紙錢包的原因之一。
C )把隱藏有變異的腦錢包暗號的文章制作一份電子版備份,并同步到云端。本來直接制作一個doc格式就可以了,因為很普通的一篇文章,不引人注目,即使黑客入侵你的云端帳號也不會注意到里面有什么秘密,但是要注意我們的標題是“嚴重強迫癥者”,我們要把任何可能造成私鑰泄露的漏洞哪怕再小也要堵上!所以我們可以把電子版的備份更改后綴名為jpg圖片格式,使其看起來就像一個壞掉的打不開的圖片,或者更甚,我們可以把這打不開的假圖片壓縮為zip格式并偽裝為一個真正的圖片,需要的時候再還原出來。“把壓縮文件偽裝成圖片”的具體方法可以在網上搜索一下關鍵字“把壓縮文件偽裝成圖片”
只要做足上面ABC三種備份方法,你要同時發生以下4種情況,才能弄丟你的私鑰:1、忘記腦錢包暗號,2、冷儲存的電腦硬盤徹底壞掉,3、記錄有變異暗號的日記本丟了,4,電子版的暗號備份在本地計算機和云端同時刪除了。如果這4種情況真的同時發生了,那你的人品就是真的是差到前無古人后無來者的程度了,我只能深表同情。
D)把最少兩種或以上的備份告訴一個完全信任的人。即使我們做到以上的所有步驟,仍然有一點是防止不了的,那就是如果我們自己出現人身意外……所以就很有必要把兩種或以上的備份和還原的方法告訴自己最親最值得信任的人了。這個各人情況不同,我無法真正有效地建議,大家視自己的情況安排就是了。
評論
查看更多