你想要以太坊後量子交易簽名
感謝Vitalik Buterin、Justin Drake、Renaud Dubois、Marius Van Der Wijden和Zhenfei Zhang的富有成果的討論。
介紹
2024年可能會被記為量子計算機威脅加速的一年。谷歌在CEO Sundar Pichai的帶領下,終於透過一條響亮的推文釋出了其量子晶片Willow!
世界上最著名的量子專家之一Scott Aaronson,已經改變了他對人們是否應該擔心量子計算機的資訊。他從之前的說法
...也許,最終,有人需要開始考慮從RSA、Diffie-Hellman和橢圓曲線密碼學遷移到基於格的密碼學或其他可能抵禦量子攻擊的系統,...
轉變為
是的,毫無疑問,現在就要擔心這個問題。要有一個計劃。
Vitalik已經寫過如何透過硬分叉來拯救大多數使用者資金的量子緊急情況。此外,幾天前,他在一個播客中強調了以太坊可能受到量子攻擊的四個主要組成部分。它們是:
- 以太坊交易簽名(特別是使用ECDSA)
- 共識中的BLS簽名
- 資料可用性抽樣(利用KZG承諾)
- Verkle樹(如果與Bandersnatch一起發貨)
一個注意的讀者可能已經注意到,這四個要點有一個共同點 - 是的,這是我的摯愛橢圓曲線。不幸的是,橢圓曲線離散對數問題(ECDLP)被Shor演算法打破,這是一種著名的量子演算法。
在這個簡短的筆記中,我們將分析一種可能的後量子替代方案,即潛在的後量子以太坊交易簽名。
哪種PQ簽名?
現在,一個合理的問題是:我們應該使用哪種後量子(PQ)簽名?幸運的是,如果我們現在必須選擇,我們不需要過多地思考這個問題。前以太坊基金會密碼學家Zhenfei Zhang已經寫過關於NIST後量子密碼學標準化過程的文章。如果我們分析三種可能的簽名選擇(其中兩種利用基於格的密碼學),很明顯(至少目前來看)Falcon似乎是最有前景的候選人。驗證者的計算應該與其他基於格的簽名方案(如Dilithium)大致相同,即受FFT的約束。然而,Falcon確實有更小的簽名大小。
發貨!!!
既然我們已經"確定"了要使用的簽名,下一個問題是:我們如何發貨?現在有一個很大的二分法:一種需要硬分叉,另一種不需要。讓我們深入探討一下。
賬戶抽象方式
我們將討論的第一種方法,可能是最優雅和最有前景的,涉及賬戶抽象(AA)。Justin Drake和Vitalik在各種場合都提倡過這種方法。
對於不熟悉的人來說,AA是一個提議的改進,旨在透過改變交易和賬戶的管理方式,使以太坊生態系統更加靈活和使用者友好。它將某些功能從外部擁有的賬戶(EOA)轉移到智慧合約中,有效地"抽象"了EOA和智慧合約賬戶之間的差異。
以太坊開發者已經提出了實施AA的各種建議,包括ERC-4337。這是一個實用的解決方案,在不需要共識層升級的情況下實現了AA。它使用一種稱為使用者操作物件的機制,並引入了一個單獨的捆綁器層來處理交易。
在這種情況下,新增Falcon作為以太坊交易簽名意味著編寫一個Falcon驗證器合約,負責在入口點合約執行之前驗證使用者操作物件的有效性。
現在,這可能聽起來一片陽光和彩虹,但至少有一個實質性的潛在問題。在Solidity中編碼Falcon可能不是最好的體驗(而且可能相當耗費gas)。除此之外,還有更糟糕的問題,比如Falcon處理13位數字,而Solidity只支援U256。後者是一種可以透過新增SIMD和EVMMAX到EVM來解決的問題。
- 優點:優雅。
- 缺點:耗費gas。
硬分叉方式
我們在這裡討論的方法可能是技術上最簡單的。它受到Marius Van Der Wijden之前工作的啟發,本質上涉及引入一種新的交易型別,使用Falcon簽名而不是BLS簽名。這裡最大的問題是,透過這樣做,我們會被一個首選的主簽名方案(透過一個新的EIP)緊密繫結。
總結一下這種方法:
- 優點:這是一種優雅和靈活的解決方案。
- 缺點:在gas消耗方面是昂貴的。
混合
一個非常誘人的方法是將上述兩種方法的最佳部分結合起來。簡單來說,我們可以以類似於RIP-7212的方式利用AA,但當然,我們需要一個新的RIP來使用Falcon。這可能會提供時間來在rollups中試驗這個功能,並確定Falcon是否真的是正確的方向。然而,需要注意的是,這種方法並沒有解決在L1層引入新簽名方案的原始問題。
- 優點:易於編碼和快速。
- 缺點:暫時性(不解決L1用例)。
結論
量子計算的崛起要求我們採取緊急行動來保護以太坊,特別是它的交易簽名,這些簽名容易受到Shor演算法的攻擊。基於格的簽名方案Falcon由於其效率和緊湊的大小而成為一個強有力的候選人。部署策略,包括賬戶抽象、硬分叉或混合方法,各有不同的優缺點。仔細評估至關重要,以確保以太坊在抵禦量子威脅的同時保持可擴充套件性和可用性。