Before diving into AA, please read this article to understand the concept of an Ethereum account:
https://ethereum.org/en/developers/docs/accounts/
Currently, users interacting with blockchain are required to hold a certain amount of native tokens to cover transaction fees. For example, in Ethereum, when we want to send a transaction or deploy a smart contract, the wallet must have a certain ETH balance to pay the fee.
This requirement limits accessibility and adoption of blockchain by adding extra steps and requiring users to hold a small amount of currency they may not otherwise need. Account Abstraction (AA) was developed to enable users to pay transaction fees on networks with any token.
Account Abstraction is a proposal on Ethereum aimed at enhancing flexibility in the management and behavior of accounts. It includes special smart contracts called smart accounts, used to define and manage users' wallets.
Components of an Account Abstraction include:
ERC-4337(opens in a new tab) (Account Abstraction via Entry Point Contract specification) is a specification that aims to use an entry point contract to achieve account abstraction without changing the consensus layer protocol of Ethereum.
Instead of modifying the logic of the consensus layer itself, ERC-4337 replicates the functionality of the transaction mempool in a higher-level system. Users send UserOperation
objects that package up the user’s intent along with signatures and other data for verification. Either miners or bundlers using services such as Flashbots can package up a set of UserOperation
objects into a single “bundle transaction”, which then gets included into an Ethereum block.
ERC-4337 also introduces a paymaster mechanism that can enable users to pay gas fees using ERC-20 tokens (e.g. USDC) instead of ETH or to allow a third party to sponsor their gas fees altogether, all in a decentralized fashion.
ERC-4337 is still in draft stage and not finalized yet. However, since ERC-4337 will not change the consensus layer, there are already several implementations available like eth-infinitsm(opens in a new tab) and Stackup(opens in a new tab).