ERC-4337 是帳戶抽象的應用層標準,EIP-3074 是直接修改EVM 的協定層標準,而EIP-7702 有點介於兩者之間,為EOA 臨時賦予了智慧合約。
EIP-3074已於今年4 月被納入以太坊的下一次硬分叉計劃中,該提案通過允許外部擁有帳戶(EOA)將交易權限委託給智能合約,旨在為用戶帶來更便捷的體驗。然而,這項功能也引起了社群的擔憂,許多成員擔心若簽名被誤用,會使整個帳戶資金面臨風險,為釣魚攻擊者提供機會。為了進一步增強安全性,Vitalik Buterin 最近提出了EIP-7702作為EIP-3074的替代方案,引起了社群的廣泛討論。
EIP-7702 引進了一種新的交易類型來提升帳戶抽像功能。這種新交易類型允許外部擁有帳戶(EOA)在交易過程中暫時採用智慧合約的特性,然後在交易結束後恢復其原始狀態。那麼同樣都是帳戶抽象提案,ERC-4337、EIP-3074和EIP-7702的差異在哪裡?
ERC-4337:應用層的帳戶抽象標準
ERC-4337:使用Alt Mempool 進行帳戶抽象化。 ERC-4337 由Vitalik 提出,是應用層標準,主要目標是讓智慧合約帳戶具有EOA 主動發起交易的特性。它透過引入一個名為EntryPoint 的智能合約,使得智能合約可以表現得像是用戶的帳戶,也意味著用戶操作類似帳戶的智能合約來管理他們的資產和交易。這樣便可以實現複雜邏輯,如多重簽章、自動執行交易等。
主要特點:
-
無需硬分叉:ERC-4337 不需要透過硬分叉來實現,不需要對以太坊的協議進行任何修改。
-
相容性:這種方法與現有的EOA 系統相容,使得過渡更為平滑。
-
目標:實現帳戶抽象,使智能合約可以作為帳戶來處理和驗證交易。
-
本質:讓智慧合約帳戶具有EOA 主動發起交易的特性。
EIP-3074:授權與代理執行
EIP-3074:AUTH 和AUTHCALL 操作碼。 EIP-3074 由以太坊研究員SamWilsn、Go Ethereum 開發者Matt Garnett等人提出,且Vitalik 未參與此提案的起草,這是一種允許EOA 將其權限委託給智能合約的方法,引入了兩個新的操作碼:AUTH和AUTHCALL,使得智慧合約可以代表EOA 執行操作,例如大量處理交易、贊助gas 費用。這對於以太坊的虛擬機器來說是一個較大的變動。
主要特點:
-
委託機制:EOA 可以透過AUTH操作碼授權一個智慧合約,然後透過AUTHCALL讓這個智慧合約代表它執行操作。
-
安全隱患:委託機制可能導致安全問題,因為如果授權給惡意合約,可能會導致資金被竊。
-
目標:透過允許EOA 將其權限暫時授權給智慧合約,來增強EOA 的功能性。
-
本質:升級EVM,增加兩個操作碼。
EIP-7702:臨時智慧合約化的EOA
EIP-7702:為一筆交易設定EOA 帳戶代碼。 Vitalik 作為第一作者,於5 月7 日剛發布了此提案。作為EIP-3074 的替代方案,EIP-7702 引入一種允許EOA 在交易過程中暫時採用智慧合約功能的機制。透過這種方法,EOA 可以在單一交易執行期間將EOA 轉換成智慧合約錢包,而在交易結束後恢復到普通狀態。並且因為EIP-7702 已經提供了臨時改變EOA 代碼的框架,所以在EIP-7702 的基礎上實施EIP-5003(允許EOA 永久轉變為智能合約帳戶)變得相對簡單,透過設定不在交易結束後清除代碼,可以實現EOA 到智慧合約的永久轉變。
主要特點:
-
臨時轉換:在交易過程中,EOA 的智慧合約代碼暫時被賦予執行特定操作的能力。
-
高度相容性:EIP-7702 與ERC-4337 的智慧合約錢包程式碼高度相容,可以直接利用已經為ERC-4337 編寫和部署的智慧合約程式碼,使得現有的帳戶抽象化工作可以被重複使用,避免分裂現有的帳戶體系。
-
無需引入新的操作碼:與EIP-3074 相比,EIP-7702 雖然也是協議層標準,但它在交易中暫時應用智慧合約代碼,不需要永久改變以太坊虛擬機。
-
目標:結合EIP-3074 和ERC-4337 的特點,提供更靈活和相容的帳戶抽象方案。
-
本質:臨時應用智能合約代碼。
EIP-7702 提供了一種避免引入新操作碼而實現類似EIP-3074 功能的方法,同時更好地為帳戶抽象終局的實現做準備。帳戶抽象終局(endgame of account abstraction)是指一個預見的未來狀態,在這個狀態中,以太坊上的所有帳戶都使用智慧合約錢包來管理資產和交易,而不再依賴傳統的EOA。這種普遍的帳戶使用智慧合約錢包的情景,被稱為帳戶抽象的「終局」。 EIP-7702 不僅解決了當前的問題,還透過與未來可能的帳戶模型的兼容性設計,確保了長期的有效性和實用性。