余梁
比特幣從2009年誕生,至今已經(jīng)過(guò)去12年了,從一文不值到目前的近4萬(wàn)美金一枚,總市值7 500多億美金。已經(jīng)完全成長(zhǎng)為一個(gè)龐然大物,那么,比特幣目前安全性究竟怎樣,持有比特幣會(huì)被其他人偷走嗎?
私鑰、公鑰、地址
就像銀行取款、網(wǎng)銀轉(zhuǎn)賬需要輸入密碼一樣,動(dòng)用錢(qián)包里的比特幣也需要密碼,這個(gè)密碼被稱(chēng)之為“私鑰”。
與“私鑰”對(duì)應(yīng)的是“公鑰”,“公鑰”就像你的銀行賬戶(hù)。每個(gè)銀行賬戶(hù)都有唯一的賬戶(hù)編號(hào),也就是銀行卡號(hào)。在比特幣網(wǎng)絡(luò)中,這個(gè)銀行卡號(hào)就是“地址”,別人只要知道你的“銀行卡號(hào)”(即地址),就可以給你轉(zhuǎn)比特幣了。
在銀行,開(kāi)戶(hù)流程基本是“開(kāi)設(shè)銀行賬戶(hù)———給銀行卡號(hào)———設(shè)置銀行卡密碼———開(kāi)戶(hù)成功”。但在區(qū)塊鏈?zhǔn)澜缋?,是先設(shè)置“密碼”(私鑰),再開(kāi)設(shè)“銀行賬戶(hù)”(公鑰),最后給“銀行卡號(hào)”(地址)。
如果你路上撿到了一張紙條,上面只寫(xiě)著銀行卡密碼,但沒(méi)寫(xiě)銀行卡號(hào),即便這個(gè)銀行卡密碼是真的,也無(wú)法取走相關(guān)賬戶(hù)里的錢(qián)。
但在區(qū)塊鏈?zhǔn)澜纾灰懒藙e人的“銀行卡密碼”(私鑰),就可以知道別人的“銀行賬戶(hù)”(公鑰)和“銀行卡號(hào)”(地),可以取走里面的幣。
為什么會(huì)這樣呢?這是因?yàn)樵趨^(qū)塊鏈中,私鑰通過(guò)加密生成公鑰,公鑰轉(zhuǎn)換一下格式生成地址。也就是說(shuō),私鑰可以推導(dǎo)出公鑰,公鑰可以推導(dǎo)出地址。
反向推導(dǎo)不可能
既然“私鑰可以推導(dǎo)出公鑰,公鑰可以推導(dǎo)出地址”,動(dòng)用賬戶(hù)里的比特幣又必須輸入“密碼(私鑰)”,那黑客要竊取你錢(qián)包里的比特幣,必須、也只需拿到“私鑰”即可。
理論上,黑客有2種方法竊取私鑰:
1.通過(guò)地址/公鑰,反向推導(dǎo)出私鑰;
2.一個(gè)一個(gè)地去試私鑰,也就是暴力破解。
第一種方法并不可行,因?yàn)楸忍貛挪捎玫募用芩惴ǎ笆е晾?,差之千里”。輸入的?nèi)容,稍稍變動(dòng)哪怕一丁點(diǎn)的東西,加密后輸出的結(jié)果和之前輸出的結(jié)果也有天壤之別,而且這些結(jié)果沒(méi)有規(guī)律可循。
所以,這種加密算法是單向的、不可逆的,黑客無(wú)法通過(guò)輸出(地址/公鑰)推導(dǎo)出輸入(私鑰)。
暴力破解比特幣私鑰
既然第一種方法不可行,那第二種方法如何?在回答這個(gè)問(wèn)題之前,先看下私鑰是怎么產(chǎn)生的。
假設(shè)拋硬幣,正面朝上為1,反面朝上為0,連續(xù)拋256次,把每次拋的結(jié)果記錄下來(lái),再轉(zhuǎn)換成十六進(jìn)制數(shù),就是一個(gè)比特幣私鑰。
沒(méi)錯(cuò),比特幣的私鑰就是通過(guò)程序“拋256次硬幣”,隨機(jī)生成的。所以,比特幣私鑰的本質(zhì)是256位二進(jìn)制數(shù)。
每次拋硬幣,都有正反兩面,所以拋256次,一共可以出現(xiàn)「2×2×2×2…2×2×2」,即256個(gè)2相乘,也就是2的256次方這么多種結(jié)果。所以,比特幣的私鑰總數(shù),理論上有2的256次方個(gè)。
注:私鑰總數(shù)的實(shí)際值比上面的理論值略低,因?yàn)橛幸恍〔糠炙借€不可用,但對(duì)總數(shù)影響微乎其微。
2的256次方是多大呢?它約等于10的77次方。那10的77次方又是多大呢?
如果我們居住的這個(gè)地球,海洋、巖石、地底下的巖漿全部用沙子來(lái)填充的話,整個(gè)地球的沙子數(shù)量大概是10的30次方。也就是說(shuō),一個(gè)和地球一樣大,全部由沙子組成的星球,只需要用到10的30次方粒沙子。
10的77次方比10的30次方大10的37次方倍,整整37個(gè)0。在比一個(gè)地球的沙子數(shù)量還要多10的37次方倍的比特幣私鑰集里,一個(gè)一個(gè)地試,破解出某個(gè)地址對(duì)應(yīng)的私鑰的難度超乎想象。所以,即便黑客有超級(jí)計(jì)算機(jī),都無(wú)法暴力破解比特幣私鑰。
這就是為什么很多人說(shuō),“比特幣是第一次通過(guò)技術(shù)手段,保證了個(gè)人的私有財(cái)產(chǎn)神圣不可侵犯”。
雖然未來(lái)的科技如何發(fā)展誰(shuí)都無(wú)法準(zhǔn)確預(yù)測(cè),但如果有一天,人類(lèi)發(fā)明了比超級(jí)計(jì)算機(jī)、量子計(jì)算機(jī)還要厲害的計(jì)算機(jī),比特幣私鑰不就不安全了嗎?
確實(shí),很多人想知道量子計(jì)算機(jī)到底對(duì)比特幣的安全性有沒(méi)有威脅,如果有威脅,比特幣有哪些措施可以應(yīng)對(duì)。
鑒于這個(gè)問(wèn)題不是三言?xún)烧Z(yǔ)能解釋清楚,安全問(wèn)題不僅僅牽涉到技術(shù)問(wèn)題,也牽涉到私鑰的保存,錢(qián)包授權(quán)等問(wèn)題。如果是因?yàn)樽约核借€保存不當(dāng)、電腦中了病毒、使用的錢(qián)包軟件有漏洞或是有后門(mén),導(dǎo)致私鑰被黑客竊走,那錢(qián)包里的比特幣安全性就無(wú)從談起了。
但是,因?yàn)樽约旱氖д`導(dǎo)致私鑰被盜,這鍋不能讓比特幣背,不是嗎?所以,如果有人拿比特幣被盜事件來(lái)質(zhì)疑比特幣的安全性,你會(huì)怎么回答他呢?
3288501908202