摘要:要點(diǎn)提醒確保比特幣錢包安全的全部在于確保錢包私鑰安全,好消息是,這個(gè)你可以采取措施。
本文是有關(guān)比特幣相關(guān)的系列文章,發(fā)布于GIT-HUB,地址如下:比特幣錢包安全概要
https://github.com/junahan/JU...
有關(guān)比特幣錢包安全,可以簡(jiǎn)單的分為兩類,一類是做為用戶的你不可控制的安全問題,一類是做為用戶的你可以控制的安全問題。之所以這樣看似廢話的區(qū)分,提醒你集中你的注意力在你可以控制的安全問題上。
要點(diǎn)提醒:確保比特幣錢包安全的全部在于確保錢包私鑰安全,好消息是,這個(gè)你可以采取措施。
你不能控制的安全問題比特幣選擇的密碼學(xué)算法安全問題,例如,比特幣創(chuàng)世之初選擇了采用SECP256K1算法,如果該算法失效,則會(huì)從根本上威脅比特幣安全
51%算力攻擊導(dǎo)致的交易安全問題,這個(gè)可能導(dǎo)致你收不到比特幣,但不會(huì)導(dǎo)致你持有的比特幣產(chǎn)生安全問題
你可以控制的安全問題你可以選擇使用那個(gè)錢包 - 比特幣賬本完全開放,任何人都可以構(gòu)建一個(gè)支持比特幣的錢包
你可以選擇采用什么機(jī)制來存儲(chǔ)和保護(hù)你的私鑰,例如,你可以采用冷熱存儲(chǔ)或者分割和共享密鑰的方式
你可以養(yǎng)成良好的使用錢包的習(xí)慣,例如,定期備份錢包、必要的時(shí)候及時(shí)將熱錢包內(nèi)的比特幣轉(zhuǎn)移到冷錢包等
比特幣錢包安全機(jī)制安全機(jī)制從來就是方便易用和安全可靠(防盜和防災(zāi))之間的平衡機(jī)制。既然說確保錢包安全的全部在于確保私鑰安全,那就把重點(diǎn)放在錢包如何存儲(chǔ)私鑰以確保它的安全上。下表是相關(guān)安全機(jī)制的一個(gè)簡(jiǎn)單的總結(jié)。
機(jī)制 | 易用性 | 可用性(1) | 安全性(2) |
---|---|---|---|
本地存儲(chǔ) | 高 | 低 | 低 |
冷熱存儲(chǔ) | 中 | 中 | 中 |
分割和共享密鑰 | 中 | 高 | 高 |
在線錢包 | 高 | 中(3) | 低(4) |
比特幣交易所 | 高 | 中(5) | 中(6) |
可用性(Availablity): 和存儲(chǔ)介質(zhì)可能自然損壞有關(guān),可以簡(jiǎn)單的理解為防災(zāi),高可用性往往意味著更低的安全性,想一想你把私鑰備份到公共網(wǎng)絡(luò)上就明白了。
安全性(Security): 可簡(jiǎn)單的理解為防盜。
在線錢包的可用性取決于錢包提供方的服務(wù)能力。
在線錢包的安全性取決于錢包提供方的安全措施和信用,但很重要的是,做為用戶的你要意識(shí)到錢包提供方存儲(chǔ)你的密鑰也意味著可以訪問你的密鑰。而且在線錢包供應(yīng)商更有可能遭受黑客的攻擊而導(dǎo)致客戶錢包的損失。
使用比特幣交易所服務(wù)就像你把錢存入銀行一樣,可謂是省心省力、方便易用。但其可用性取決于交易所的防災(zāi)能力。
對(duì)于使用比特幣交易所的安全問題,不再是密鑰的安全問題,而是你在比特幣交易所賬戶的安全問題,你需要像信任銀行一樣信任交易所不破產(chǎn)、不跑路、不作惡。
本地存儲(chǔ)本地存儲(chǔ)是一種最簡(jiǎn)單的方式,Bitcoin-qt錢包默認(rèn)就是把產(chǎn)生的私鑰存儲(chǔ)在一個(gè)名字為keystore的本地文件里面,keystore文件的訪問簡(jiǎn)單的通過用戶指定密碼保護(hù)。錢包被設(shè)計(jì)為最多產(chǎn)生和管理1000個(gè)密鑰對(duì)(對(duì)大多數(shù)用戶來說這不是問題),例如,每次交易中用于找零的地址就有對(duì)應(yīng)的密鑰對(duì)(為了隱私和安全的因素,每次找零地址都各不相同)。錢包應(yīng)用管理所有產(chǎn)生的密鑰對(duì)和地址并為用戶統(tǒng)計(jì)相應(yīng)地址中的比特幣,比特幣錢包里面看到的余額就是這些地址上所有比特幣的總和。
使用本地存儲(chǔ)方便快捷,但可用性和安全性均較差,也就是說,你既要防盜還要防災(zāi)才行,這種情況下,你最好定期備份keystore并確保將備份安全。
冷熱存儲(chǔ)鑒于本地存儲(chǔ)安全性的問題,我們希望能夠在保留便利的情況下提升安全性。基本的思路是我們可以創(chuàng)建兩個(gè)錢包,一個(gè)鏈接網(wǎng)絡(luò),可以發(fā)送和接受比特幣,我們稱之為熱錢包,另外一個(gè)錢包從不連接網(wǎng)絡(luò)(安全威脅更多來自網(wǎng)絡(luò)),我們稱之為冷錢包,熱錢包知悉冷錢包地址,從而可以向冷錢包轉(zhuǎn)移價(jià)值。這樣以來,我們同時(shí)擁有熱錢包的便利和冷錢包的安全。
考慮到隱私和安全問題,我們希望每次熱錢包向冷錢包轉(zhuǎn)移比特幣的時(shí)候使用不同的地址,該地址需要和冷錢包相應(yīng)的密鑰對(duì)匹配,那么如何確保熱錢包知道冷錢包的多個(gè)地址?答案是利用稱之為分級(jí)密鑰生成模式的密碼學(xué)技巧,如下圖所示:
分級(jí)密鑰生成程序不直接生成密鑰對(duì),而是生成兩段信息,一段是私鑰生成信息,該信息存儲(chǔ)于冷錢包這側(cè),另外一段是地址生成信息,該段信息傳遞給熱錢包一側(cè)。
在熱錢包一側(cè),分級(jí)密鑰生成程序使用地址生成信息和索引值“i”(一個(gè)整數(shù))生成第“i”個(gè)地址。
在冷錢包一側(cè),分級(jí)密鑰生成程序使用私鑰生成信息和索引值“i”生成第“i”個(gè)私鑰,并確保該私鑰和熱錢包一次第“i”個(gè)地址相匹配,這點(diǎn)至關(guān)重要,否則,就無(wú)法確保冷錢包用于該地址上的比特幣。
密碼學(xué)保證攻擊者無(wú)法通過熱錢包一次的地址生成信息推導(dǎo)出私鑰生成信息及私鑰,從而可以確保私鑰的安全。
比特幣使用的數(shù)字簽名算法(ECDSA)支持分級(jí)密鑰生成模式(這很重要)。
基于以上基本原理,我們可以設(shè)計(jì)如下幾種冷熱存儲(chǔ)錢包:
分級(jí)錢包: 直接基于分級(jí)密鑰生成模式打造,在這種方案中,冷錢包可以存放在不連網(wǎng)的PC/筆記本電腦上,也可以存放在不連接網(wǎng)絡(luò)的移動(dòng)設(shè)備上,并記得把它放在安全可靠的地方 - 注意防盜防災(zāi)。
大腦錢包: 基本原理是根據(jù)口令短語(yǔ)(一組足夠長(zhǎng)的詞語(yǔ)組合)產(chǎn)生密鑰對(duì)并結(jié)合分級(jí)密鑰生成模式,我們可以基于口令短語(yǔ)生成一系列地址和相應(yīng)的私鑰。需要重點(diǎn)關(guān)注的是,私鑰僅僅由口令短語(yǔ)保護(hù):
為防止攻擊者發(fā)起猜測(cè)攻擊,口令短語(yǔ)需要足夠長(zhǎng),要比Email口令和銀行卡密碼長(zhǎng)的多才行。例如這樣的口令短語(yǔ) - "worn till alloy focusing okay reducing earth dutch fake tired dot occasions"。
同時(shí)要確保你的確能夠記住口令短語(yǔ)(你也可以寫下來并放在安全的地方,把它變成成一個(gè)簡(jiǎn)單的紙張錢包),否則你就無(wú)法重建私鑰系列,從而永遠(yuǎn)丟失這些地址上的比特幣。
紙張錢包: 和大腦錢包原理一樣,如果你把口令短語(yǔ)打印在紙張上,大腦錢包就變成紙張錢包。不過,既然都要打印在紙上了,不妨直接把私鑰和地址打印在紙上。在此提醒,請(qǐng)把紙張錢包放置在安全可靠的地方 - 注意防盜防災(zāi)。
共享密鑰我們說冷熱存儲(chǔ)可以提供更高的安全性(防網(wǎng)絡(luò)攻擊),但是卻面臨一個(gè)問題就是我們需要將冷私鑰存儲(chǔ)在介質(zhì)上并好生照料介質(zhì)以防止介質(zhì)自然損壞(防災(zāi))而導(dǎo)致低可用性。如果有辦法同時(shí)提高可用性和安全性就再好不過了。答案是有,我們?cè)僖淮卫妹艽a學(xué)技巧 - 共享密鑰來做到這一點(diǎn)。
簡(jiǎn)單的說,共享密鑰允許將你的密鑰分成N個(gè)碎片,只需要其中的K個(gè)碎片(K<=N)就可以恢復(fù)原始密鑰,而且,如果只有少于K個(gè)碎片,則無(wú)法恢復(fù)原始密鑰并切無(wú)法獲得原始密鑰的任何信息,這就是密鑰共享的K-of-N模式。
這里需要提醒用戶的是,這里的N個(gè)碎片只是個(gè)比喻,并非簡(jiǎn)單的把原始密鑰串直接切成N個(gè)碎片。這里想到一個(gè)網(wǎng)絡(luò)盛傳高曉松2017年12月8日微博分享的故事(看下圖),這個(gè)故事告訴我們,這個(gè)人腦2-of-2密碼模式安全但可用性顯然不行。
在線錢包一個(gè)在線錢包類似于本地錢包,區(qū)別在于錢包信息存儲(chǔ)于云端,可以通過Web瀏覽器或者是App訪問。在線錢包很是便利,但它的安全不僅取決于在線錢包服務(wù)供應(yīng)商(通常是比特幣交易所)的安全措施,還取決于服務(wù)供應(yīng)商的信譽(yù):
在線錢包供應(yīng)商安全措施:
是否提供類似本地存儲(chǔ)的大腦錢包的機(jī)制,允許通過一個(gè)受復(fù)雜口令短語(yǔ)保護(hù)的冷錢包支持,讓用戶可以在本地通過該口令短語(yǔ)重建一個(gè)冷錢包,這樣以來,用戶只要在線使用一個(gè)受密碼保護(hù)的熱錢包,同時(shí)又能夠在必要的時(shí)候把在線錢包的比特幣及時(shí)轉(zhuǎn)移至冷錢包地址。
網(wǎng)絡(luò)防攻擊 - 在線錢包供應(yīng)商大量存放客戶的錢包密鑰信息,容易成為黑客攻擊目標(biāo)。
在線錢包供應(yīng)商信譽(yù): 供應(yīng)商在云端存儲(chǔ)你的密鑰,他們至少有能力訪問你的密鑰!通常,類似于大腦錢包,你可以提供一個(gè)足夠復(fù)雜的口令短語(yǔ)來加密和保護(hù)你的密鑰,但你得信任供應(yīng)商不會(huì)有意(作惡)或者無(wú)意(例如他們錢包的代碼漏洞)泄漏你的密鑰和口令短語(yǔ)。
比特幣交易所把比特幣存在比特幣交易所而不是自己的比特幣錢包是另外一種選擇,這個(gè)類比于把錢存進(jìn)銀行,你在比特幣交易所的賬戶本質(zhì)上已經(jīng)不是比特幣錢包賬戶,也無(wú)需擔(dān)心自己比特幣存儲(chǔ)的問題。就像從銀行取現(xiàn)到你的錢包一樣,你也可以隨時(shí)向比特幣交易所要求提幣,提幣的過程就是將你的比特幣從交易所賬戶轉(zhuǎn)移至你自己的比特幣錢包的過程。將比特幣存進(jìn)交易所,你可以無(wú)需在擔(dān)心比特幣錢包的安全問題,但你面臨另外一個(gè)可能更加不安全的因素,那就是比特幣交易所本身可能破產(chǎn)(就像銀行破產(chǎn)一樣),甚至比特幣交易所卷幣跑路的風(fēng)險(xiǎn)。
你可以采取的措施選擇錢包 - 盡可能選擇官方的,開源的,具有高級(jí)安全選擇(如支持冷熱存儲(chǔ))的錢包。
使用更高級(jí)的安全防護(hù),如采用冷熱錢包,兼顧方便易用和安全
及時(shí)將不用的比特幣從熱錢包轉(zhuǎn)移至冷錢包,如果只有口令短語(yǔ)保護(hù)的情況下,盡可能使用專業(yè)軟件生成口令短語(yǔ),不要使用過于簡(jiǎn)單的口令短語(yǔ)
參考文獻(xiàn)Satoshi Nakamoto(中本聰),"Bitcoin: A Peer-to-Peer Electronic Cash System", http://www.bitcoin.org/en/bit..., 2009.
Arvind Narayanan, Joseph Bonneau, Edward Felten, Andrew Miller, Steven Goldfeder, " Bitcoin and Cryptocurrency Technologies, 2016.
BIP 32, "Hierarchical Deterministic Wallets", https://github.com/bitcoin/bi..., 2012.
本作品采用知識(shí)共享署名 4.0 國(guó)際許可協(xié)議進(jìn)行許可。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/24004.html
摘要:創(chuàng)建比特幣錢包需要一組優(yōu)秀的程序員。如何使用流行的庫(kù)構(gòu)建自己的比特幣錢包應(yīng)用程序創(chuàng)建比特幣錢包應(yīng)用程序的一種方法是依賴現(xiàn)有工具。具有以下功能它允許開發(fā)人員使用密碼加密創(chuàng)建比特幣錢包應(yīng)用程序。 盡管目前加密貨幣市場(chǎng)相當(dāng)黯淡,但比特幣和其他山寨幣繼續(xù)受歡迎。每天都有新的交易者加入市場(chǎng),希望能夠在下一個(gè)價(jià)格高漲時(shí)獲利。 隨著市場(chǎng)的突飛猛進(jìn),開發(fā)商也在獲益。新交易者的首要任務(wù)是設(shè)置比特幣錢包。...
摘要:創(chuàng)建比特幣錢包需要一組優(yōu)秀的程序員。如何使用流行的庫(kù)構(gòu)建自己的比特幣錢包應(yīng)用程序創(chuàng)建比特幣錢包應(yīng)用程序的一種方法是依賴現(xiàn)有工具。具有以下功能它允許開發(fā)人員使用密碼加密創(chuàng)建比特幣錢包應(yīng)用程序。 盡管目前加密貨幣市場(chǎng)相當(dāng)黯淡,但比特幣和其他山寨幣繼續(xù)受歡迎。每天都有新的交易者加入市場(chǎng),希望能夠在下一個(gè)價(jià)格高漲時(shí)獲利。 隨著市場(chǎng)的突飛猛進(jìn),開發(fā)商也在獲益。新交易者的首要任務(wù)是設(shè)置比特幣錢包。...
摘要:比特幣作為一個(gè)點(diǎn)對(duì)點(diǎn)電子現(xiàn)金系統(tǒng),卻需要一個(gè)中心化的交易所來撮合交易。具有比特幣精神的交易所具有比特幣精神的交易所應(yīng)該不需要注冊(cè)不需要充值到交易所指定的錢包訂單撮合成功后資金應(yīng)該回到用戶自己的錢包里面,而不是需要審批才能提走。 比特幣作為一個(gè)點(diǎn)對(duì)點(diǎn)電子現(xiàn)金系統(tǒng),卻需要一個(gè)中心化的交易所來撮合交易。這雖然不符合點(diǎn)對(duì)點(diǎn)的精神。但是依然被客戶迅速的接受了。 中心化交易所的風(fēng)險(xiǎn) 資產(chǎn)安全 封閉...
閱讀 1575·2021-11-02 14:42
閱讀 2317·2021-10-11 10:58
閱讀 663·2021-09-26 09:46
閱讀 2913·2021-09-08 09:35
閱讀 1409·2021-08-24 10:01
閱讀 1236·2019-08-30 15:54
閱讀 3605·2019-08-30 15:44
閱讀 1798·2019-08-30 10:49