比特幣網(wǎng)絡(luò)的基本思想,就是為每一個(gè)比特幣建立完整公開(kāi)的歷史交易記錄,來(lái)解決重復(fù)支付的問(wèn)題,也叫雙花問(wèn)題,整個(gè)比特幣網(wǎng)絡(luò)都是圍繞這么一個(gè)核心問(wèn)題展開(kāi)。它到底是怎么實(shí)現(xiàn)的,先重點(diǎn)說(shuō)說(shuō)賬號(hào)密碼體系,順便了解到什么是非對(duì)稱加密?
比特幣肯定也得有賬號(hào)密碼,不然沒(méi)法明確產(chǎn)權(quán)到底是誰(shuí)的,轉(zhuǎn)賬的時(shí)候跟銀行一樣輸入賬號(hào)密碼,轉(zhuǎn)給誰(shuí),轉(zhuǎn)多少。
說(shuō)到賬號(hào)密碼,過(guò)去我們見(jiàn)到的傳統(tǒng)模式大概都是這樣,比如你去某個(gè)網(wǎng)站注冊(cè)個(gè)賬號(hào),先選個(gè)賬戶名,系統(tǒng)判斷只要不重名就可以注冊(cè),然后設(shè)置密碼。以后每次登陸的時(shí)候,網(wǎng)站就判斷你輸入的和他們之前存儲(chǔ)的用戶數(shù)據(jù)能不能匹配。銀行等等這些,也是一樣的機(jī)制。這就是傳統(tǒng)的中心化方式,有個(gè)權(quán)威的第三方中心來(lái)管理用戶的賬號(hào)和密碼。
但是比特幣是去中心化網(wǎng)絡(luò),由網(wǎng)絡(luò)中的所有節(jié)點(diǎn)平等的共同維護(hù)整個(gè)系統(tǒng)。所以它并沒(méi)有一個(gè)類(lèi)似銀行的第三方權(quán)威,來(lái)去管理和核實(shí)這些。但是礦工在打包區(qū)塊的時(shí)候,它又得先確認(rèn)每一筆交易是不是一個(gè)有效賬號(hào)的主人所發(fā)起的。顯然你也不能把密碼發(fā)給礦工,因?yàn)樗麩o(wú)非就是個(gè)最近十分鐘解出了數(shù)學(xué)題的幸運(yùn)用戶,你給他的話,回頭錢(qián)就被他取走了。
所以在一個(gè)沒(méi)有中心權(quán)威的情況下,到底怎樣注冊(cè)賬號(hào),又怎樣讓大家在不知道你的密碼的情況下,還能知道你輸?shù)拿艽a是對(duì)的呢?
這就要說(shuō)到比特幣的非對(duì)稱加密機(jī)制,可以完美的解決上面說(shuō)的賬號(hào)和密碼的問(wèn)題。在理解非對(duì)稱加密之前,首先我們要了解下什么是對(duì)稱加密。對(duì)稱不對(duì)稱這兩個(gè)字有點(diǎn)抽象,其實(shí)可以簡(jiǎn)單理解成一個(gè)是單密碼,一個(gè)是雙密碼。
對(duì)稱加密就是平時(shí)常用的單密碼,加密和解密用的是同一個(gè)密碼,它很像暗號(hào),比如黃天蓋地虎,寶塔鎮(zhèn)河妖。像很多年輕人喜歡用疊詞,比如嗯,和嗯嗯就是不一樣的含義。雙方都知道暗號(hào)的規(guī)則,用的是同一個(gè)密碼解密,這個(gè)就叫對(duì)稱。
這種對(duì)稱加密最大的風(fēng)險(xiǎn),在于雙方都得知道密碼,所以在傳輸密碼或者密碼規(guī)則的時(shí)候就會(huì)有很大的泄漏風(fēng)險(xiǎn)。電影《模仿游戲》里面,演的就是當(dāng)年阿蘭圖靈發(fā)明計(jì)算機(jī),破解了德軍的密碼規(guī)則,從而讓二戰(zhàn)至少提前了兩年結(jié)束。
人類(lèi)歷史上幾千年以來(lái)基本上都在用著這種對(duì)稱加密方式,直到1977年,三個(gè)美國(guó)MIT的教授才發(fā)明了新的非對(duì)稱加密方式,叫做RSA,R、S、A分別是這三個(gè)人的名字的首字母。
怎么個(gè)非對(duì)稱呢,非對(duì)稱加密就是有兩個(gè)密碼,一個(gè)是不公開(kāi)的,叫私鑰,只有你自己保管;還有一個(gè)公開(kāi)了也沒(méi)關(guān)系的密碼,叫公鑰。他的機(jī)制是,私鑰加密的東西,不能用私鑰解密,而只能用公鑰解密。反過(guò)來(lái)也是,公鑰加密的東西,不能用公鑰解密,而只能用私鑰解密。每一個(gè)公鑰只有唯一的一個(gè)私鑰跟他對(duì)應(yīng),由標(biāo)準(zhǔn)公開(kāi)的加密算法自動(dòng)生成。實(shí)際情況是先用隨機(jī)程序生成私鑰,然后用私鑰生成公鑰,每一個(gè)私鑰都可以生成多個(gè)公鑰。
基于這種機(jī)制,比特幣就把那個(gè)公開(kāi)的密碼直接當(dāng)作了賬號(hào),通常也叫地址。所以非對(duì)稱加密你可以理解成,就是原本密碼是密碼,賬號(hào)是賬號(hào)?,F(xiàn)在呢,不但密碼是密碼,賬號(hào)也具備密碼的功能。
當(dāng)你發(fā)起轉(zhuǎn)賬的時(shí)候,你只要用私鑰加密一段信息,任何人拿到以后,都可以用你公開(kāi)的公鑰,去解密一下,看看解出來(lái)的是不是和你說(shuō)的一樣就行了。
舉個(gè)例子,為了證明我是某個(gè)公開(kāi)賬戶的所有者,我就用私鑰加密一段話,比如“比特幣就是數(shù)字黃金”這么一句話,我把這句話和加密后的那段亂碼兩個(gè)都發(fā)布出去,任何收到這個(gè)信息的人,不需要知道我的私鑰,他們就可以用公開(kāi)的賬戶,也就是公鑰,解密下那段亂碼,發(fā)現(xiàn)解出來(lái)的真的是“比特幣就是數(shù)字黃金”這句話,就可以相信我是這個(gè)賬戶的真正所有者。比特幣就是基于這么一種巧妙的密碼學(xué)原理,同時(shí)解決了賬號(hào)的建立和密碼的保密問(wèn)題。
這樣一套體系安不安全呢?
這個(gè)就要說(shuō)到非對(duì)稱加密背后的數(shù)學(xué)原理,那就是大數(shù)分解難題。
我們知道,有的數(shù)字可以被除了1和自己的兩個(gè)數(shù)字相乘得到,比如6可以分解為2*3,有些就不可以,比如3、5、7、11.,后面這種叫質(zhì)數(shù),關(guān)于質(zhì)數(shù)有很多著名的難題,隨便哪個(gè)如果能解決的話,都可以讓你永垂不朽,是的沒(méi)聽(tīng)錯(cuò),永垂不朽。
大數(shù)分解難題,指的就是給你一個(gè)超級(jí)大的數(shù)字,找不到捷徑把他拆成兩個(gè)質(zhì)數(shù)相乘。我們知道,計(jì)算機(jī)把兩個(gè)很大的數(shù)字相乘很容易,但是如果要把一個(gè)很大的數(shù)字反拆回來(lái)是極其困難的。比如把手機(jī)通訊錄里面隨便挑200個(gè)手機(jī)號(hào)碼連在一起成一個(gè)220位的數(shù)字,你想想如果要把它拆成兩個(gè)質(zhì)數(shù)相乘,除了窮舉一個(gè)個(gè)試沒(méi)有更好的辦法,而這個(gè)運(yùn)算量是及其巨大的。
非對(duì)稱加密,就是把兩個(gè)很大的幾百位的質(zhì)數(shù)相乘,然后把這個(gè)乘出來(lái)的結(jié)果當(dāng)作公鑰,公開(kāi)給大家,然后把那相乘的數(shù)字做一些加工變成私鑰。誰(shuí)也沒(méi)有辦法通過(guò)公鑰猜出私鑰,但是要驗(yàn)證是否匹配卻很容易。
其實(shí)如果允許一個(gè)個(gè)試上個(gè)幾百億年,也是可以試出來(lái)的,偶爾不小心撞上也是有可能的,但是概率低到好多個(gè)億分之一,那本質(zhì)上其實(shí)就已經(jīng)等于無(wú)解了。我們就認(rèn)定為是解不出來(lái)的,就像每天出門(mén)不會(huì)擔(dān)心突然被天上掉下的隕石砸死一樣。
有人可能會(huì)問(wèn),量子計(jì)算出來(lái)了會(huì)怎樣,量子可以同時(shí)存在不同的空間,可以支持并行計(jì)算,所以它可以幾秒種就解出這種數(shù)學(xué)難題。
那怎么辦?首先這東西還早著呢,其次就算實(shí)現(xiàn)了,也輪不到攻擊比特幣,為什么這么說(shuō)。因?yàn)槠鋵?shí)非對(duì)稱加密并不是比特幣首創(chuàng),目前全世界幾乎所有的金融和通信等重要的系統(tǒng)都在用非對(duì)稱加密。比如我們都知道蘋(píng)果是封閉系統(tǒng),只有蘋(píng)果審核通過(guò)的應(yīng)用才能安裝在蘋(píng)果手機(jī)上,那他是怎么做到的呢,就是通過(guò)非對(duì)稱加密,每個(gè)手機(jī)上已經(jīng)就有公鑰,蘋(píng)果保管那個(gè)私鑰,一個(gè)app只有被蘋(píng)果那個(gè)私鑰加密過(guò),才能被手機(jī)上的公鑰識(shí)別出來(lái)。包括網(wǎng)銀用的那個(gè)u盾,用的時(shí)候不是要安裝證書(shū)嗎,其實(shí)就是給你裝一個(gè)公鑰,這樣才能保證你發(fā)送的賬戶信息在發(fā)送過(guò)程中,即使被截獲也沒(méi)關(guān)系,因?yàn)橹挥秀y行服務(wù)器的私鑰才能解的出來(lái)。
如果量子計(jì)算出來(lái)的話,攻擊其他金融和通信系統(tǒng)的利益,那可比攻擊比特幣來(lái)得大的多了。況且,隨著量子計(jì)算的臨近,大家也會(huì)重新升級(jí)新的標(biāo)準(zhǔn)來(lái)適應(yīng)量子時(shí)代。
簡(jiǎn)單來(lái)說(shuō),非對(duì)稱加密它其實(shí)就是找到了一個(gè)除了窮舉就沒(méi)有更好辦法,而且解題代價(jià)極大的數(shù)學(xué)題作為密碼安全的基礎(chǔ)。
所以,可以放心大膽的把公鑰告訴所有人,當(dāng)你用私鑰發(fā)起一筆交易的時(shí)候,任何人都可以用你公開(kāi)的那個(gè)公鑰,去驗(yàn)證你私鑰加密的信息是否正確,從而證明你是不是發(fā)起這筆交易的合法主人。
在一個(gè)沒(méi)有中心權(quán)威機(jī)構(gòu)的情況下,怎樣建立賬號(hào),同時(shí)又要在不給任何人透露密碼的情況下,能夠證明某個(gè)賬號(hào)的歸屬權(quán)。因此采取了非對(duì)稱加密機(jī)制,對(duì)稱加密只有一個(gè)密碼,雙方都必須知道,所以傳輸?shù)臅r(shí)候容易泄漏。而非對(duì)稱加密有兩個(gè)密碼,一個(gè)是自己保管的叫私鑰,一個(gè)是公開(kāi)的叫公鑰,私鑰加密的信息只能用公鑰解密,公鑰加密的信息只能用唯一的私鑰解密。比特幣網(wǎng)絡(luò)將公鑰當(dāng)成賬號(hào)來(lái)使用,向所有人公開(kāi),礦工只要能夠用公鑰,正確解密私鑰加密的信息,就證明發(fā)起交易的人就是賬號(hào)的主人。
非對(duì)稱加密是基于大數(shù)分解困難這個(gè)難題建立的,其實(shí)比特幣用的并不是標(biāo)準(zhǔn)的rsa算法,而是橢圓曲線加密算法,這個(gè)講起來(lái)太復(fù)雜了,有興趣的可以自己去了解。本質(zhì)上跟rsa的原理一樣,他的基礎(chǔ)就是一道非常難解的數(shù)學(xué)難題。這個(gè)是比特幣網(wǎng)絡(luò)唯一用到的兩個(gè)數(shù)學(xué)原理之一。除了幾百億年的窮舉一個(gè)個(gè)嘗試,沒(méi)有更好的捷徑解出來(lái),所以可以認(rèn)為就是沒(méi)法破解。這種機(jī)制已經(jīng)廣泛應(yīng)用在各種重要的銀行、通信等等系統(tǒng)當(dāng)中,所以即使量子計(jì)算出現(xiàn),要攻擊也輪不到比特幣。所以不管從數(shù)學(xué)的角度還是從市場(chǎng)博弈的角度來(lái)講,比特幣的賬號(hào)密碼體系都是非常安全的。
免責(zé)聲明:凡注明為其它來(lái)源的信息均轉(zhuǎn)自其它平臺(tái),由網(wǎng)友自主投稿和發(fā)布、編輯整理上傳,對(duì)此類(lèi)作品本站僅提供交流平臺(tái),不為其版權(quán)負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。若有來(lái)源標(biāo)注錯(cuò)誤或侵犯了您的合法權(quán)益,請(qǐng)作者持權(quán)屬證明與本站聯(lián)系,我們將及時(shí)更正、刪除,謝謝。聯(lián)系郵箱:xiali@infoobs.com