Account Abstraction and the Benefits of Smart Contract Wallets
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. Contract accounts (a.k.a smart contracts) on the other hand 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, therefore allowing them to be secured by any custom logic. This in place 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 makes smart contract accounts a lot more compatible with other protocols and dApps too.
Benefits of smart contract accounts/smart contract wallets
Smart contract wallets already utilize account abstraction and can take advantage of all of its benefits. Here are some of those benefits explained:
- You can create an account without the need of a seed phrase and you can recover accounts (e.g. with the email address). For example, you can sign up for Ambire Wallet simply 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 choose to 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 too. In Ambire Wallet for example, you can transfer funds to another account or wallet, approve a swap and perform the actual swap all at the same time and pay gas once instead of 3 times.
- Session keys are possible - this means that 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 for 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 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 would still be able to 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.
However great smart contract accounts are, more improvements are still needed to make them first-class citizens.
For example, right now such wallets need an extra helper (relayer service) to enable the benefits above. EIP-4337 e.g. eliminates the need of 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 which 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.
Here we would like to note that you don’t necessarily need EIP-4337 in order 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 in Ambire Wallet too.
Don't use Ambire Wallet yet?
Interested in Ambire? Follow us: