錢包
比特幣錢包使用戶可以檢查、存儲、花費其持有的比特幣,其形式多種多樣,功能可繁可簡,它可以是遵守比特幣協定運行的各種工具,如電腦客戶端、手機客戶端、網站服務、專用設備,也可以只是存儲著比特幣私密密鑰的介質,如一張紙、一段暗號、一個隨身碟、一個文本文檔,因為只要掌握比特幣的私密密鑰,就可以處置其對應地址中包含的比特幣。比特幣無法存入一般的銀行賬戶,交易只能在比特幣網路上進行,使用前需下載客戶端或接入線上網路。
客戶端
比特幣客戶端有很多,下文舉幾例列出。
官方客戶端
比特幣官方客戶端為Bitcoin QT,由中本聰開發。Bitcoin QT從0.4.0版本開始,支持錢包檔加密存儲。加密的錢包在每次付款的時候,都必須輸入密碼。但如果用加密之前備份的錢包檔案(wallet.dat)替換回來,還是可以正常交易。考慮到比特幣的原理可得出,掌握私密密鑰即擁有對相應地址中比特幣的處置權,不管對錢包檔案(內容包括各個地址對應的私密密鑰)是進行了加密還是刪除,都不能否定它。
其他客戶端
其他客戶端都是以Bitcoin QT為原型開發的。通常支持雲存儲區塊,以避免用戶花費大量時間和磁碟空間下載舊交易信息。並且各自提供高級功能。如Armory、Electrum和MultiBit等。此三者特點如下:
Electrum
MultiBit
比特幣也有運行在智慧型手機上的客戶端。
硬體錢包
硬體錢包是專門處理比特幣的智慧型設備,例如只安裝了比特幣客戶端與聯網功能的樹莓派。硬體錢包通常可以提供更多的安全保障措施。
線上錢包服務
線上錢包服務可以讓用戶在任何瀏覽器和移動設備上使用比特幣,通常它還提供一些額外功能,使用戶對使用比特幣時更加方便。但選擇線上錢包服務時必須慎重,因為其安全性受到服務商的影響。
線上錢包服務有“區塊鏈上”(on-chain)與“區塊鏈外”(off-chain)的區別:鏈上錢包服務商幫助用戶保管加密後的私密密鑰,用戶的比特幣餘額可以在區塊鏈上查詢到,類似為每位用戶準備一個獨立的保險箱;鏈外錢包服務商幫助用戶保管比特幣本身,相當於把用戶資金放在自己的金庫中,給用戶提供存款證明。
離線錢包
比特幣最需要保護的核心部分是私密密鑰(私鑰),因為用戶是以私鑰來證明所有權,並以此使用比特幣,存儲私密密鑰的介質也可以稱為錢包,當錢包丟失、損毀時,為比特幣丟失,離線錢包可以是紙錢包、腦錢包、冷錢包、輕量錢包。
紙錢包:把私鑰列印在紙上存放,再刪除電腦上的錢包檔案,實現錢包的網路隔離。
腦錢包:用戶可自行設定密碼,並以此進行散列運算,生成對應的私鑰與地址,以後只需記住這個密碼即可使用其中的比特幣。
冷錢包:指在一台不聯網的電腦上隨機生成比特幣的地址和私鑰,並且在今後的使用中也不連線網際網路,而只通過二維碼或隨身碟來傳送相關交易的電子簽名。
輕量錢包:指無需同步區塊鏈的比特幣錢包,輕量錢包相對線上錢包的優點是不會因為線上錢包網站的問題而丟失比特幣,缺點是只能在已安裝輕量錢包的電腦或手機上使用,便捷性上略差。
地址與私密密鑰
比特幣在產生地址時,相對應的私密密鑰也會一起產生, 彼此的關係猶如銀行存款的賬號和密碼,有些線上錢包的私密密鑰是存儲在雲的,用戶只能通過該線上錢包的服務使用比特幣。
地址
地址用於接收比特幣,功能類似銀行的存款賬號,但不需要實名登記。若只公開地址不必擔心裏面的比特幣被盜走,也沒有任何身份信息,也可以離線產生。比特幣的地址是由用戶的公開密鑰經過SHA-256散列運算後,再通過RIPEMD-160散列運算而得,其長度固定為 160 個比特(bits),通常會利用 Base-58 將之編碼成一串由英文字母和數字所組成的字元串,以方便顯示或散布,其特徵是皆以“1”或者“3”開頭,區分大小寫,但不包括“IlO0”等字元,“1”開頭的地址長26~34位,“3”開頭的地址長34位,例如"1DwunA9otZZQyhkVvkLJ8DV1tuSwMF7r3v",地址也可編碼成快速反應矩陣碼(QR-Code)的形式讓移動設備能夠便捷地讀取複製 。比特幣客戶端可以離線生成比特幣地址[4]。一個人可以生成並擁有許多比特幣地址,並用在不同的交易上,而且除非自己揭露,否則外人無法看出其中的關係。可用的比特幣地址數量接近2個。形象地說,假如地球上約有2粒沙,如果每一粒沙中有一個地球,那么比特幣地址總數遠遠超過所有這些“
地球”上的所有的沙子的數量。
私密密鑰
比特幣的私密密鑰(
私鑰,private key),作用相當於
金融卡提款或消費的密碼,用於證明比特幣的所有權。擁有者必須私密密鑰可以給交易訊息(最常見的,花費比特幣的訊息)簽名,以證明訊息的發布者是相應地址的所有者,沒有私鑰,就不能給訊息簽名,作為不記名貨幣,網路上無法認得所有權的證據,也就不能使用比特幣,交易時以網路會以
公鑰確認,掌握私密密鑰就等於掌握其對應地址中存放的比特幣。
私密密鑰必須保密、否則比特幣會被他人盜用,也不能丟失,而且不像金融卡密碼遺忘時,用戶可以持用自己的身份證件,親自前往銀行門市辦理密碼重置後繼續使用原來的賬戶,若比特幣的私鑰丟失,將如同忘記保險箱的密碼而無法正常打開取用保險箱內的物品,而且沒有方法可以重置(除非有事先備份),2013年,有一位英國用戶因為不小心丟棄了存有其私密密鑰的硬碟,導致裡面的7,500個比特幣,當時價值750萬美元,無法使用。,除非私鑰被找到,否則這些比特幣將永“躺”在區塊鏈里,無法流通。,而要破解私鑰的難度很高,這是其中一個作為不記名的比特幣的主要安全機制。根據區塊鏈業者Chainalysis的估算,在2017年底時,約有17%至23%,278萬個到379萬個的比特幣因為私鑰丟失、密碼遺忘等原因,而永遠無法使用與進入流通。
比特幣私密密鑰通常由51比特或52比特字元表示,其編碼方式與比特幣地址相似。51比特標記法由數字“5”開頭,52位標記法由“K”或“L”開頭。比特幣地址是由比特幣公開密鑰進行散列運算得出的,公開密鑰是可以通過私密密鑰推算出的。所以掌握私密密鑰就可以推算出私密密鑰對應的地址(不可逆),這相當於只需要輸入一組正確的密碼,就可以推算出賬戶名稱並登錄,而無法從賬戶名稱反向推算出密碼般。
參見