Acknowledgements and Resources
This doc is mostly aggregated from the hard work of many people. Here are a few of the names: adietrichs, lightclients (matt), micahzoltu, SamWilsn, danfinlay, yoavweiss, VitalikButerin, real_philogy, etc.
- Here’s a list of resources used is this document
Overview / Background
From yoav’s post.
Some common terms used in this doc:
- EOA: Externally owned Account
- A type of account most of us use that are controlled by a private key.
- This type of account can originate transactions.
- This type of account CANNOT execute (or is controlled by) code by itself.
- SCA: Smart Contract Account
- An account that uses a smart contract and is controlled by code.
- This type of account CANNOT originate transactions.
- This type of account can execute code.
- AA: Account Abstraction
- Account abstraction is a proposal to increase flexibility in the management and behavior of Ethereum accounts.
- There are multiple (non-exclusive) approaches to achieve the goal of account abstraction (including but not limited to EIP-3071, ERC-4337, RIP-7560, etc.).
What is Account Abstraction?
Every Ethereum account implements five functionalities:
- Authentication: Proving your identity to login into an account.
- Authorization: The level of access you have for an account.
- Replay protection: A way to uniquely identify each action/operation performed by a user of an account.
- Gas payment: The way a user directly/indirectly pays the fee to perform actions/operations using an account.