如何通過硬分叉從突然到來的量子攻擊中解救用戶資金
假設量子計算機明天就能實現,且不法分子已通過某種方式獲取了它的訪問權限,並想要利用它來竊取用戶資金,我們該怎麼辦?
Winternitz signatures, zero-knowledge proof technology – STARKs 等抗量子(quantum-resistant)技術的開發正是為了防止這種情況的發生,讓任何用戶可以隨機切換至具備量子抗性的方案。
但如果我們沒有那麼多時間,如果量子攻擊的到來比所有人設想的都更加突然,我們該怎麼辦?
我 (Vitalik Buterin) 認為,實際上我們目前已具備通過相對簡單的恢復性分叉(recovery fork)來解決該問題的能力。通過該方案,以太坊網絡將不得不進行硬分叉,雖然用戶需要下載新的錢包軟件,但如此一來,便只有少數用戶可能會在未來的攻擊中丟失他們的資金。
量子攻擊的主要威脅如下:以太坊地址是通過運算 keccak(priv_to_pub(k))[ 12:] 函數得出的,其中 k 對應的是私鑰,priv_to_pub 對應的是一個橢圓曲線乘法,用於將私鑰轉換為公鑰。
當量子計算實現後,上述橢圓曲線乘法將變得可逆(因為這其實就是離散對數問題的求解),不過哈希運算依舊是安全的。如果用戶沒有過進行任何交易,那麼被公開的只有地址信息,這種情況下它們依舊會是安全的;但是只要用戶曾進行過哪怕一次交易,交易簽名就會暴露出公鑰,這在量子計算機的面前就存在暴露私鑰的可能性。所以在這種情況下,大多數用戶將會面臨風險。
我們其實有辦法緩解這一威脅,其中的關鍵在於實踐大多數用戶的私鑰通過一係列哈希運算產生。比如許多私鑰是使用 BIP-32 規範而生成的,它是根據一組助記詞,通過一連串哈希運算而生成;很多非 BIP-32 的私鑰生成方法也差不多類似,如果用戶使用的是腦錢包,它通常也是由某個密碼經過了一係列哈希運算(或者是中等難度的密鑰派生函數)而生成。
這意味著,通過恢復性分叉來應對突發量子攻擊的解決方案將采取以下步驟:
1. 禁用基於 EOA 地址的傳統交易模式
2. 添加新的交易類型,通過智能合約錢包進行交易( RIP-7560)
3. 添加新的交易類型或操作碼,通過它用戶可提供 STARK 證明,如果證明通過,用戶地址的代碼將切換至全新的已驗證代碼,之後用戶可以將新代碼地址作為智能合約錢包使用
原則上,明天我們就可以開始對實現此恢復性分叉所需的基礎設施進行開發,從而使以太坊生態系統能夠在突發的量子攻擊中做好準備。
- 太坊創始人 Vitalik Buterin