解析比特幣錢包工作原理
現實生活中的錢包是用來放錢的,但是比特幣錢包不是用來存放“比特幣”的,為什么這么說?
比特幣的所有權是通過數字密鑰、比特幣地址和數字簽名來確立的。數字密鑰實際上并不是存儲在網絡中,而是由用戶生成并存儲在一個文件或簡單的數據庫中,稱為錢包。
在比特幣系統中,我們用公鑰加密創(chuàng)建一個密鑰對,用于控制比特幣的獲取。密鑰對包括一個私鑰,和由其衍生出的唯一的公鑰。公鑰用于接收比特幣,而私鑰用于比特幣支付時的交易簽名。
支付比特幣時,比特幣的當前所有者需要在交易中提交其公鑰和簽名(每次交易的簽名都不同,但均從同一個私鑰生成)。比特幣網絡中的所有人都可以通過所提交的公鑰和簽名進行驗證,并確認該交易是否有效,即確認支付者在該時刻對所交易的比特幣擁有所有權。
比特幣錢包是私鑰的容器,只包含私鑰而不是比特幣。每一個用戶有一個包含多個私鑰的錢包,錢包中包含成對的私鑰和公鑰。用戶用這些私鑰來簽名交易,從而證明它們擁有交易的輸出(也就是其中的比特幣)。
根據私鑰的存放方式,將錢包種類劃分如下:

1、冷錢包
冷錢包是非常安全的,但是成本較高,易用性差。像傳統的Armory,一般要找一臺不聯網的電腦專門用于安裝Armory離線端,成本不小,如果要發(fā)送交易,則需要用優(yōu)盤在離線電腦和在線電腦之間來回導交易信息、簽名數據,很是麻煩,而且U盤還存在傳播木馬病毒的風險。
冷錢包也不是絕對安全的,硬件損壞、丟失,都可能造成比特幣的損失,要做好備份。
2、本地錢包和在線錢包
本地錢包的是裝在自己的電腦或手機上,在線錢包則是將私鑰加密后放在服務器上。
個人的電腦有可能被植入木馬,黑客可能盜取你的錢包文件,記錄你的錢包口令;而錢包服務器也有可能被黑客攻陷,加密私鑰存在被破解的風險。服務器安全防護做的比個人電腦要好一些,但也更容易引起黑客的注意。從安全性上來講,這兩類錢包差不多。
在線錢包原理是,錢包在瀏覽器端使用用戶的口令對私鑰進行加密,加密之后傳到服務器上保存,當需要使用時,從服務器上下載下來,在瀏覽器端進行解密。服務器上保存的是加密后的私鑰,這就是在線錢包“不保存用戶私鑰”的由來,準確地說,應該是“不保存用戶明文私鑰”。
要加強本地錢包和在線錢包的安全性,***設置一個較復雜的密碼,并且,千萬不要忘記。
本地錢包和在線錢包使用都比較方便,易用性強,在線錢包由于不受客戶端限制,易用性比本地錢包好一點。
3、多重簽名錢包
多重簽名錢包原理是這樣的:取一個多重簽名地址作為錢包地址,如果要動用這個地址上的幣,必須有2個(或多個)私鑰同時簽名才可以。打個比方,就是一把鎖,需要2把不同的鑰匙一起用,才能打開。這樣一來,我一把鑰匙自己掌握(也可能是加密后托服務器保管,參看在線錢包),另一把交給服務器,如果只有一把鑰匙被盜,黑客沒有我本地的私鑰。這樣應該是多了一重安全。
多重簽名機制看起來是更安全,但易用性受到很大的影響,用戶需要理解一些技術細節(jié),還要保護好本地私鑰和未來地址的私鑰,學習和使用成本高了不少。另外,Armory也做了純客戶端的多重簽名錢包。

4、鏈下錢包
鏈下錢包有點像交易所的賬號,你把幣存到交易所,交易所給你記上帳,當你給其他用戶發(fā)送,收幣發(fā)幣是在交易所的賬簿上加加減減,并沒有真正寫入比特幣區(qū)塊鏈。只有用戶存幣和提幣的時候,才會發(fā)生鏈上交易。
鏈下錢包是純粹中心化的錢包,用戶是沒有自己錢包的私鑰的。
很多人去中心化思想影響比較深,認為什么都要去中心化,對中心化交易以及挖礦算力集中等比較排斥。實際上,鏈下錢包效率很高,可以實時到賬,方便對接購物平臺,國外很多商家就是對接coinbase的,國內的幣付寶也有。鏈下錢包將私鑰保管的責任交給錢包公司,用戶不必過多地考慮私鑰安全。
需要說明的是,鏈下錢包里的幣,并不是比特幣,而是信用幣。錢包里的數字,并不表示你擁有這么多幣,只是說明別人欠你這么多的比特幣而已。
5、紙錢包和腦錢包
額外說說紙錢包和腦錢包。紙錢包和腦錢包并不是完整意義上的比特幣錢包,因為使用紙錢包或腦錢包,你無法使用上面的比特幣,發(fā)幣時還得借助其他錢包導入私鑰。紙錢包和腦錢包僅僅是保存比特幣私鑰的兩種方式。
紙錢包,就是把比特幣的私鑰打印在紙上,然后保存起來,一般用于冷藏比特幣,也可以作為本地錢包或在線錢包的私鑰備份。如果生成、打印私鑰的環(huán)境是安全的,那么紙錢包安全性是比較高的,成本也很低。但是要注意防火防水防盜,如果是熱敏紙打印的,還要注意熱敏紙字跡容易褪掉。
此外,私鑰也可以備份在磁介質中。像U盤、SD卡的壽命都很長,質量好的保存幾十年沒問題,移動硬盤當然也可以,就是有些浪費。光盤***,但是容易氧化,質量普遍不高,可能幾年就壞掉了。
其實,比特幣是私鑰就是一串數字和大小寫字母的組合,50來個字符,如果記憶力強,硬硬地把它記住,也算是一種保存方式。不過,如果你忘了,比特幣就永遠找不回來了,變成了“腦殘包”。
錢包首要的要求是安全,但是世界上沒有絕對的安全。至于怎么“存”,就要看比特幣擁有者自己的考量了。