本週稍早,Google 的量子 AI 團隊表示,未來的量子電腦可能只需大約九分鐘,就能從公鑰推導出比特幣的私鑰。這個數字在社群媒體上迅速引爆,並嚇壞了市場。
但,這在實際上到底意味著什麼?
讓我們先從比特幣交易如何運作開始。當你送出比特幣時,你的錢包會使用私鑰對交易進行簽名;私鑰是一個祕密數字,用來證明你擁有那些幣。
這個簽名也會揭露你的公鑰,也就是一個可分享的位址;它會被廣播到網路,並在一個叫做 mempool 的等待區中停留,直到礦工把它納入某個區塊。平均而言,這個確認大約需要 10 分鐘。
你的私鑰與公鑰之間由一個叫做橢圓曲線離散對數問題的數學問題連結。傳統電腦無法在任何可用的時間範圍內反向解出這個數學問題;而一台足夠強大的未來量子電腦,只要執行一種叫做 Shor’s 的演算法,就可以做到。
接下來就到了「九分鐘」的部分。Google 的論文指出,量子電腦可以透過先行預計算,將攻擊中不依賴任何特定公鑰的部分提前「預備好」。
一旦你的公鑰出現在 mempool 裡,這台機器只需要約九分鐘就能完成工作並推導出你的私鑰。比特幣的平均確認時間是 10 分鐘。這讓攻擊者有大約 41% 的機率,在原始交易完成確認之前推導出你的金鑰,並將資金導回他們那邊。
把它想成:小偷花上好幾個小時打造一台通用的開鎖/破鎖機器(預先準備)。這台機器適用於任何保險箱,但每當出現一個新的保險箱,它只需要做幾個最後的調整——而那最後一步才需要大約九分鐘。
這就是 mempool 攻擊。它令人警覺,但前提是需要一台尚不存在的量子電腦。Google 的論文估計,這樣的機器所需的物理量子位元(physical qubits)會少於 500,000。如今規模最大的量子處理器大約只有 1,000。
更大、也更迫切的疑慮是:已經有 6.9 百萬個比特幣(約佔總供應量的三分之一)存放在錢包中,而這些錢包的公鑰已被永久暴露。
這包括網路早期最初幾年的比特幣位址;這些位址使用了一種名為 pay-to-public-key 的格式,在這種格式下,公鑰預設會在區塊鏈上可見。它也包括任何重複使用過位址的錢包,因為從某個位址支出會揭露所有剩餘資金所對應的公鑰。
這些幣不需要那場九分鐘的競賽。只要攻擊者擁有足夠強大的量子電腦,就能慢慢地破解:逐一處理那些已暴露的金鑰,不受時間壓力所限。
正如 CoinDesk 在週二稍早報導所說,比特幣的 2021 Taproot 升級讓情況變得更糟。Taproot 改變了位址的運作方式,使得公鑰預設會在鏈上可見,這無意間擴大了那些在未來量子攻擊中會變得脆弱的錢包範圍。
比特幣網路本身仍會持續運作。挖礦使用的是另一種叫做 SHA-256 的演算法,而現今的做法下,量子電腦無法在意義上大幅加速它。區塊依然會被產出。
分類帳仍會存在。但若能從公鑰推導出私鑰,那些讓比特幣具備價值的所有權保證就會崩解。任何持有已暴露金鑰的人都面臨被竊取的風險,而機構先前對這套網路安全模型的信任也會土崩瓦解。
解決方案是後量子密碼學(post-quantum cryptography):它用量子電腦無法破解的演算法,取代那些脆弱的數學運算。以太坊已花了 8 年時間朝向這次遷移努力;比特幣甚至還沒有開始。
相關文章