比特币的安全性到底有多高?
比特币的安全性到底有多高?
近期,比特币突破新高,一枚比特币價值近15萬人民币。對于剛入圈的新人來說,你肯定很關心比特币的安全問題。
那麼,比特币安全嗎?換句話說,錢包裡的比特币,容易被黑客盜走嗎?
01私鑰、公鑰、位址
就像銀行取款、網銀轉賬需要輸入密碼一樣,動用錢包裡的比特币也需要密碼,這個密碼被稱之為“私鑰”。
與“私鑰”對應的是“公鑰”,“公鑰”就像你的銀行賬戶。每個銀行賬戶都有唯一的賬戶編号,也就是銀行卡号。在比特币網絡中,這個銀行卡号就是“位址”。别人隻要知道你的“銀行卡号”(即位址),就可以給你轉比特币了。
在銀行,開戶流程基本是“開設銀行賬戶——給銀行卡号——設定銀行卡密碼——開戶成功”。但在區塊鍊世界裡,是先設定“密碼”(私鑰),再開設“銀行賬戶”(公鑰),最後給“銀行卡号”(位址)。
如果你路上撿到了一張紙條,上面隻寫着銀行卡密碼,但沒寫銀行卡号,即便這個銀行卡密碼是真的,你也無法取走相關賬戶裡的錢。
但在區塊鍊世界,你隻要知道了别人的“銀行卡密碼”(私鑰),就可以知道别人的“銀行賬戶”(公鑰)和“銀行卡号”(位址),可以取走裡面的币。
為什麼會這樣呢?
這是因為在區塊鍊中,私鑰通過加密生成公鑰,公鑰轉換一下格式生成位址。也就是說,私鑰可以推導出公鑰,公鑰可以推導出位址。
02反向推導?沒門!
既然“私鑰可以推導出公鑰,公鑰可以推導出位址”,動用賬戶裡的比特币又必須輸入“密碼(私鑰)”,那黑客要竊取你錢包裡的比特币,必須、也隻需拿到“私鑰”即可。
理論上,黑客有2種方法竊取你的私鑰:
1、通過位址/公鑰,反向推導出私鑰。
2、一個一個地去試私鑰,也就是暴力破解。
第一種方法并不可行,因為比特币采用的加密算法,“失之毫厘,差之千裡!”。輸入的内容,稍稍變動哪怕一丁點的東西,加密後輸出的結果和之前輸出的結果也有天壤之別,而且這些結果沒有規律可循。
是以,這種加密算法是“單向的”、“不可逆的”,黑客無法通過輸出(位址/公鑰)推導出輸入(私鑰)。
03暴力破解比特币私鑰有多難?
既然第一種方法不可行,那第二種方法如何?在回答這個問題之前,我們先看下私鑰是怎麼産生的。
假設你抛硬币,正面朝上為1,反面朝上為0,連續抛256次,把每次抛的結果記錄下來,再轉換成十六進制數,就是一個比特币私鑰。
What? 這麼簡單?這麼任性?
沒錯,比特币的私鑰就是通過程式“抛256次硬币”,随機生成的。是以,比特币私鑰的本質是256位二進制數。
每次抛硬币,都有正反2面,是以抛256次,一共可以出現「2 x 2 x2 x 2……2 x 2x2」,即256個2相乘,也就是「2的256次方」種結果。是以,比特币的私鑰總數,理論上有「2的256次方」個。
注:私鑰總數的實際值比上面的理論值略低,因為有一小部分私鑰不可用,但對總數影響微乎其微。
「2的256次方」是多大呢?它約等于「10的77次方」。那「10的77次方」又是多大呢?
如果我們居住的這個地球,海洋、岩石、地底下的岩漿全部用沙子來填充的話,整個地球的沙子數量大概是「10的30次方」。也就是說,一個和地球一樣大,全部由沙子組成的星球,需要用到「10的30次方」粒沙子。
「10的77次方」比「10的30次方」大「10的47次方」倍,整整47個0。在比一個地球的沙子數量還要多「10的47次方」倍的比特币私鑰集裡,一個一個地試,破解出某個位址對應的私鑰,簡直比大海撈針還難。
是以,即便黑客有超級計算機,都無法暴力破解比特币私鑰。
這就是為什麼很多人說,“比特币第一次通過技術手段,保證了個人的私有财産神聖不可侵犯”。
04如果比超級計算機還要厲害?
雖然未來的科技如何發展誰都無法準确預測,但如果有一天,人類發明了比超級計算機、量子計算機還要厲害的計算機,比特币私鑰不就不安全了嗎?
确實,很多人想知道量子計算機到底對比特币的安全性有沒有威脅,如果有威脅,比特币有哪些措施可以應對。
鑒于這個問題不是三言兩語能解釋清楚,後面我們會單獨開一篇文章,探讨這個問題,敬請期待。
05結語
當然,安全問題不僅僅牽涉到技術問題,也牽涉到私鑰的儲存問題。如果是因為自己私鑰儲存不當,或是電腦中了病毒,或是使用的錢包軟體有漏洞或是有後門,導緻私鑰被黑客竊走,那錢包裡的比特币安全性就無從談起了。
但是,因為自己的失誤導緻私鑰被盜,這鍋不能讓比特币背,不是嗎?
是以,如果有人拿比特币被盜事件來質疑比特币的安全性,你會怎麼回答他呢?