By
Dimitar Bogdanov
June 5, 2024
4 Min Read
Account abstraction continues to be a hot topic and an important pursuit for the Ethereum community. Traditionally, users have interacted with the Ethereum blockchain through externally owned accounts (EOAs), which are externally owned accounts controlled by private keys and serve as the standard way to initiate transactions and interact with smart contracts. The Ethereum community and ongoing upgrades are focused on improving the foundational layers of the ethereum protocol and the ethereum network to enhance user experience and security. Account abstraction represents a significant shift in blockchain accounts and ethereum accounts, moving from EOAs to more flexible, programmable smart contract-based models.
Previously, we talked about the importance of account abstraction and the most notable attempts at achieving it. We primarily focused on the EIP-4337, which, at the time, was the frontrunner. EIP-4337 introduces key concepts and key components such as UserOperations, Bundlers, and the entry point or entrypoint contract, which together enable advanced account abstraction features without requiring changes to the core protocol.
But most recently there has been some excitement around some of the earlier approaches, thanks to none other than the Ethereum creator himself, Vitalik Buterin. Ok, let’s elaborate.
Account abstraction seeks to remove externally owned accounts—those that are typically owned by users—and replace all of them with smart contract accounts. A smart contract account is a programmable account controlled by smart contract code, while a smart account refers to an advanced, user-friendly wallet leveraging programmability, and a contract account is any account on Ethereum that executes code but cannot initiate transactions independently. Smart accounts enable advanced features like automation, multi-user access, and enhanced security. This will allow developers to write custom logic for user accounts, improve usability and security, and make the interface much more convenient. Programmable smart contracts and smart contract code enable custom rules, automation, and features such as automated transactions, spending limits, and the ability to manage assets across blockchains. Account abstraction wallets, including smart wallets and self custodial wallets, offer enhanced flexibility compared to existing wallets, supporting features like shared accounts, two or more users, and granular permissions beyond single seed phrase controlling and full access models found in traditional crypto wallets.
Security measures are also improved, with support for multi factor authentication, two factor authentication, and recovery mechanisms such as social recovery and easy wallet recovery, reducing reliance on a user's private key or private keys. Hardware wallets can still be used for added protection of the public key and private key, while signature abstraction further enhances security. Session keys can be used to grant temporary permissions or automate payments for specific user operations.
Last year, the account abstraction discourse centered around EIP-4337, which envisions account abstraction as an extension of the smart wallet concept that has already been well realized in the Web3 space. EIP-4337 also proposed adding a higher-level mempool that works with a new object called UserOperations. The entry point or entrypoint contract is a central smart contract that processes these UserOperations in the ERC-4337 framework, enabling users to interact with the blockchain in new ways. In short, this approach allows for the smart wallet approach to be implemented much more easily, supporting multiple transactions in a single transaction, and enabling features like gas abstraction, sponsor gas fees, pay gas fees with alternative tokens, and cover gas fees to optimize gas payments, gas fees, and gas costs.
The significant interest in EIP-4337 drew the focus away from alternative approaches such as those proposed in EIP-3074 and EIP-2938. However, recently, there has been a renewed interest in EIP-3074 as key figures in the Ethereum community have been attempting to make it compatible with the current approach. The result was an Ethereum improvement proposal, co-authored by Vitalik Buterin, that aims to refine EIP-3074’s proposed approach. Native account abstraction is also being explored in other blockchain accounts, further expanding what account abstraction offers and opens for users, allowing users and enabling users to benefit from improved user experience, automation, and security.
EIP-3074 was one of the most promising approaches to achieving account abstraction. It was focused on allowing externally owned accounts to delegate control to smart contracts. To make this possible, EIP-3074 adds two new opcodes to the Ethereum Virtual Machine - AUTH and AUTHCALL. Also, a user who wants to delegate control to a smart contract is required to sign a message with their EOA. Using the signed message and the two opcodes, a so called ‘invoker’ smart contract is able to handle transactions for the corresponding EOA.
The method proposed via EIP-3074 is more than capable of accomplishing the main objective of account abstraction. The authors of EIP-7702 point to three use cases that are solved by the earlier improvement proposal: batching, where multiple actions from the same user can be executed in a single atomic transaction; sponsorship, which allows for an account to pay transaction fees on behalf of another account; and privilege de-escalation, which allows users to sign subkeys that have weaker permissions that global access to an account. Within the EIP-7702 framework, session keys can be used to grant limited or temporary access, enabling advanced features like temporary smart account behavior and secure transaction authorization.
However, there are also some caveats that make EIP-3074 a less viable method than the more recent alternative. Buterin and the team behind EIP-7702 has cited forward compatibility concerns stemming in part from the addition of the AUTH and AUTHCALL opcodes. They’ve also pointed out that implementing the EIP-3074 method would lead to the development of an “invoker contract ecosystem” that would exist separately from the smart wallet ecosystem and could lead to fragmentation of effort.
EIP-7702 aims to address these issues and make the EIP-3074 use cases work within the EIP-4337 method, which is being implemented under the ERC-4337 standard. EIP-7702 outlines a way to achieve the same results without needing to add new opcodes, utilizing existing functions instead. Importantly, both EIP-7702 and ERC-4337 do not require any changes to the underlying consensus layer protocol of Ethereum, preserving compatibility and security.
In addition, the code that users would need to sign could be part of the existing ERC-4337 wallet code. The authors of the improvement proposal also note note that “the ‘code pathways’ that are used are code pathways that would, in many cases (though perhaps not all), continue to ‘make sense’ in a pure-smart-contract-wallet world”, meaning that the problem of creating two separate code ecosystems can be avoided.
Account abstraction could be one of the most important catalysts for the mass adoption of Web3 products and services. The potential benefits that account abstraction can bring in terms of improved usability, better security and developer empowerment cannot be overstated. That's why it's great to see that the topic continues to be a major focus of the Ethereum community. The continued drive to improve the account abstraction approach is a strong indication that the industry is moving in the right direction.