?

比特幣的安全性到底有多高

2022-03-17 22:48余梁
計算機與網絡 2022年2期
關鍵詞:次方銀行卡沙子

余梁

比特幣從2009年誕生,至今已經過去12年了,從一文不值到目前的近4萬美金一枚,總市值7 500多億美金。已經完全成長為一個龐然大物,那么,比特幣目前安全性究竟怎樣,持有比特幣會被其他人偷走嗎?

私鑰、公鑰、地址

就像銀行取款、網銀轉賬需要輸入密碼一樣,動用錢包里的比特幣也需要密碼,這個密碼被稱之為“私鑰”。

與“私鑰”對應的是“公鑰”,“公鑰”就像你的銀行賬戶。每個銀行賬戶都有唯一的賬戶編號,也就是銀行卡號。在比特幣網絡中,這個銀行卡號就是“地址”,別人只要知道你的“銀行卡號”(即地址),就可以給你轉比特幣了。

在銀行,開戶流程基本是“開設銀行賬戶———給銀行卡號———設置銀行卡密碼———開戶成功”。但在區塊鏈世界里,是先設置“密碼”(私鑰),再開設“銀行賬戶”(公鑰),最后給“銀行卡號”(地址)。

如果你路上撿到了一張紙條,上面只寫著銀行卡密碼,但沒寫銀行卡號,即便這個銀行卡密碼是真的,也無法取走相關賬戶里的錢。

但在區塊鏈世界,只要知道了別人的“銀行卡密碼”(私鑰),就可以知道別人的“銀行賬戶”(公鑰)和“銀行卡號”(地),可以取走里面的幣。

為什么會這樣呢?這是因為在區塊鏈中,私鑰通過加密生成公鑰,公鑰轉換一下格式生成地址。也就是說,私鑰可以推導出公鑰,公鑰可以推導出地址。

反向推導不可能

既然“私鑰可以推導出公鑰,公鑰可以推導出地址”,動用賬戶里的比特幣又必須輸入“密碼(私鑰)”,那黑客要竊取你錢包里的比特幣,必須、也只需拿到“私鑰”即可。

理論上,黑客有2種方法竊取私鑰:

1.通過地址/公鑰,反向推導出私鑰;

2.一個一個地去試私鑰,也就是暴力破解。

第一種方法并不可行,因為比特幣采用的加密算法,“失之毫厘,差之千里”。輸入的內容,稍稍變動哪怕一丁點的東西,加密后輸出的結果和之前輸出的結果也有天壤之別,而且這些結果沒有規律可循。

所以,這種加密算法是單向的、不可逆的,黑客無法通過輸出(地址/公鑰)推導出輸入(私鑰)。

暴力破解比特幣私鑰

既然第一種方法不可行,那第二種方法如何?在回答這個問題之前,先看下私鑰是怎么產生的。

假設拋硬幣,正面朝上為1,反面朝上為0,連續拋256次,把每次拋的結果記錄下來,再轉換成十六進制數,就是一個比特幣私鑰。

沒錯,比特幣的私鑰就是通過程序“拋256次硬幣”,隨機生成的。所以,比特幣私鑰的本質是256位二進制數。

每次拋硬幣,都有正反兩面,所以拋256次,一共可以出現「2×2×2×2…2×2×2」,即256個2相乘,也就是2的256次方這么多種結果。所以,比特幣的私鑰總數,理論上有2的256次方個。

注:私鑰總數的實際值比上面的理論值略低,因為有一小部分私鑰不可用,但對總數影響微乎其微。

2的256次方是多大呢?它約等于10的77次方。那10的77次方又是多大呢?

如果我們居住的這個地球,海洋、巖石、地底下的巖漿全部用沙子來填充的話,整個地球的沙子數量大概是10的30次方。也就是說,一個和地球一樣大,全部由沙子組成的星球,只需要用到10的30次方粒沙子。

10的77次方比10的30次方大10的37次方倍,整整37個0。在比一個地球的沙子數量還要多10的37次方倍的比特幣私鑰集里,一個一個地試,破解出某個地址對應的私鑰的難度超乎想象。所以,即便黑客有超級計算機,都無法暴力破解比特幣私鑰。

這就是為什么很多人說,“比特幣是第一次通過技術手段,保證了個人的私有財產神圣不可侵犯”。

雖然未來的科技如何發展誰都無法準確預測,但如果有一天,人類發明了比超級計算機、量子計算機還要厲害的計算機,比特幣私鑰不就不安全了嗎?

確實,很多人想知道量子計算機到底對比特幣的安全性有沒有威脅,如果有威脅,比特幣有哪些措施可以應對。

鑒于這個問題不是三言兩語能解釋清楚,安全問題不僅僅牽涉到技術問題,也牽涉到私鑰的保存,錢包授權等問題。如果是因為自己私鑰保存不當、電腦中了病毒、使用的錢包軟件有漏洞或是有后門,導致私鑰被黑客竊走,那錢包里的比特幣安全性就無從談起了。

但是,因為自己的失誤導致私鑰被盜,這鍋不能讓比特幣背,不是嗎?所以,如果有人拿比特幣被盜事件來質疑比特幣的安全性,你會怎么回答他呢?

3288501908202

猜你喜歡
次方銀行卡沙子
沙子為什么會"唱歌"?
誰劃走了銀行卡里的款
絕望的沙子
一粒沙子
尋找1024的因數
考考你看數字猜成語
手表+手鏈+戒指 N次方組合
一組計算題的啟示
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合