帳戶抽象是長線答案,但如果攻擊比預想中來得更早,我們該怎麼辦?
- 原文作者:Vitalik Buterin
- 譯者:Odaily 星球日報 Azuma
3 月 9 日,以太坊聯合創始人 Vitalik Buterin 於以太坊研究論壇(ethresear.ch)以《如何通過硬分叉從突然到來的量子攻擊中解救用戶資金》為題發布了一篇短文。
文中,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 證明。
原則上,明天我們就可以開始對實現此恢復性分叉所需的基礎設施進行開發,從而使以太坊生態系統能夠在突發的量子攻擊中做好準備。
歡迎加入Odaily官方社群
Telegram訂閱群:https://t.me/Odaily_News
Telegram交流群:https://t.me/Odaily_CryptoPunk
Twitter官方帳號:https://twitter.com/OdailyChina