Before explaining what account abstraction is, we need to first understand the account model of Ethereum.
Currently, there are two types of accounts in Ethereum: external accounts (EOA) and contract accounts.
- An external account (EOA, Externally Owned Account) is an account controlled by a private key. It is generally created by the user in an encrypted wallet (such as MetaMask) and can actively initiate transactions. However, EOA does not allow batch transactions, and users can only use ETH to pay gas fees.
- Contract accounts are smart contracts deployed on the network. Its code is executed by the EVM. Transactions cannot be initiated like EOA, and transactions can only be executed passively.
For a deeper understanding of Ethereum’s account model, please read our other encyclopedia article "What is an Account Model?"
Account abstraction is simply a technology that combines EOA and smart contracts. It allows users to trade using accounts controlled by smart contracts. In other words, a "smart contract wallet" is used to process transactions. "Smart contract wallet" can be understood as EOA controlled by smart contracts. It has both contract account and EOA functions, which can help users achieve more secure and flexible transactions.
Compared with EOA, "smart contract wallet" can:
- Support any verification logic (for example, Schnorr, BLS, multi-signature scheme)
- Use Bundler to implement batch transactions
- Enable third-party sponsored transactions (DApp can pay transaction fees on behalf of users)
- Support multiple EVM-compatible networks (for example, Polygon, Avalanche, Arbitrum, etc.)
- Implement a variety of customized transaction functions (for example, automatic payment, pre-approved transactions, etc.)
- Support subsequent feature upgrades, improvements and bug fixes
- Utilize multi-signature to achieve social recovery (that is, the guardian or account designated by the user can assist in account recovery through multi-signature)
- Use ERC-20 tokens other than ETH to pay Gas fees, etc.
ul>