區塊鏈中的錢包實際上是一對公、私鑰,也就類似於賬號密碼,而上面的勘誤實際上暴露了小編從來沒有像輸入銀行密碼那樣去實際輸入過私鑰。
因為通常在區塊鏈中做交易時,簽名(類似於輸入密碼)是錢包的客戶端幫我們完成的,這樣便要求客戶端同時存儲着我們的公鑰和私鑰。等會兒,同時存儲公鑰和私鑰?這個聽上去不安全啊!!!的確不是那么安全,這樣才輪到本期的主角——冷錢包出場了。
冷錢包和熱錢包有什么區別?在介紹冷錢包之前,首先來看一下區塊鏈中交易是如何實現的。
首先是生成交易信息,如:從地址A(地址也就是公鑰,轉賬時習慣稱地址)轉賬一個幣到地址B。然后再將這個交易信息通過hash算法轉換成256位的二進制數,這個二進制數使用地址A的私鑰進行加密就得到了簽名。最后再將交易信息和簽名同時廣播給區塊鏈里所有參與者。其中,礦工在驗證無誤后(如地址A是否有足夠余額,簽名是否有效等)寫入區塊鏈便完成了交易。
其他人能看到的只是地址A地址B,但並不知道他們分別屬於哪個人,所以在一定程度上保障了隱私的安全。
客戶端要做的就是生成交易信息簽名並廣播出去。簽名需要用到私鑰,而廣播這個過程是需要聯網的,這就給黑客攻擊提供了可能。黑客只需要盜走私鑰就能盜走賬戶里所有余額。就算提前斷網,手動輸入私鑰做簽名,再聯網廣播也還是有被木馬攻擊的可能。有一種做法是每次轉賬以后將錢包里剩余的錢轉到新的地址中,這個我們暫不考慮。
與后面提到的冷錢包相對應,我們將能夠做簽名且會被用於聯網廣播的錢包客戶端稱為熱錢包。熱錢包的“原罪”在於它會聯網。那不聯網行么?但不聯網似乎就不能廣播了?
我們可以想辦法弄一台不能聯網的設備(或者一台拔掉網線,關閉藍牙WiFi,設置完成以后永遠不再聯網的電腦)用於生成私鑰簽名,再將簽名后的信息交由聯網的設備,比如一個熱錢包,來廣播出去,這樣問題就解決了。這個不能聯網的設備稱為冷錢包。
現在交易就變成了這樣:冷錢包生成一對公、私鑰,將公鑰錄入到熱錢包用以查詢余額和接收別人的轉賬;而私鑰(永遠不會出現在互聯網上)則存儲在冷錢包中,當需要給別人轉賬時,先由熱錢包生成交易信息,再將交易信息錄入到冷錢包中做簽名,最后把簽名錄入到熱錢包里和交易信息一起廣播出去。
冷熱錢包信息的交互(即上面提到的“錄入”)你要是願意可以鍵盤手動敲進去,也可以通過USB媒介(但是格外要小心)。目前最安全可靠的方式是通過相機和二維碼。將要傳遞的信息轉換成二維碼,再用另一台設備的相機掃描輸入。綜上,想要使用安全可靠的冷錢包,你需要專門准備一台帶有攝像頭的電腦,並永不聯網地放在那里。有沒有高級保險箱的感覺?
一台電腦也不便宜(土豪可以無視),目前已經有專門的類似於銀行U盾之類的小型USB設備或者智能手表之類的冷錢包。但是這些設備使用上還是有一些限制,最方便實惠的還是拿一台不用的備用手機(目前國產手機的價格還是挺實惠的)做成冷錢包。
最后值得一提的是,冷錢包在使用時不能稱之為簡便,因為最方便的方式你都需要來回掃描好幾次二維碼。但是沒辦法,魚和熊掌不可兼得。
正確的打開方式是,使用冷錢包存儲大量金額的虛擬貨幣,在熱錢包(即私鑰存放在聯網設備)里存放少量貨幣一鍵完成日常小額支付。