備受爭議的腦錢包(Brainwallet)

買賣虛擬貨幣
首先,我們所說的區塊鏈錢包實際上就是一對公鑰和私鑰。類比銀行系統,公鑰就是你的“銀行賬戶”,私鑰就是你的“賬戶密碼”。如果需要匯入加密貨幣,把公鑰告訴對方,對方就可以給你轉錢了;如果需要匯出,只有提供私鑰簽名才能把錢轉給別人。

不同的是,在銀行系統中,“銀行賬戶”和“賬戶密碼”是相對獨立的。即使我告訴你某一個賬戶的密碼,你還是得都把我所有的銀行賬戶都試一遍才能將兩者匹配。但是在區塊鏈系統中,公鑰是可以由私鑰計算出來的,也就是說只要我知道了對方的私鑰,分分鐘就可以算出他的公鑰並取走對方的錢。


那麼在區塊鏈系統中,我們如何保證私鑰的安全性呢?如此重要的私鑰肯定不會像銀行密碼一樣是一組6位數字啦,它實質上是一組256位的二進位制數“01100110.....”

任何人都可以使用任何一組這樣的二進位制數作為私鑰,然後透過某種方式計算出公鑰,有了公鑰和私鑰,使用者就可以匯入、匯出加密貨幣,並進行各種交易了。而且與中心化系統不同的是,這個過程完全不需要經過任何組織或機構的認證(匿名性)。通常我們見到的公鑰、私鑰都是改寫成十六進位制並加了校驗位的base58形式。

現在我們知道,私鑰就是我們錢包的鑰匙,對於我們的資產安全非常重要,那如何才能保證它的私密性呢?存在聯網的電腦中可能被木馬病毒盜取,就連寫在紙上都有可能被人偷走,於是有人提出最保險的做法是把私鑰儲存在腦袋裡,對,就是這麼簡單,把私鑰記在腦子裡就是所謂腦錢包,總有人喜歡搞些新名詞。


但是各位隨意感受一下,一組256位的二進位制數“01100110.....”或者轉化後的base58格式1E99423A4ED27608A15A2616A2B0E9E52CED330AC530EDCC32C8FFC6A526AEDD

萬一記錯了,錢包裡的錢就永遠都拿不回來了。因為這世上,除了你聰明的腦袋,沒有別的地方有記錄,雖然沒有人能偷走,但是也沒有人能幫你找回。

所以智慧的人類就想到了透過某種辦法把一些容易記住的人類語言“轉換”成這樣的私鑰!早在2012年4月就出現了一個名為“Brainwallet.org”的網站,它能夠把使用者輸入的內容(稱為口令,passphrase)經過SHA256演算法生成比特幣的公鑰和私鑰,所以只要輸入任何不被其他人知道的秘密資訊就可以生成自己的錢包了。現在使用者需要記住的就不再是私鑰本身,而是更加友好的口令了。這種腦錢包的實現看起來很美好,但事實上存在著巨大的安全漏洞!


在使用腦錢包時,為了減少記憶量,使用者傾向於使用一些有實際意義的資訊作為輸入,比如生日、喜歡的人或物、詩句等等。而這,正好為“暴力破解”提供了方便之門。有一點值得注意的是,雖然駭客只需要從0窮舉到最後一個數字就可以“暴力破解”原本的256位二進位制數,但是數學概率能夠保證我們錢包的安全。簡單計算就可以知道,假設地球上60億人,每人10個錢包,駭客想用窮舉的方法找到其中一個的概率是6*10^10/2^256。通常的計算機的CPU頻率為3GHz,假設一次計算就能完成猜測(當然這是不可能的),猜中一個大概要花的時間是2*10^49年!

但對於腦錢包來說,總會有人使用簡單的諸如“password1”的短語生成私鑰和公鑰,駭客只需要從有限的字典中窮舉就可以破解了。同時,短語簡單並不是安全隱患的全部,所有人類可能想到的有含義的資訊組合駭客也能想到,他甚至可以用類似“正規表示式”的方式更新它的字典。而且所有在網際網路上出現過的東西,比如Google搜尋歷史,都能進入駭客的字典!

比如,一個名叫Ryan的安全研究員曾經透過程式“暴力破解”了超過730個比特幣,其中一個由“how much wood could a woodchuck chuck if a woodchuck could chuck wood”生成的腦錢包包含250個比特幣。

說了這麼多,我想大家應該也能明白了,腦錢包這個概念本身是安全的(這不廢話麼),隱患來自於使用它的人。現在也已經有了很多避免使用者輸入資訊過於簡單(專業的說法是,資訊熵太小)的方法,比如要求使用者新增獨一無二的相關資訊,或是隨機生成10~15個單詞等,使得腦錢包的安全性有了較大提高。

好了,小編希望這篇文章能讓大家對腦錢包有個基本的認識,也能知道安全性的隱患在哪,並有意地防範。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;