量子計(jì)算機(jī)對比特幣有沒有影響
近期,谷歌近日谷歌高調(diào)宣布了成功演示“量子霸權(quán)”,一個包含53個有效量子比特的處理器“西克莫”,用200秒完成傳統(tǒng)超級計(jì)算機(jī)Summit需1萬年解決的問題,著實(shí)讓人驚嘆??墒?,“量子霸權(quán)”還沒有捂熱,競爭對手IBM就出來“打假”,IBM宣稱自家研制的一種超級計(jì)算機(jī)在兩天半內(nèi)就能完成谷歌所展示的運(yùn)算量。用自家的兩天半打人家的200秒,有點(diǎn)類似于隔壁鄰居搞了個吸塵器,你沖出去揮舞雞毛撣子說“我家這個也能用”,這個“假”打得有點(diǎn)尬。那么這個量子計(jì)算機(jī)到底是什么呢?
一、量子計(jì)算機(jī)
量子計(jì)算機(jī)是科學(xué)家對通用計(jì)算機(jī)(半導(dǎo)體計(jì)算機(jī))計(jì)算能力極限進(jìn)行探索的產(chǎn)物,也就是說其天生就被設(shè)計(jì)為超越現(xiàn)代計(jì)算機(jī),用于解決普通計(jì)算機(jī)無法勝任的計(jì)算難題,比如人工智能,量子模擬(宇宙模擬) 以及解決/優(yōu)化數(shù)學(xué)難題等前沿領(lǐng)域。
量子計(jì)算機(jī),就好比是計(jì)算機(jī)界中的超級英雄。其基于量子力學(xué)原理的算法設(shè)計(jì)允許它比普通計(jì)算機(jī)多出數(shù)個量級的計(jì)算能力(算力)。一臺50量子比特的量子計(jì)算機(jī)只需數(shù)秒即可解開普通電腦需要花上幾十年才能解開的問題。
二、比特幣
比特幣(Bitcoin)是通過密碼保護(hù)的分散數(shù)字貨幣,比特幣系統(tǒng)也已經(jīng)被證明是極其成功和安全的系統(tǒng),它的誕生推動了其后目前價值 1500 億元的其他加密貨幣和區(qū)塊鏈技術(shù)的發(fā)展。
獨(dú)立性是比特幣如此受歡迎的原因之一。比特幣免于政府干預(yù),由一個開放的 p2p 網(wǎng)絡(luò)運(yùn)營。不依賴特定的貨幣發(fā)行機(jī)構(gòu),而是根據(jù)特定的算法通過大量計(jì)算產(chǎn)生,其總數(shù)非常有限,因此也具有很強(qiáng)的稀缺性。
比特幣的一個重要特征是它的安全性。比特幣有兩個重要的安全特性,以防止它們被偷竊或抄襲。兩個特性都建立在難以破解的密碼協(xié)議的基礎(chǔ)上。
但根據(jù)戴夫士·加沃爾團(tuán)隊(duì)的研究,量子計(jì)算機(jī)能輕易地解決這些問題。而且,全球各大科技巨頭已經(jīng)在緊鑼密鼓地研發(fā)第一批量子計(jì)算機(jī)了。
具體而言,上文提到的比特幣的兩個重要安全特性,分別來自于其協(xié)議中的兩個特征 PoW(proof-of-work,工作量證明)和加密簽名的不對稱性上。所謂不對稱性,指的是運(yùn)算可以從一個方向容易地進(jìn)行,卻難以從另一個方向進(jìn)行。
工作量證明的目的是不讓一方單獨(dú)操縱區(qū)塊鏈,以造成雙重花費(fèi)。工作量證明的基本原理就是客戶端需要做出一定難度的工作得出一個結(jié)果,而驗(yàn)證方卻可以很容易地通過結(jié)果來檢查客戶端是不是真的做了相應(yīng)的工作。它的核心正是不對稱性:相比于請求方完成工作的難度,驗(yàn)證方驗(yàn)證的難度小得多。目前,比特幣系統(tǒng)使用的工作證明函數(shù)是由 Adam Back 發(fā)明的 Hashcash(哈?,F(xiàn)金)。
在比特幣系統(tǒng)中,礦工將未處理的交易捆綁到一個塊中,并通過做 PoW 任務(wù)獲得一定比特幣的獎勵。而處在比特幣網(wǎng)絡(luò)中任何一個節(jié)點(diǎn),如果想生成一個新的區(qū)塊并寫入?yún)^(qū)塊鏈,必須先解出比特幣網(wǎng)絡(luò)出的工作量證明的問題。
驗(yàn)證區(qū)塊聲明的頭文件滿足 PoW 條件則非常簡單,它只需要對 Hash(散列)函數(shù)進(jìn)行一次評估。而完成工作量證明則沒有那么容易。比特幣系統(tǒng)中使用的工作量證明函是 SHA256。也就是說,這個哈希函數(shù)有 2^256 種輸出。
至于第二特征——加密簽名,則是用來授權(quán)交易。在一個交易被廣播但是加入到區(qū)塊鏈中之前是最容易被攻擊的。如果在此時可以通過廣播的公鑰破解出密鑰,就可以利用這個密鑰從原地址廣播一個新的交易給自己的地址,并讓這一交易先進(jìn)入?yún)^(qū)塊鏈之中,就可以取走原地址中所有的比特幣。目前比特幣使用橢圓曲線數(shù)字簽名算法(ECDSA),利用 secp256k1 生成密鑰。
如果可以在特定的時間內(nèi)完成對以上兩個問題的破解,也就攻破了比特幣的安全系統(tǒng)。對于當(dāng)前計(jì)算的計(jì)算能力來說,這是不可能的,但對于遠(yuǎn)遠(yuǎn)超過普通計(jì)算機(jī)計(jì)算能力的量子計(jì)算機(jī)而言卻完全不在話下。
三、為什么說量子計(jì)算機(jī)會造成比特幣消失?
在量子計(jì)算威脅區(qū)塊鏈的相關(guān)論述中,持有此觀點(diǎn)的一方給出的論據(jù)主要包括兩點(diǎn):一是量子計(jì)算會威脅比特幣的安全協(xié)議;二是算力更大的量子計(jì)算機(jī)能壟斷“挖礦”。
誕生于2009年的比特幣是區(qū)塊鏈技術(shù)最著名的應(yīng)用。比特幣的安全協(xié)議涉及兩種類型的密碼學(xué),即挖掘過程中使用的散列函數(shù)和用于在區(qū)塊鏈上提供數(shù)字簽名的非對稱密碼術(shù)。
在“擊破論”支持者看來,量子計(jì)算機(jī)可能會對這兩道安全防線產(chǎn)生巨大威脅。未來,量子計(jì)算機(jī)能很快破解哈希函數(shù),從而壟斷整個區(qū)塊鏈,讓比特幣的安全協(xié)議“作廢”。
“挖礦”是指利用芯片的計(jì)算能力,在比特幣全球網(wǎng)絡(luò)中不斷進(jìn)行哈希運(yùn)算,比對手更快地求解,找出符合特定要求的隨機(jī)數(shù),以此贏得在公開賬簿上的記賬權(quán),從而獲得系統(tǒng)獎勵的比特幣。本質(zhì)上,“挖礦”是個數(shù)學(xué)問題。
比特幣常說的“51%攻擊”就是指在區(qū)塊鏈中,如果一個礦工組擁有整個網(wǎng)絡(luò)51%的算力,他們就會永遠(yuǎn)比其他擁有49%算力的礦工組更快地處理區(qū)塊。也就是說,他們將壟斷整個區(qū)塊鏈,得到之后產(chǎn)生的所有比特幣。
針對量子計(jì)算機(jī)威脅“挖礦”的問題,來自新加坡國立大學(xué)的戴夫士·阿加沃爾和該校研究人員在2017年10月發(fā)表了相關(guān)論文。他們認(rèn)為,至少在未來十年內(nèi),ASIC礦機(jī)(使用ASIC芯片作為算力核心的礦機(jī))的“挖礦”速度會比量子計(jì)算機(jī)快,但十年后量子計(jì)算機(jī)的“挖礦”速度將大幅提升。
四、量子計(jì)算機(jī)無法造成比特幣消失的原因
比特幣用到的加密算法主要有2種:橢圓曲線數(shù)字簽名算法(ECDSA),SHA256 哈希算法。其中,ECDSA 主要用于私鑰、公鑰的生成;SHA256 主要用于公鑰生成錢包地址,以及挖礦時的工作量證明(PoW)。
量子計(jì)算機(jī)會威脅到 ECDSA 的安全性。1994 年,設(shè)計(jì)出了專門用來分解因數(shù)的 Shor 算法,足夠強(qiáng)的量子計(jì)算機(jī)(硬件)加上 Shor 算法(軟件),可以通過公鑰破解出私鑰。
當(dāng)然,量子計(jì)算機(jī)的這個破解過程也需要花費(fèi)比較長的一段時間,況且量子計(jì)算機(jī)的發(fā)展也不是一帆風(fēng)順,剛開始的性能也沒那么強(qiáng)大。
即便量子計(jì)算機(jī)足夠強(qiáng)大了,也有辦法保護(hù)自己的比特幣安全:每次只使用一次性比特幣地址。
這要感謝中本聰當(dāng)初在設(shè)計(jì)比特幣的時候,沒有直接將公鑰當(dāng)作比特幣的收款地址。比特幣的公鑰和對應(yīng)的地址之間,做了 SHA256 加密,而目前并沒有可以有效破解 SHA256 的算法。
舉個例子,如果大白需要給小黑轉(zhuǎn) 1BTC,大白的錢包地址里有 3BTC,只要在轉(zhuǎn)賬的時候,將比特幣的找零地址設(shè)為一個自己掌握私鑰的、全新的比特幣地址即可。這樣,轉(zhuǎn)賬的時候,1BTC 進(jìn)入到小黑的地址,找零的 2BTC 進(jìn)入到了大白的新地址。關(guān)于比特幣的找零機(jī)制和 UTXO 模型,可以閱讀白話區(qū)塊鏈之前的推文《沒有UXTO,比特幣或不能如此穩(wěn)定運(yùn)行10年》。
在區(qū)塊鏈瀏覽器上查詢這筆交易時,可以看到大白轉(zhuǎn)出的地址和對應(yīng)公鑰,小黑的地址,找零的新地址。由于轉(zhuǎn)出地址用完即廢棄,里面沒有任何 BTC,所以即使看到了公鑰,用量子計(jì)算機(jī)破解出了私鑰也沒關(guān)系。
至于暴露的小黑收款地址和找零的新地址,由于量子計(jì)算機(jī)缺乏有效破解 SHA256 的算法,無法通過地址破解出公鑰,所以是安全的?,F(xiàn)在的計(jì)算機(jī)符合“摩爾定律”,即計(jì)算機(jī)芯片的晶體管密度每 18 個月翻一番,算力增長一倍。
但是近年來,晶體管的尺寸逐漸逼近物理極限,計(jì)算機(jī)算力的指數(shù)級增長在放緩,摩爾定律逐漸失效中。量子計(jì)算機(jī)厲害的地方在于,它是以雙指數(shù)的速度增長,即算力的增長指數(shù)也是指數(shù)級增長。這讓傳統(tǒng)計(jì)算機(jī)需要幾萬年的計(jì)算量,量子計(jì)算機(jī)可以在短時間內(nèi)完成,這個我們可以在外匯經(jīng)濟(jì)商活動http://www.fx61.com/activiTIes中了解到。但是,量子計(jì)算機(jī)做到的只是大幅削減計(jì)算時間,它還是要花時間計(jì)算的。前文我們提到,目前并沒有可以有效破解 SHA256 的算法,所以利用量子計(jì)算機(jī)挖比特幣時,也只能和其他礦機(jī)一樣,一個一個地找隨機(jī)數(shù)去試,只不過是量子計(jì)算機(jī)運(yùn)算速度更快而已。比特幣有難度調(diào)整機(jī)制,可以通過調(diào)整難度對抗來自量子計(jì)算機(jī)的算力增長,還可以通過升級 SHA256 算法(比如升級到 SHA384、SHA512),來增加挖礦難度。
需要注意的是,以上的討論都是建立在“量子計(jì)算機(jī)已經(jīng)非常成熟了,而且還價格低廉”的前提假設(shè)。
現(xiàn)實(shí)的情況是,量子計(jì)算機(jī)還處于實(shí)驗(yàn)室階段。谷歌研究人員也表示,谷歌的量子計(jì)算機(jī)只能進(jìn)行單一的、技術(shù)性很強(qiáng)的計(jì)算,使用它解決實(shí)際問題還需要數(shù)年時間。截至目前,還沒有一個通用的量子計(jì)算機(jī)出現(xiàn),可靠的專用量子計(jì)算機(jī)也還沒有問世。
魔高一尺,道高一丈,量子計(jì)算機(jī)在向前發(fā)展的同時,加密算法亦會持續(xù)進(jìn)步。