A Beginner’s Guide to Account Abstraction
Account abstraction is the key to an improved crypto wallet user-experience.
When it comes to blockchain, Ethereum doubtlessly pioneered and revolutionized how we think about decentralized applications and smart contracts. However, like any technology, Ethereum has its limitations. Scalability is one such issue. Usability can also be a problem for both newcomers and even seasoned users of Web3.
When it comes to wallets, we often encounter significant problems with user experience. Enter account abstraction, a concept that has captured the attention of the Ethereum community. Account abstraction aims to enhance wallet usability by separating the idea of accounts from Ethereum's underlying execution models.
With account abstraction, developers can "abstract" away the complexities of gas fees and transaction management. This will make it easier for users to interact with dApps. Abstraction also allows for the creation of more user-friendly interfaces and reduces the burden on users to understand the intricacies of gas and transaction mechanics.
The Limitations of Current Ethereum Accounts
The Basics of EOAs and Contract Accounts
To understand the need for account abstraction, we must dive deeper into Ethereum's limitations. When using Ethereum, you interact with the network using what’s known as an “externally owned account (EOA)”. These are controlled by private keys, usually generated with a seed phrase. Your Trust Wallet account is an EOA, for example. Unlike smart contracts, EOAs don't have any associated code. People typically manage these accounts using a wallet.
EOAs are the only way to start a transaction or execute a smart contract on Ethereum. However, this creates limitations on how you can interact with the network. Performing batches of transactions is often challenging, and you always need ETH to pay for network fees.
A contract account (CA), on the other hand, is an automated account run by a smart contract. This could be a DApp, for example, or another on-chain service. However, an EOA still needs to deploy a CA and also interact with it to execute its functions.
Account abstraction seeks to combine aspects of both of these account types. The goal is to enhance account security and the overall user experience by making the entire process more programmatically flexible. This can be achieved by upgrading EOAs to be controlled by smart contracts or by upgrading smart contracts to initiate transactions. Both these options create smart contract wallets — a combination of EOAs and smart contract accounts.
In simple terms, you can significantly upgrade your wallet experience with the benefits of smart contracts and codability. Once achieved, this should play a large part in wider Web3 adoption for blockchain and its services.
Ethereum's Transaction System Isn't Always User-friendly
Ethereum's accounting transaction system can be unfriendly to users for several reasons. These include:
- High and unpredictable gas fees
- Delayed transaction confirmation times due to scalability
- Complex wallet management issues with a lack of user-friendly interfaces.
These challenges all hinder mainstream adoption and require improvements in protocol upgrades, layer-two solutions, and user-friendly tools/interfaces.
For the typical user, this all means having to manage a lot of different factors. Imagine you run out of ETH in your account. You would then need to buy some off an exchange or perhaps bridge some from another blockchain. These actions all take additional time and knowledge.
Setting up your wallet and private key security measures is also tricky for newcomers. If you lose your seed phrase, it almost always means losing access to the wallet. With account abstraction, however, we can add more programmability to Ethereum accounts and create a more intuitive experience.
Account Abstraction Explained
After much discussion about the possibility of account abstraction, ERC-4337 was deployed on the Ethereum mainnet in March 2023. One of the key challenges of account abstraction was that it likely required a change to Etheruem's consensus layer. However, the ERC-4337 improvement protocol achieves account abstraction without any consensus-layer changes.
With ERC-4337, you can create contracts and perform transactions with a single account. It also allows for user-friendly crypto wallets that could significantly broaden adoption with easy-to-use features. These include:
The simplification of seed phrase management. Wallets can be set up quickly and managed with the smart contract wallet without losing custody of them. Greater control over transactions. You could, for example, bundle transactions, pre-pay them, and set them up in advance, among other features. Gas fee flexibility. You can pay for other friends' transactions or even pay for your gas fees with alternative cryptocurrencies. Improved account recovery process. A smart contract account could implement multi-factor authentication and other programmable features. Enhanced security features. These could include time locks on spending, withdrawal limits and 2FA features, and permissioned sub-accounts.
The Future of Account Abstraction
ERC-4337 is just one method for introducing account abstraction to Ethereum. So far, we've also seen work done on EIP-2771, EIP-2938, and EIP-3074. These improvement proposals range from possible changes to Ethereum's consensus layer to new token standards.
Smart contract wallets are already available, but more upgrades are required to make them as decentralized and permissionless as possible. However, upgrades that alter Ethereum's protocol will require much more work to complete and generate consensus. These changes may take much, much longer to ship. However, it could also be possible that account abstraction is achieved well enough by EIP-4337 that no protocol changes are ever required.
Overall, account abstraction gives developers greater freedom to innovate, resulting in more user-friendly Web3 experiences for everyone. It enables flexible smart contract design, direct interaction with contract accounts, and improved performance. We'll also see benefits to interoperability, advanced permission models, and easier upgradability. Ultimately, all of this should lead to a smoother and more intuitive user experience on the Ethereum network.