What does Account Abstraction mean and where does it come from? Why is it one of the most important steps for Ethereum to reach the next billion users?
First of all: did you know that within the world of Ethereum there are two types of accounts? When discussing Ethereum and the addresses within its Blockchain there are several concepts that need to be explored. Within the Ethereum Blockchain there are two types of accounts:
- Externally Owned Accounts (EOA)
- Contract Accounts (CA).
EOAs, as the name specifies, are accounts owned by something external to the blockchain, namely users. These types of accounts have some features that define them such as an internal state, which defines the balance in ETH and nonce to ensure the uniqueness of each transaction, logics to validate and execute transactions, and a public address that represents them.
Each EOA is associated with a key pair, public and private, which are used to request access to that account, to control funds, and to sign transactions.
CAs, on the other hand, are “slightly” different accounts as they are not linked to private keys, they cost money to create, and can perform actions only in response to a transaction. CAs can still act as wallets, holding and moving assets with internal logic that can be customized as needed.
So inside CA we could recognize an internal state, logics, and address on the Blockchain.
The concept of EOA is closely related to the concept of “signer,” which is the key pair that can move the funds held by the account.
This type of approach has the advantage of being simple to implement, as the user only needs to generate a key pair and start receiving assets, while there are also some problems such as the loss of the private key would be equivalent to the loss of all funds by the user.
There are certainly good solutions for key custody, such as hardware wallets or saving the private key on a piece of paper.
The real question is: do we really think this is the best way the scale the technology to billions of users?
The answer is clearly no. So what could be a possible solution to this problem?
The answer is called Account Abstraction (AA) and is undoubtedly one of the most important developments in the world of Ethereum along with ZKPs and the ZK-EVM.
AA means the decoupling of the EOA object from the key pair, or the Signer object. AA, in fact, aims to make the authorization and sending of a transaction programmable by turning each EOA into a Smart Contract. With AA, each user can deploy and use an account with authorization logic customized to its needs in every single aspect.
Does this sound interesting? Do you already see the advantage of this design?
All Comments