What is Account Abstraction
Before explaining what account abstraction is, we need to explore what Ethereum's account model is.
Currently, Ethereum has two types of accounts: Externally Owned Accounts (EOA) and Contract Accounts.
- Externally Owned Accounts (EOA) are accounts controlled by private keys and are typically created by users within cryptocurrency wallets (e.g., MetaMask). EOAs can initiate transactions but do not support batch transactions. Users can only pay gas fees in ETH.
- Contract Accounts are smart contracts deployed on the network. Their code is executed by the EVM. Contract Accounts cannot initiate transactions like EOAs; they can only passively respond to transactions.
For a deeper understanding of Ethereum's account model, please refer to our other article "What is Account Model".
Account abstraction, in simple terms, is a technique that combines EOAs and smart contracts. It allows users to conduct transactions using accounts controlled by smart contracts. In other words, it allows the use of a "Smart Contract Wallet" for processing transactions. A "Smart Contract Wallet" can be thought of as an EOA controlled by a smart contract. It possesses the functionalities of both a contract account and an EOA, enabling users to achieve more secure and flexible transactions.
Compared to EOAs, a "Smart Contract Wallet" can:
- Support arbitrary verification logic (e.g., Schnorr, BLS, multi-sig schemes)
- Implement batch transactions using Bundlers
- Enable third-party sponsored transactions (DApps can pay transaction fees on behalf of users)
- Support multiple EVM-compatible networks (e.g., Polygon, Avalanche, Arbitrum, etc.)
- Implement various custom transaction functionalities (e.g., automatic payments, pre-approved transactions)
- Support future feature upgrades, improvements, and bug fixes
- Implement social recovery using multi-sig (A designated guardian or account can assist with account recovery through multi-sig)
- Pay gas fees using ERC-20 tokens other than ETH
What else do you want to learn?