感謝 Nicolas Bacca、V神、Nicolas Consigny、Renaud Dubois、Simon Masson、Dror Tirosh、Yoav Weiss 和 Zhenfei Zhang 的富有成果的討論。
這是我們探討在以太坊實施後量子簽名方案可行性的系列文章的第3部分。在第1部分中,我們討論了將以太坊轉向抗量子未來所涉及的基本挑戰和考慮因素。在第2部分中,我們深入探討了 Falcon,分析了它的優勢、弱點以及將其整合到以太坊交易框架中的實際障礙。在本期中,我們在此基礎上探討了如何利用賬戶抽象(AA)將 Falcon 整合到以太坊中。我們將檢查所需的架構變更、使用 AA 實現後量子安全的好處,以及使這種方法可行的潛在挑戰。
你說的是 ERC-4337 嗎?
在討論賬戶抽象(AA)時,自然會想到ERC-4337,因為它目前是在以太坊上實現 AA 最突出和最廣泛採用的方法。ERC-4337 提供了一種在不需要對以太坊協議進行更改的情況下實現智慧合約錢包的方法,這使其成為整合像 Falcon 這樣的後量子簽名方案的強有力候選。
特別是,我們可以從SimpleWallet智慧合約或利用RIP-7212的智慧合約中獲得靈感,探索如何在 ERC-4337 框架內有效地整合 Falcon。
SimpleWallet
SimpleWallet是一個基於智慧合約的錢包,旨在在以太坊上實現賬戶抽象。與使用傳統私鑰進行交易不同,SimpleWallet 智慧合約允許更大的靈活性,透過啟用自定義驗證邏輯,並可能支援新的加密簽名方案,如Falcon。例如,在後量子以太坊的背景下,SimpleWallet可以被改編為使用Falcon 簽名,從而允許更靈活、更安全和更具未來性的交易處理。這種智慧合約方法將允許以太坊賬戶進化並支援後量子密碼學,而無需對底層以太坊協議進行更改。
FalconSimpleWallet
FalconSimpleWallet將是SimpleWallet的修改版本,將ECDSA替換為基於 Falcon 的密碼學。與 ECDSA 不同,"純"Falcon 不支援從簽名中恢復公鑰 - 這意味著不能使用 ecrecover。相反,基於 Falcon 的錢包必須直接對儲存的公鑰進行簽名驗證。
然而,正如Renaud Dubois指出的,Falcon 論文的第3.12節介紹了一種金鑰恢復模型。這種方法允許恢復公鑰,但代價是金鑰大小翻倍。雖然這可以為 ecrecover類功能提供一種潛在的解決方案,但增加的金鑰大小會帶來額外的考慮因素,影響鏈上效率。
這種差異意味著基於 Falcon 的錢包需要以太坊地址到公鑰的顯式對映,需要採取不同的授權方法。與依賴 ecrecover來推導簽名者身份不同,FalconSimpleWallet將顯式儲存和引用公鑰進行驗證。
此外,將 Falcon 整合到以太坊虛擬機器(EVM)需要偏離NIST 標準實現。Falcon 依賴於SHAKE進行雜湊,但由於SHAKE 在 EVM 中不受原生支援,我們需要使用一種更EVM 友好的雜湊函式,如Keccak。這可以確保在鏈上驗證 Falcon 簽名時的相容性和效率。
感謝Zhenfei Zhang貢獻了一個基於 Keccak256 的 PRNG 實現,進一步彌合了 Falcon 與以太坊密碼學棧之間的差距。
給我看看演示!
你可以在GitHub 上的 FalconSimpleWallet找到演示。這個專案展示了一個錢包,它將傳統的 ECDSA 替換為基於 Falcon 的驗證,針對以太坊不斷發展的安全需求進行了定製。
特別感謝ZKNox - 他們在Falcon Solidity 實現上的出色工作,將驗證成本從2400萬 gas 降低到360萬 gas。這一突破不僅優化了 gas 使用,也使後量子安全距離實際部署在區塊鏈上又近了一步。祝賀 ZKNox 用這種創新解決方案鋪平了道路!
房間裡的大象
雖然我們已成功將智慧錢包簽名轉換為抗量子(PQ)安全,但仍存在一個關鍵問題:捆綁器交易仍依賴於傳統的ECDSA簽名方案。這意味著,即使在賬戶抽象框架內的個人使用者操作(UserOps)可以使用 Falcon,最終提交到以太坊記憶體池的交易仍由捆綁器使用ECDSA簽名。
要完全從交易管道中刪除 ECDSA,很可能需要在L1 協議層面進行更改,具體透過EIP-7701/RIP-7560。
(額外部分)批處理
正如在第2部分的"Gnarly"部分中提到的,有正在進行的研究,探討有效聚合 Falcon 簽名,包括涉及Labrador的工作。如果這種方法被證明是高效的,我們可以利用EIP-7766(ERC-4337 的簽名聚合)來最佳化 AA 框架內的 Falcon 簽名聚合 - 類似於這個 VerificationGateway 合約中聚合 BLS 簽名的方式。
沒有 EIP-7702 的湯!
正如在EIP-7702的背景下討論的,該提案可能允許將賬戶轉換為ERC-4337賬戶並新增Falcon支援,但仍保留ECDSA金鑰。EIP-7702的問題在於,ECDSA 金鑰在此框架內仍然有效,這引入了潛在的安全風險。即使賬戶在設定程式碼後開始使用 Falcon,ECDSA 金鑰的存在也會使賬戶面臨風險。攻擊者可能會恢復並誤用 ECDSA 金鑰來破壞賬戶。
這就是為什麼EIP-7702從量子抗性的角度來看是有問題的:它確立了易受量子攻擊的ECDSA。相反,我們應該關注原生賬戶抽象(AA),它消除了對 ECDSA 的任何依賴,透過像上述SimpleWallet這樣的智慧合約錢包提供了更強大、更抗量子的方法。
結論
在本期中,我們探討了如何利用賬戶抽象(AA)將Falcon這種後量子簽名方案整合到以太坊中。透過過渡到基於 Falcon 的智慧錢包簽名,我們可以確保以太坊交易的未來安全和抗量子性。
雖然在 AA 框架內採用基於 Falcon 的錢包是一個有前景的步驟,但對捆綁器交易仍依賴ECDSA簽名仍然存在挑戰。克服這一問題需要在協議層面進行更改,可能透過EIP-7701或RIP-7560,以完全消除交易管道中的 ECDSA。
此外,正如在第2部分"Gnarly"部分中討論
總之,雖然我們在將後量子安全性整合到以太坊方面取得了重大進展,但在捆綁器和協議層面仍然存在關鍵挑戰,需要解決以確保向抗量子未來的順利過渡。


