2014年10月14日 星期二

比特幣錢包分類與比較分析 | 巴比特

錢包是比特幣生態中最基礎、最重要的應用,安全、易用的錢包,對比特幣的推廣和生態發展,極為重要。

比特幣應用自去年開始爆發,現有錢包更是種類繁多,僅官網推薦的就有15種之多。各類錢包有不同的定位和優勢。對於新手來說,了解各類錢包的優缺點,選擇一款適合自己的錢包,是安全、方便、愉快玩幣的前提。



一、 比特幣錢包定義與分類

顧名思義,比特幣錢包是用來存放、收發比特幣的。但比特幣本身只是一個數字,為什麼比特幣錢包裡的這個數字就值錢,而我在一個文本文檔或EXCEL表格中寫個數字就一文不值,那是因為比特幣的數字能夠被全網認可,任何人都無法隨意修改這一數字。保障這一點的,正是比特幣錢包裡存放的私鑰。所以,準確地說,比特幣錢包是用來存放比特幣私鑰的。

私鑰如此重要,所以我根據私鑰的存放方式,將錢包種類劃分如下:


個人將比特幣錢包定義為:用以安全存放比特幣私鑰,可以用私鑰簽名以發送比特幣,並能夠查詢區塊鏈顯示比特幣餘額的軟硬件設備。這個定義主要是指鏈上錢包,鏈下錢包並不具備上述功能。此外,像紙錢包和腦錢包只是用來保存私鑰,本身無法發送和查看比特幣,算是功能不完備的錢包。

錢包還可以有別的分類標準,比如可以分為手機錢包,PC端錢包,Web錢包等。個人認為錢包會更多的向移動化發展,基本的收發功能手機就可以搞定了。


二、 各類比特幣錢包特點分析

比特幣錢包的基本功能只有兩個,一是安全地保存比特幣私鑰,二是用來收發比特幣。那麼這就涉及到錢包的兩個最基本要求:安全性和易用性,除此之外,我們還需要考慮一下購買或使用成本。

巴比特站長@長鋏曾寫過一篇《不可能三角形:安全,環保,去中心化》(http://www.8btc.com/impossible-triangle),認為設計一款安全、環保,同時又去中心化的密碼學貨幣是不可能。我們這裡借用一下,在安全性、易用性和低成本之間,也構成一個不可能三角形:一個錢包,既要保證絕對安全,又要極其易用,還不需要用戶掏錢,那是不可能的。


這個三角形大致描述了各類錢包的特點,下面我們來分別看一下。

1 、冷錢包

冷錢包是非常安全的,但是成本較高,易用性差。像傳統的Armory,一般要找一台不聯網的電腦專門用於安裝Armory離線端,成本不小,如果要發送交易,則需要用優盤在離線電腦和在線電腦之間來回導交易信息、簽名數據,很是麻煩,而且U盤還存在傳播木馬病毒的風險。Trezor硬件錢包應該是個類似網銀UKey的東東,上面有兩個按鈕,發幣時可點同意或拒絕。

我們很高興地看到,國內已經有團隊在做冷錢包,而且較傳統冷錢包進步很大。像比太錢包將冷錢包安裝在閒置的舊手機上,不但成本低了不少,使用也很方便,配合在線手機的熱錢包,相對本地錢包和在線錢包都極具競爭力;Hardbit則設計了專門硬件錢包;貨王的團隊也在做硬件錢包。

冷錢包也不是絕對安全的,硬件損壞、丟失,都可能造成比特幣的損失,要做好備份。

2 、本地錢包和在線錢包

接下來說說本地錢包和在線錢包,本地錢包的是裝在自己的電腦或手機上,在線錢包則是將私鑰加密後放在服務器上。個人的電腦有可能被植入木馬,黑客可能盜取你的錢包文件,記錄你的錢包口令;而錢包服務器也有可能被黑客攻陷,加密私鑰存在被破解的風險。服務器安全防護做的比個人電腦要好一些,但也更容易引起黑客的注意,從安全性上來講,我認為這兩類錢包差不多。

在線錢包原理是,錢包在瀏覽器端使用用戶的口令對私鑰進行加密,加密之後傳到服務器上保存,當需要使用時,從服務器上下載下來,在瀏覽器端進行解密。服務器上保存的是加密後的私鑰,這就是在線錢包“不保存用戶私鑰”的由來,準確地說,應該是“不保存用戶明文私鑰”。

要加強本地錢包和在線錢包的安全性,最好設置一個較複雜的密碼,並且,千萬不要忘記。

本地錢包和在線錢包使用都比較方便,易用性強,在線錢包由於不受客戶端限制,易用性比本地錢包能好一點。

3 、多重簽名錢包

多重簽名錢包原理是這樣的:取一個多重簽名地址作為錢包地址,如果要動用這個地址上的幣,必須有2個(或多個)私鑰同時簽名才可以。打個比方,就是一把鎖,需要2把不同的鑰匙一起用,才能打開。這樣一來,我一把鑰匙自己掌握(也可能是加密後托服務器保管,參看在線錢包),另一把交給服務器,如果只有一把鑰匙被盜,黑客沒有我本地的私鑰。這樣應該是多了一重安全。

但是,複雜流程帶來了安全,往往也帶來額外的風險隱患,比如我的本地私鑰丟了怎麼辦?那連我自己也沒法用了。怎麼辦呢?GreenAddress也很絕,它搞了一個未來交易(比特幣協議自帶的機制,使用nLockTime參數),這個交易在某個時間點之前,網絡是不認的,一旦過了這個時間,比特幣網絡就可以把打包寫進區塊鏈。這樣我只要再搞一個安全的比特幣地址,把這個未來交易指向這個地址,萬一丟一把鑰匙,只要耐心等待未來交易生效就可以了。

多重簽名機制看起來是更安全了,但易用性受到很大的影響,用戶需要理解一些技術細節,還要保護好本地私鑰和未來地址的私鑰,學習和使用成本高了不少。另外,Armory也做了純客戶端的多重簽名錢包。

4 、鏈下錢包

鏈下錢包有點像交易所的賬號,你把幣存到交易所,交易所給你記上帳,當你給其他用戶發送,收幣發幣是在交易所的賬簿上加加減減,並沒有真正寫入比特幣區塊鏈。只有用戶存幣和提幣的時候,才會發生鏈上交易。

鏈下錢包是純粹中心化的錢包,用戶是沒有自己錢包的私鑰的。很多比特粉受去中心化思想影響比較深,認為什麼都要去中心化,對中心化交易以及挖礦算力集中等比較排斥。實際上,鏈下錢包效率很高,可以實時到賬,方便對接購物平台,國外很多商家就是對接coinbase的,國內的幣付寶也有。鏈下錢包將私鑰保管的責任交給錢包公司,用戶不必過多地考慮私鑰安全。

需要說明的是,鏈下錢包裡的幣,並不是比特幣,而是信用幣。錢包裡的數字,並不表示你擁有這麼多幣,只是說明別人欠你這麼多的比特幣而已。

5 、紙錢包和腦錢包

額外再說說紙錢包和腦錢包。紙錢包和腦錢包並不是完整意義上的比特幣錢包,因為使用紙錢包或腦錢包,你無法使用上面的比特幣,發幣時還得借助其他錢包導入私鑰。紙錢包和腦錢包僅僅是保存比特幣私鑰的兩種方式。

紙錢包,就是把比特幣的私鑰打印在紙上,然後保存起來,一般用於冷藏比特幣,也可以作為本地錢包或在線錢包的私鑰備份。如果生成、打印私鑰的環境是安全的,那麼紙錢包安全性是比較高的,成本也很低。但是要注意防火防水防盜,如果是熱敏紙打印的,還要注意熱敏紙字跡容易褪掉。

此外,私鑰也可以備份在磁介質中。像U盤、SD卡的壽命都很長,質量好的保存幾十年沒問題,移動硬盤當然也可以,就是有些浪費。光盤最便宜,但是容易氧化,質量普遍不高,可能幾年就壞掉了。

我們知道,比特幣是私鑰就是一串數字和大小寫字母的組合,50來個字符,如果我記憶力強,硬硬地把它記住,也算是一種保存方式。不過這些字母數字毫無規律,要想一字不差的長時間記憶,一般人恐怕做不到。那我們可以找一種變通的方式,想一句你能記住的密語,這句話是只有你知道,而且很容易記憶的,比如你向女朋友表白時說的一句話,你覺得肯定忘不了而且一字不差,也沒其他人知道,那可以用這句話做密語,通過數學計算轉換為一組比特幣的私鑰和地址,就可以將比特幣保存到你的腦子裡了。如果你經常表白,那就算了吧。

因為人的想法總是有跡可循的,想一句任何人都猜不出的話並牢牢記住,也不那麼容易。所以腦錢包並不那麼安全,有人曾用生日做腦錢包進行測試,結果幣剛轉進去就被黑客轉走了,如果忘記密語或者乾脆失憶了,比特幣就永遠找不回來了,變成了“腦殘包”。


三、 比特幣錢包的選擇

錢包首要的要求是安全,但是世界上沒有絕對的安全。絕對的安全意味著絕對的高成本和絕對的不好用。絕對的安全是沒有必要的,我們需要的是滿足自己需求的相對安全。

如果你是比特幣土豪,那大額比特幣肯定建議冷儲。對於數額不太大而且要頻繁收發的比特幣,本地錢包或者在線錢包都不錯,在線錢包不受客戶端限制,相對更靈活一些。本地錢包裡,Bitcoin-QT(Bitcoin Core)是最經得起考驗的,但需要下載完整區塊鏈,普通用戶用的已經比較少了。

如果你對技術比較了解,多重簽名錢包也可以試試。如果經常用比特幣購物,鏈下錢包有時候會很方便。對炒幣達人來說,與交易所關係密切的錢包自然可以考慮,比如比特幣中國的幣加鎖、火幣的快錢包、Coinbase等。

對於比特幣死多來說,把私鑰做成紙錢包,或者存在U盤裡鎖起來,不僅安全,還能有效防止手賤賣幣。

腦錢包一般情況下不推薦使用,因為人的思維和記憶​​總是不那麼可靠,但是腦錢包在某些極端情況下非常有用,比如戰爭、嚴重自然災害,以及某些人在某些情形下(請大家發揮想像力),沒有人能夠搶走你的幣,你只需要做到5個字——打死也不說。

這樣的選擇介紹過於籠統,同一類錢包中的不同產品,其差異也是很大的。要找到一款適合自己的錢包,還需要大家在感興趣的產品中親自試用一番,切身感受一下。


四、 比特幣錢包使用注意事項

要說比特幣錢包使用注意事項,首先要說的就是坑爹的找零機制。簡單說,找零機制是指,你從A地址向B地址發送一筆交易的時候,A地址剩餘的幣並不會全留在A,而是轉移到一個新的地址C。

比如Bitcoin-QT錢包,每次會生成100個地址,在你發送100次交易後,每個地址都可能被用過了,再找零時,錢包會自動生成一批新地址,如果新地址沒有做好備份,本地錢包文件又不小心出問題的話,就可能導致丟幣。找零機製本身應該是為了安全,但實際使用中意義不大,反而出現過多次因找零機制導致的人間慘劇。

為了避免找零機制使用不當造成損失,很多錢包都取消了找零功能(就是把找零地址設置為源地址),這樣就安全方便多了。找零機制應該作為比特幣玩家安全必備常識。大家使用時一款新錢包時,一定要確認好找零的問題。


最後,對如果你是新用戶,對比特幣錢包使用還不太熟悉,那我再囉嗦幾句:

1、每個錢包在熟練使用之前,請用小額測試。一定要做好備份,建議至少2個備份。

2、聯網的錢包要設置一個較複雜的密碼。

3、任何時候都不能忘記密碼,如果怕忘記,可以在安全的地方記點提示。

4、在線錢包有谷歌二次驗證的一定要開啟。

5、避免下載使用來歷不明的軟件,尤其是比特幣相關的軟件。

6、不要把身家性命壓在虛擬幣上,也不要把全部幣放在一個錢包。大額幣建議冷儲。

暫時能想到的這些,其他的有機會再補充吧。祝大家玩得開心,早點發(jie)財(tao)!


聲明:錢包產品較多,文中涉及的部分產品,個人並未全部實際操作驗證,如有偏頗之處,還望大家指正。


作者:Kingo
微博:@ Kingo_XPM123
密碼學幣愛好者BTC地址: 15FqeDDfePfBWYTDT4kJ7V2QAPfdKpJC5w
比特幣錢包分類與比較分析| 巴比特

沒有留言:

張貼留言