Recently, there has been a lot of debate within the Ethereum community regarding the proposed account abstraction upgrade, EIP-3074, which is expected to be included in the upcoming Pectra upgrade. Opponents, including Vitalik, have expressed concerns about its compatibility with future developments. As a result, Vitalik proposed a new solution, EIP-7702, yesterday.
Account abstraction (AA) is a direction for improving user experience in Ethereum blockchain interactions. It aims to optimize user interactions with the blockchain, making operations easier and more practical, with the hope of achieving mass adoption.
So how does account abstraction improve user experience? Here are some examples:
Batch transactions: This allows users to perform multiple operations in a single atomic transaction. For example, users can simultaneously approve and execute transactions on decentralized exchanges.
Sponsored transactions: Third-party accounts can pay transaction fees on behalf of the sender account, which can be used to subsidize user actions.
Permission management: Users can sign sub-keys and grant specific permissions. For example, users can grant permission to use a particular ERC-20 token without granting permission to use ETH, or they can set a daily spending limit or restrict interactions to specific applications.
With important issues such as Ethereum network security and decentralization gradually being resolved, proposals for improving user experience have gained attention. Key proposals include EIP-2938, EIP-3074, and EIP-4337.
EIP-4337 introduces the concept of User Operations, which allows smart contract wallets to customize transaction functionalities, such as sponsored transactions or batch transactions. User Operations will be added to an alternative mempool created by EIP-4337, separating it from regular transactions and the mempool.
However, implementing ERC-4337 and achieving widespread adoption still requires significant effort, including infrastructure design and manual wallet updates.
EIP-3074 aims to introduce two new opcodes, AUTH and AUTHCALL, which allow externally owned accounts (EOAs) to authorize contracts (invokers) to call and interact with external contracts on their behalf. In other words, it enables EOAs to have smart contract capabilities without deploying additional contracts or requiring manual upgrades. Ethereum community plans to include EIP-3074 in the next hard fork upgrade, Pectra, although it has sparked controversy, with Vitalik openly opposing it.
Vitalik points out that EIP-3074 presents compatibility issues with future updates:
The two opcodes introduced, AUTH and AUTHCALL, are unnecessary in the proposed account abstraction solution, EIP-4337, which Vitalik considers to be the ultimate solution.
The development of the caller contract ecosystem in EIP-3074 may diverge from the smart contract wallet ecosystem, leading to technical fragmentation.
Yoav Weiss, another member of the community, also highlights that EIP-3074 requires complete trust in invokers contracts, increasing trust risks and delaying the implementation of the Inclusion Lists mechanism for censorship resistance.
Vitalik believes that EIP-3074 can be seen as an extension of EOAs rather than a necessity. If it has a negative impact on Ethereum’s future development, it is better not to implement it.
Supporters of EIP-3074 argue that those who advocate for its delay or removal believe that Ethereum’s user experience is currently satisfactory. If meaningful improvements in user experience cannot be achieved in the next Pectra upgrade, Ethereum may fall behind its competitors.
The major controversy surrounding EIP-3074 is whether EIP-4337 is the optimal solution for Ethereum’s future. If the answer is yes, then EIP-3074 should be opposed; if the answer is no, then it should be supported. However, this narrow perspective cannot resolve the community’s dispute. Vitalik understands this and has not only voiced his opinions but also proposed a new solution, EIP-7702, to continue the discussion on the controversy surrounding EIP-3074.
The design of EIP-7702 aims to replace the two opcodes AUTH and AUTHCALL required by EIP-3074 by calling EOAs:
AUTH will be replaced by the call to verify, setting authorized[msg.sender, …]
AUTHCALL will be replaced by the call to execute, validating authorized[msg.sender, …] and executing the transaction.
According to the proposal, these minor changes will avoid potential negative impacts on future protocol updates brought by EIP-3074.
The goal of EIP-7702 is to achieve all the use cases of EIP-3074 without the potential issues associated with those two opcodes.
Now, there is a third proposal, EIP-7702, that goes beyond simply supporting or opposing EIP-3074. If it can indeed address the need for a fast and effective user experience solution for Ethereum while not affecting the development of EIP-4337 and other protocols, it may become a consensus direction within the community.
The proposal is still under discussion, and we can expect to learn about the latest developments in the next Ethereum ACDE meeting.
Regardless, the Ethereum community is undoubtedly striving to progress in the best possible way.