最近FTX的暴雷又帶來一陣對中心化交易所的恐慌,其實每隔一段時間都會有一些中心化交易所出問題,特別是這些起的太快的;主要是這圈子還在各種野蠻生長,幾乎年年有雷,所以活得長才是最重要的。從賬戶安全性角度看,中心化系統(tǒng)的安全性依賴于中心化機構(gòu)對系統(tǒng)的保護(hù)措施,而去中心化系統(tǒng)的的安全性依賴于個人對自己秘鑰的保護(hù);去中心化給個體帶來了更多的自由,但同時也對個體自身有更高的要求,或者說自由對大部分人來說其實并不是什么好事,因為自由意味著要承擔(dān)更多的責(zé)任,而不是享受什么自由的權(quán)利。
我發(fā)現(xiàn)很多人一直沒用過冷錢包,有些最多也就是用過熱錢包(熱錢包會連接到網(wǎng)絡(luò),而冷錢包是物理上完全隔離)。而且他們對秘鑰的安全性保護(hù)都不夠重視,曾經(jīng)一朋友由于秘鑰助記詞沒有妥善保管好,導(dǎo)致助記詞泄漏了,賬上的數(shù)字資產(chǎn)全被轉(zhuǎn)走了,那真是欲哭無淚,大方向做對了,可惜幣丟了。所以才有那句“Not your keys, Not your coins”,不會用冷錢包都不能算一個合格的HODLer,所以還是有必要闡述下安全性和冷錢包使用。
秘鑰的安全性
區(qū)塊鏈網(wǎng)絡(luò)的賬戶其實是一對秘鑰對(公鑰與私鑰),而這對秘鑰對是由一個隨機數(shù)種子seed生成的(通常為128bit或256bit);而為了方便人的記錄,seed會被編碼(BIP39標(biāo)準(zhǔn))成一串稱為助記詞的單詞串,通常是12個單詞或24個單詞,12個單詞的安全性是128位,24個單詞的安全性是256位;128位已經(jīng)足夠安全了,通常各種錢包軟件生成的都是12個單詞的助記詞,但為了更高安全性可以自己生成24個單詞。
256位的安全性有多強,或者說256位的空間有多大?可能有個參照會讓人有更形象的感受,是個異常大的數(shù),大約等于10進(jìn)制的
,而整個可見宇宙中包含的原子數(shù)大約在
;所以在如此大的空間中的均勻隨機性要發(fā)生碰撞的概率是基本忽略的。后面的示例也可以看到隨機性的神奇,你可以隨意生成幾串助記詞然后挑一串比較順眼的拿來用,但一定要記錄備份起來,如果沒記下,哪怕再刷幾輩子也刷不出同一串來。這像極了人世間的各種聚散離合,有時的一句再見,可能真的就是這輩子再也不會見了。
冷錢包
需要用到的硬件:
- U盤數(shù)個
- 1個用來安裝Linux做離線安全運行環(huán)境,普通常用U盤即可(16G以上)
- 剩下的當(dāng)做備份存儲助記詞的,最好使用工業(yè)U盤,耐久
- 舊手機(做硬件錢包)
要在源頭就保證安全,最好不要用錢包軟件內(nèi)置生成的助記詞,可以自己寫代碼生成,而且要做到助記詞的生成與使用都不觸網(wǎng):
-
建立離線安全運行環(huán)境
先下載Ubuntu Linux系統(tǒng)的ISO鏡像文件,然后用rufus安裝到U盤,以后這個U盤可以用來啟動電腦當(dāng)一個離線運行的安全工作環(huán)境。
-
生成助記詞與備份
自己寫幾行JS代碼就可以生成助記詞:
const bip39 = require('bip39'); const crypto = require('crypto'); //Generate mnemonic var mnemonic = bip39.generateMnemonic(256, crypto.randomBytes); console.log(mnemonic);把上面JS代碼保存,在離線運行環(huán)境下運行生成助記詞,抄到紙上(強迫癥患者可用碳素墨水抄,更耐久)和備份到幾個工業(yè)U盤上。
生成助記詞 -
安裝錢包軟件
在舊手機上安裝TokenPocket,目前這個錢包軟件基本支持各種主流B種,各種操作支持也相當(dāng)好,重要的是支持冷錢包模式。最后取出手機卡,關(guān)掉移動數(shù)據(jù)、藍(lán)牙、無線,開飛行模式完全離線模式,在TokenPocket中導(dǎo)入之前生成的助記詞,現(xiàn)在舊手機就已經(jīng)變成一個硬件冷錢包了,唯一的功能就是進(jìn)行交易tx的簽名操作。
在自己平時用的手機上再裝個TokenPocket當(dāng)觀察錢包(只觀察冷錢包地址,不存儲秘鑰),要轉(zhuǎn)賬或參與Defi時在觀察錢包上生成交易tx(具體使用自行參考TokenPocket官網(wǎng)幫助),再由冷錢包手機掃碼簽名。這種方式可以保證秘鑰一直隔離在離線冷錢包中永不觸網(wǎng),不泄露,實現(xiàn)極高的安全性。
