作者:Vitalik Buterin

譯者:Odaily 星球日報Azuma

3 月9 日,以太坊聯合創始人Vitalik Buterin 於以太坊研究論壇(ethresear.ch)以《如何透過硬分叉從突然到來的量子攻擊中解救用戶資金》為題發布了一篇短文。

文中,Vitalik 概述瞭如果量子攻擊明天就會到來,以太坊如何在緊急情況下盡量減少用戶資金損失,又應該通過哪些程序來轉向抗量子形態,繼而恢復正常運作。

Vitalik:量子攻擊如果明天就來,以太坊要如何破局?

以下為Vitalik 全文內容,由Odaily 星球日報編譯。

假設量子電腦明天就能實現,且不法分子已透過某種方式取得了它的存取權限,並想要利用它來竊取用戶資金,我們該怎麼辦?

諸如Winternitz 簽名、STARKs 等抗量子(quantum-resistant)技術的開發正是為了防止這種情況的發生,一旦帳戶抽象化準備就緒,任何用戶都可以隨機切換至具備量子抗性的簽名方案。但如果我們沒有那麼多時間,如果量子攻擊的到來比所有人設想的都更突然,我們該怎麼辦?

我認為,實際上我們目前已經具備了透過一個相對簡單的恢復性分叉(recovery fork)來解決該問題的充足條件。透過該解決方案,以太坊網路將不得不進行硬分叉,用戶也將不得不下載新的錢包軟體,但只有少數用戶可能會失去他們的資金。

量子攻擊的主要威脅如下。以太坊地址是透過運算keccak(priv_to_pub(k))[12:] 而函數得出的,其中k 對應的是私鑰,priv_to_pub 對應的是一個橢圓曲線乘法,用於將私鑰轉換為公鑰。

當量子計算實現後,上述橢圓曲線乘法就會變得可逆(因為這其實就是離散對數問題的求解),不過哈希運算依舊是安全的。如果用戶沒有過進行任何交易,那麼被公開的只有地址信息,這種情況下他們依舊會是安全的;但是只要用戶曾進行過哪怕一次交易,交易簽名就會暴露出公鑰,這在量子計算機的面前就存在著暴露私鑰的可能性。所以在這種情況下,大多數用戶將會面臨風險。

但我們其實有辦法緩解這項威脅,這其中的關鍵點在於,實務上大多數使用者的私鑰都是透過一系列哈希運算產生的。例如許多私鑰是使用BIP-32規範而產生的,它是根據一組助記詞,透過一連串哈希運算而產生;許多非BIP-32的私鑰產生方法也差不多類似,例如如果使用者使用的是腦錢包,它通常也是由某個密碼經過了一系列雜湊運算(或是中等難度的金鑰派生函數)而產生。

這意味著,透過恢復性分叉來應對突發量子攻擊的解決方案將採取以下步驟:

第一,將大規模攻擊發生後的所有區塊回溯;

第二,禁用基於EOA 位址的傳統交易模式;

第三,(如果那時還沒落地的話)增加一種新的交易類型來允許透過智慧合約錢包(例如RIP-7560中的部分內容)進行交易;

第四,增加新的交易類型或操作碼,透過它用戶可提供STARK 證明,如果證明通過,用戶地址的代碼將切切換至全新的已驗證代碼,之後用戶可以將新代碼地址作為智能合約錢包使用。

第五,出於節省Gas 考慮,由於STARK 證明的數據量較大,我們將支援批量STARK 證明,以同時進行多筆上述類型的STARK 證明。

原則上,明天我們就可以開始對實現此恢復性分叉所需的基礎設施進行開發,從而使以太坊生態系統能夠在突發的量子攻擊中做好準備。