比特幣等加密資產(chǎn)會不會輕易被量子計算機破解
幾乎每隔一段時間,便會傳出量子計算機的“突破性進(jìn)展”。進(jìn)而引起業(yè)內(nèi)部分用戶的恐慌:量子計算機的出現(xiàn)會破解比特幣的加密算法,加密世界即將崩塌。
這不,最近美國公司霍尼韋爾官方宣布在量子計算領(lǐng)域取得突破性進(jìn)展,將提升量子計算機的性能。并且,霍尼韋爾還聲稱將在未來三個月發(fā)布全球最強大的量子計算機。
這引起了不少加密資產(chǎn)持有者的擔(dān)心,擔(dān)心比特幣等加密資產(chǎn)是否還安全,會不會輕易被量子計算機破解?
這里先說結(jié)論:至少目前階段大家不需要擔(dān)心,即便將來通用的量子計算機大規(guī)模出現(xiàn),比特幣也不一定會被“殺死”。
接下去,我們說說相關(guān)的原因。
比特幣用到的加密算法主要有 2 種:橢圓曲線數(shù)字簽名算法(ECDSA),SHA256 哈希算法。其中,ECDSA 主要用于私鑰、公鑰的生成;SHA256 主要用于公鑰生成錢包地址,以及挖礦時的工作量證明(PoW)。
量子計算機會威脅到 ECDSA 的安全性。1994 年,設(shè)計出了專門用來分解因數(shù)的 Shor 算法,足夠強的量子計算機(硬件)加上 Shor 算法(軟件),可以通過公鑰破解出私鑰。
當(dāng)然,量子計算機的這個破解過程也需要花費比較長的一段時間,況且量子計算機的發(fā)展也不是一帆風(fēng)順,剛開始的性能也沒那么強大。
即便量子計算機足夠強大了,也有辦法保護自己的比特幣安全:每次只使用一次性比特幣地址。
這要感謝中本聰當(dāng)初在設(shè)計比特幣的時候,沒有直接將公鑰當(dāng)作比特幣的收款地址。比特幣的公鑰和對應(yīng)的地址之間,做了 SHA256 加密,而目前并沒有可以有效破解 SHA256 的算法。
舉個例子,如果大白需要給小黑轉(zhuǎn) 1BTC,大白的錢包地址里有 3BTC,只要在轉(zhuǎn)賬的時候,將比特幣的找零地址設(shè)為一個自己掌握私鑰的、全新的比特幣地址即可。這樣,轉(zhuǎn)賬的時候,1BTC 進(jìn)入到小黑的地址,找零的 2BTC 進(jìn)入到了大白的新地址。關(guān)于比特幣的找零機制和 UTXO 模型,可以閱讀白話區(qū)塊鏈之前的推文《沒有UTXO,比特幣或不能如此穩(wěn)定運行10年》。
在區(qū)塊鏈瀏覽器上查詢這筆交易時,可以看到大白轉(zhuǎn)出的地址和對應(yīng)公鑰,小黑的地址,找零的新地址。由于轉(zhuǎn)出地址用完即廢棄,里面沒有任何 BTC,所以即使看到了公鑰,用量子計算機破解出了私鑰也沒關(guān)系。
至于暴露的小黑收款地址和找零的新地址,由于量子計算機缺乏有效破解 SHA256 的算法,無法通過地址破解出公鑰,所以是安全的。
那量子計算機會不會對比特幣的挖礦產(chǎn)生影響呢?
現(xiàn)在的計算機符合“摩爾定律”,即計算機芯片的晶體管密度每 18 個月翻一番,算力增長一倍。但是近年來,晶體管的尺寸逐漸逼近物理極限,計算機算力的指數(shù)級增長在放緩,摩爾定律逐漸失效中。量子計算機厲害的地方在于,它是以雙指數(shù)的速度增長,即算力的增長指數(shù)也是指數(shù)級增長。這讓傳統(tǒng)計算機需要幾萬年的計算量,量子計算機可以在短時間內(nèi)完成。
但是,量子計算機做到的只是大幅削減計算時間,它還是要花時間計算的。
前文我們提到,目前并沒有可以有效破解 SHA256 的算法,所以利用量子計算機挖比特幣時,也只能和其他礦機一樣,一個一個地找隨機數(shù)去試,只不過是量子計算機運算速度更快而已。比特幣有難度調(diào)整機制,可以通過調(diào)整難度對抗來自量子計算機的算力增長,還可以通過升級 SHA256 算法(比如升級到 SHA384、SHA512),來增加挖礦難度。
需要注意的是,以上的討論都是建立在“量子計算機已經(jīng)非常成熟了,而且還價格低廉”的前提假設(shè)。
現(xiàn)實的情況是,量子計算機還處于實驗室階段。目前量子計算機只能進(jìn)行單一的、技術(shù)性很強的計算,使用它解決實際問題還需要數(shù)年時間。截至目前,還沒有一個通用的量子計算機出現(xiàn),可靠的專用量子計算機也還沒有問世。
魔高一尺,道高一丈,量子計算機在向前發(fā)展的同時,加密算法亦會持續(xù)進(jìn)步。
在「得到」的《卓克·密碼學(xué) 30 講》中,著名科普作者卓克就提到了對抗量子計算機的第七代加密法——量子加密。
量子加密和其他加密法不同,不但使用了數(shù)學(xué),還使用了物理中的量子理論。量子計算機也很有可能無法破解,因為如果破解了,就違反了量子力學(xué)的基本原理。