為什麼哈希公鑰不能抵禦量子計算威脅?

為什麼哈希公鑰不能抵禦量子計算威脅?

為什麼哈希公鑰不能抵禦量子計算威脅?

原文 | 《Why does hashing public keys not actually provide any quantum resistance?》

編譯 | 哈希派 - Adeline

文章字數:2000字左右

閱讀時間:約3分鐘

比特幣系統中的私鑰由隨機生成器生成,再通過橢圓曲線算法(橢圓曲線的離散對數問題)、哈希函數等等單向、不可逆算法推導出公鑰以及地址。所以從理論上來說哈希公鑰是可以抵禦量子算力威脅的就算將地址和公鑰公開在網絡上,也無法借其推導出私鑰,擁有私鑰就等於擁有比特幣的所有權。

为什么哈希公钥不能抵御量子计算威胁?

公鑰、私鑰與地址的關係

實際上,加密資產只在未交易前受到哈希函數的保護,因為在使用P2PKH或P2WPKH交易標準(使用公鑰和公鑰哈希作為腳本)進行交易輸出加密貨幣時,公鑰會因此而暴露。

而在後量子(PQ)時代,我們廣泛使用的基於離散對數的公鑰密碼系統被認為是會被破解的。量子裝置能夠一次處理一個數據集的所有可能的2^n變種的函數,基於此,以量子計算為基礎的Shor算法可以很容易地在多項式時間內分解大整數因子。

也就是說,當你把一筆交易廣播到網絡上,並且它還沒有被區塊鏈所接受,那麼這些交易就很容易受到攻擊。這個攻擊的窗口機會是有限的,但理論上還是可能的,如果QC(quantum computer/量子計算機)的處理能力已經足夠強大,那麼使用QC的黑客就可以根據暴露的公鑰,在交易被合法執行之前暴力破解出私鑰,然後用其簽名創建一個衝突的交易,將這筆交易中的加密貨幣發送到他們自己的地址。

更可怕的是,如果這個黑客本身就是礦工,那麼除了根據公鑰計算私鑰以盜取加密貨幣外,他們同時可以拒絕確認那些不將加密貨幣發送給他們的交易。

這無疑是令人擔憂的情況,但人們同時又自我安慰地認為:公鑰只有參與了交易之後(加密貨幣被花費後)才會被暴露給賬本,這種情況只發生在極少數賬戶。

而事實上這個數字不容小覷:有超過550萬個的比特幣在公鑰暴露的情況下正在進行交易輸出。這些公鑰中,有的是因為使用了P2PK地址進行交易輸出,有的是因為用戶重複使用一個地址,公鑰在之前的交易被簽名時公開。

在這個數字基礎上,我們可以想象一下:如果量子計算機強大的計算能力突破了互聯網的安全防護,能夠在交易被確認前利用已暴露的公鑰計算出私鑰,那麼黑客就能盜取這些數量驚人的比特幣,甚至於摧毀比特幣經濟,讓它變得一文不值。

不僅僅是區塊鏈,加密貨幣工具和錢包同樣存在公鑰暴露的問題。在目前的加密貨幣工具和錢包中,沒有哪個軟件將公鑰視為私密信息,大多數人並沒有意識到量子計算將給比特幣造成怎樣的影響。

許多錢包的做法是將父擴展公鑰發送到服務器,以便服務器監控交易,並能夠將數據發送回客戶端。所有使用這些錢包的人(即使只是暫時性使用),錢包也會向服務器發送他們的父密鑰。服務提供商就有可能根據這些公鑰來計算私鑰,衍生出其他所有的子私鑰。私鑰的洩露讓使用過這些錢包的人的加密貨幣資產變得不再安全,隨時有被竊取的風險。

为什么哈希公钥不能抵御量子计算威胁?

比特幣的擴展公鑰

公鑰的複雜腳本和合約也存在問題。

使用腳本實現可編程交易的一個典型例子就是多重簽名技術Multisigs,這些腳本是不對公鑰進行哈希加密的。而合約中,不是所有的合約參與方都必須相互信任,這意味著其中一個參與方可以是惡意的。一旦有惡意參與者出現,他可以獲取合約中所有涉及到的公鑰(通過腳本),從而竊取與這些公鑰有關的加密貨幣。現有的公鑰哈希並不能對此進行保護。

總而言之,除了交易之外,仍有非常多種方式讓公鑰暴露,我們可能只是因為使用了錢包,就造成了公鑰的暴露。

量子計算機對橢圓曲線離散對數問題(ECDLP)的威脅,可能會促使加密社區向後量子密碼學過渡,我們目前所有運用公鑰加密的系統需要改成能夠應對量子攻擊的密碼系統。

如果量子計算發展緩慢,加密系統有時間轉換到更強的函數上,並對所有的資產重新簽名。但如果橢圓密碼曲線突然被破解,系統無法及時檢測,那麼可以將所有依賴ECDLP簽名算法(ECDSA和Schnorr)的簽名進行軟分割,從而鎖定所有加密貨幣。用戶可以根據公鑰,通過提供非暴露或具有量子阻抗的零知識證明來聲明私鑰的所有權。

比方說,用戶可以通過他們擁有的BIP32種子來證明自己的所有權。

为什么哈希公钥不能抵御量子计算威胁?

通過BIP0032標準定義的HD錢包

BIP32種子是分層確定性錢包所遵循的標準,它是從單一種子(seed)產生一樹狀結構儲存多組keypairs(私鑰和公鑰)的系統,我們只需要保存一個種子就可以推導出其他所有的子密鑰。由於零知識證明的特性,種子本身不會暴露(種子不是公鑰、私鑰中的一部分,它們不存在共享的公共組件)。目前來說,這種方式是相對安全的。

因此,儘管哈希算法的單向秘密機制使加密過程不可逆,但由於公鑰的暴露,當量子計算能力足夠強時,數百萬比特幣將被盜取,哈希只能提供一種虛假的安全感,現有的解決方案無法應對即將到來的威脅。

當然,這一切都建立在我們假設“量子計算機的算力足夠強大,能夠通過公鑰計算出私鑰,而我們並沒有意識到這項技術的強大,沒能及時升級對應系統”的前提下。

而實際上,量子計算機的每一步進展都在“眾目睽睽之下”,在量子計算機強大到足以打破橢圓曲線上的離散對數問題ECDLP之前,比特幣有足夠的時間進行抗量子的簽名算法軟分叉,最終,依賴ECDLP的簽名將被取代。


分享到:


相關文章: