Account Abstraction and the Benefits of Smart Contract Wallets
Account abstraction is a transformative concept in Ethereum, aiming to make smart contract accounts as functional as externally owned accounts. This article explores the benefits of account abstraction, such as enhanced security and more accessible onboarding.
Account abstraction is a topic much discussed in the Ethereum Community recently, and you may be struggling to understand it in detail. Don’t worry, we’re here to help you with this.
What is Account abstraction (AA)?
To understand what AA is, you must first understand how accounts work on Ethereum. There are generally two types - externally owned accounts (EOAs) and contract accounts. Most personal wallets today (except Ambire and a few others) use EOAs, and EOAs are secured by a very big, impossible-to-guess secret number called a private key. On the other hand, contract accounts (a.k.a smart contracts) are entirely controlled by computer code deployed on the Ethereum blockchain and can therefore implement any logic.
Typically, you control EOAs with a key pair (public and private key, both necessary to establish ownership and to initiate actions). Smart contract accounts are not normally able to initiate actions on the EVM (on-chain), and you would require an EOA to trigger said actions. Account abstraction essentially aims to decouple accounts (within the EVM) from keypairs (outside of the EVM) - and to remove the need for a seed phrase, thus turning them into smart contracts.
A while back, Vitalik and other ethereans realized that private keys are not the final answer to self-custody because a secret number (in the form of a seed phrase) is hard to keep safe and easy to lose. They envisioned a world in which personal wallets can be contract accounts, allowing them to be secured by any custom logic. This allows new onboarding methods, such as creating an account with an email and a password and enabling account recovery.
This effort to start using contract accounts as wallets is referred to as account abstraction because a lot of that effort goes into making contract accounts "equal" to EOAs, in other words, first-class citizens on Ethereum.
While there have been many proposals that implement some form of AA on Ethereum, most of the capability to build those next-generation features has always been there. Over time, wallets like Ambire appeared that implement most of the AA features by making a contract account for each user.
Why should you care about Account abstraction?
There are multiple reasons why account abstraction is so important. In summary, it is believed to be the (so far missing) key to mass adoption because it is an effort to make interacting with the blockchain easier.
Firstly, it paves the way for self-custody and increased security. We have seen many examples since the beginning of funds disappearing into the abyss due to a lost seed phrase or a hack.
Decreasing the risk and making things simpler and easier, more native, is vital not just for current crypto users. It also helps improve the image and the usability of cryptocurrencies and DeFi as a whole and, therefore, increases the trust in future users.
It further facilitates onboarding by allowing account creation with a social login or a social account recovery, improving the customer journey, especially for people with less experience. Implementing account abstraction also allows for further flexibility, which wasn’t available before. It also makes smart contract accounts a lot more compatible with other protocols and dApps.
Benefits of smart contract accounts/smart contract wallets
Smart contract wallets already utilize account abstraction and can take advantage of its benefits. Here are some of those benefits explained:
- You can create an account without a seed phrase and recover accounts (e.g., with the email address). For example, you can simply sign up for Ambire Wallet using an email address and password. You can also use another Web3 or hardware wallet for increased security, but it is not mandatory.
- You are able to pay transaction fees in ERC-20 tokens. This means you no longer need ETH (or another chain’s native token) to do anything, which is very important for general crypto adoption. Let’s say you only hold USDC and you’d like to deposit it on AAVE, you can pay the transaction fees in USDC directly without having to swap some of it for ETH first or acquire ETH additionally. This is also possible in Ambire Wallet, where you can choose in which currency you’d like to pay the fee and even save on fees if you pay in $WALLET tokens or use our gas tank feature.
- You are able to batch transactions. Generally, on Ethereum, you cannot perform an action (or complete a transaction) if you have a pending one, and you would need to pay a fee for each transaction. Transaction batching means you can perform multiple transactions (or actions) simultaneously and save on gas fees. In Ambire Wallet, for example, you can transfer funds to another account or wallet, approve a swap, perform the actual swap simultaneously, and pay gas once instead of 3 times.
- Session keys are possible - you do not have to sign in every time for a certain period. This can improve the experience of gaming, for example.
- Smart contract wallets allow you to add or remove signers. This allows a lot more granular control over the security of a wallet than an EOA wallet. For example, you can create an account with a username and password with Ambire, but you can add a hardware wallet as a signer to confirm transactions to increase the security of your account. You could still log in simply using your email address, but you would need your hardware wallet to perform any actions within the wallet.
- Further benefits include the ability to time delay transactions, to create custom rules (for example, set a spending limit), etc.
What’s next?
However great smart contract accounts are, more improvements are needed to make them first-class citizens.
For example, such wallets need an extra helper (relayer service) to enable the benefits above. EIP-4337, e.g., eliminates the need for this relayer service, making SCA transactions native to the blockchain. This Ethereum Improvement Proposal (EIP), authored by Vitalik Buterin and Yoav Weiss, amongst others, is important because it is the first account abstraction proposal that doesn’t require core protocol changes but rather takes out the transaction validation out of the protocol itself and moves it to the smart contract level.
We would like to note that you don’t necessarily need EIP-4337 to implement account abstraction or reap its benefits. Smart contract wallets, for example, already have all of the account abstraction benefits available.
EIP-4337 is already integrated into Ambire Wallet, too.
Don't use Ambire Wallet yet?
Interested in Ambire? Follow us:
Discord | X (Twitter) | Reddit | GitHub | Telegram | Facebook