There’s a lot of excitement in the Ethereum ecosystem right now about account abstraction. That’s because after 5 years of debating how to best accomplish it, account abstraction was finally implemented in March 2023. The news that ERC-4337 is live has been greeted with widespread enthusiasm.
Let’s dig into what this change means technically and explain why it has the power to greatly improve web3 UX. To understand how transformative account abstraction is, you need to know how accounts have previously operated on Ethereum.
Externally owned accounts (EOAs)
Transacting on Ethereum has traditionally been done by EOAs. The EOA is controlled by a private key, which must be provided to execute transactions. Private keys must be carefully safeguarded by the user–if you get hacked, your crypto may be stolen in a single transaction. If you forget or lose your keys, your crypto assets could be lost to you forever. In short, management of private keys is not especially user-friendly.
EOAs are often managed using a hot wallet that could be hacked or a hardware wallet that could be lost or stolen. EOAs carry a level of risk that’s higher than we would like. The need for EOAs is an obstacle to mass adoption because setting up an EOA to transact can be a bit complex for new users. This chart created by Jarrod Watts illustrates the required steps:
One attempt to improve on managing an EOA with a wallet was the use of smart contract wallets. Let’s review how they worked before account abstraction.
Smart contracts wallets
Smart contract wallets existed on Ethereum prior to account abstraction, but there were challenges to their use. Smart contract wallets were not directly supported by the Ethereum Virtual Machine (EVM), and they couldn’t pay gas fees.
As a result, users still needed an EOA to make use of smart contract wallets, which need transactions to be initiated by a user’s EOA. To complete the transaction, the EOA had to pay the gas fee, or the contract had to entrust the transaction to a relayer.
The code needed to make all this happen is complex, making it prone to errors that may cause a transaction to fail, or create opportunities for hackers to hijack the transaction.
Smart contract wallets are controlled by code and can execute any command programmed into their code, but until now they haven’t been able to contain your keys or pay gas. Account abstraction changes that.
What is account abstraction?
Account abstraction makes accounts on Ethereum simpler and easier to use by representing accounts as smart contracts with customizable logic for verifying transactions.
Ethereum Foundation security researcher Yoav Weiss–who co-authored ERC-4337–prefers to now call wallets on Ethereum ‘smart accounts.’ That’s because account abstraction unifies EOAs with smart contracts and makes the resulting hybrid more programmable and flexible.
Why did account abstraction take so long to approve?
It wasn’t until ERC-4337 that an account abstraction solution was proposed that didn’t require changes to the consensus or Layer-1 protocol. Account abstraction was implemented for Ethereum users by creating higher-layer infrastructure instead.
8 Ways account abstraction is a game-changing improvement
How many ways does account abstraction make life easier for Ethereum users? Let’s count them off:
1. Less complex wallet setup
New users won’t have to set up a wallet with seed phrases. Because account abstraction allows private keys to be safely stored on a smartphone, an account can be set up and accessed as easily as any app.
2. Recover your account if you lose your keys
With account abstraction, you can code your wallet to contain backup keys, which you could switch to in order to re-access your account or secure it after detecting an attack. This could be accomplished without having to set up a new wallet. You can decide to program recovery measures for added security, such as:
- Social recovery–Appoint trusted friends as guardians who can jointly let you back into your account or approve a switch to backup keys.
- Switch devices–If you’ve programmed your smart contract to enable more than one device for account access, you may be able to log back in from another device.
- Use ‘lost password’–You could elect to create a ‘lost password’ reset feature that would enable you to reset your password, much as you do with traditional banks.
- Rate limiting–Defeat hackers who make hundreds of attempts to break into your account by setting a limit on the possible number of login tries in an hour, for instance.
3. Transact more securely
You could add transaction-security measures to help protect your account from theft, such as:
- Whitelisting–Your account only executes transactions with listed parties. All others are blocked.
- Multisig–Transactions execute only if multiple signatories approve it. This makes theft far more difficult.
- Account freezing–Suspect foul play? You could block all transactions with your account until you give the go-ahead to resume.
- Exact value–Approve transactions only for specific amounts, all others are disallowed.
- Transaction limits–Keep your wallet from being drained in a single transaction by setting a transaction-size limit.
4. Make transactions faster and more efficient
Transaction bundling is an important feature of how account abstraction works. Sending through a bundle of many transactions takes less time and effort than doing transactions one at a time.
5. Enable scheduled and recurring transactions
With account abstraction, you can schedule a transaction in the future, or to set up regular recurring monthly payments.
6. Flexible management of gas fees
Account abstraction makes it possible for others to pay gas fees for you, in various ways:
- Meta transactions–With meta transactions, your transaction is inserted into that of another user’s, with that user paying the gas.
- Sponsored transactions–With the ability for anyone to pay anyone else’s gas fees, crypto exchanges could make ‘free gas’ offers to try to attract more users. Virtual events could also pick up the gas fees to attract more participants.
- Trusted sessions–A platform can allow trusted users access in a specific time frame. If a game platform wants to make a game free to users to attract more players, it can absorb the gas fee during those sessions.
8. Inspire dapp and wallet developers
The broad flexibility account abstraction brings to smart contracts is likely to trigger an explosion of new ideas from dapp and wallet developers. They’ll have many more possible features to work with under this new scheme.
Better user experience enables mass adoption
All these improvements taken together make for an easier, less complicated, and more enjoyable experience for crypto users. In addition to Ethereum, other chains are implementing account abstraction as well. The flexibility and ease of use it offers should prove a powerful lure to web3 builders looking to lure new users to their platform or project.