At the ETH Denver 2023 event by Ethereum developers and Vitalik Butterin talked a lot about a new trend and is seen as an important factor for the future development of Ethereum and the entire blockchain industry. It's Account Abstraction (EIP-4337).
So what is Account Abstraction? Let's find out with Imota in the article below!
Account abstraction (AA) is an upgrade proposal to bring a good user experience to users while increasing flexibility and logic for crypto wallets. This is the breakthrough proposal of the Ethereum founders that can help the crypto adopt millions of users in the future.
AA specifically is a feature of Ethereum that separates the validation and computation part of an account. Instead of storing an account's private key on the blockchain, Account Abstraction allows for a simple text address to be registered to represent that account.
Ethereum Account is a concept in the Ethereum blockchain that defines objects that store data and assets on the Ethereum network. Each Ethereum Account has a unique identifier (represented by a 40-character hexadecimal string) and is stored on the Ethereum blockchain.
There are two types of Ethereum Accounts on the Ethereum blockchain: External Owned Account (EOA) and Contract Account.
EOA has three properties: ETH balance, nonce, and wallet address.
An EOA address consists of a private key and a public key pair. EOA holders use the private key to confirm messages and transactions. When the EVM receives a transaction, it validates the signature. Transaction validation rules are encoded into the EVM. This leads to:
- Security risk when signer and EOA exist on the same device will make keeping private key vital. Losing the private key means that all funds will be stuck forever. If the private key is stolen, then the hacker can withdraw money from the account.
- The wallet that signed the transaction must also be the wallet that pays gas fees for the transaction, which is very inconvenient when using multiple wallets.
- The transaction validation logic is hard-coded into the EVM – every signature must use the same signature scheme (ECDSA).
Contrary to EOA, CA is an account that controls the logic of the code through smart contracts, they do not contain private keys, so they cannot initiate transactions themselves. They can only receive messages from the user (from the EOA) and execute the commands that have been set up previously.
Projects like Gnosis, Argent, and Imota Wallet have developed smart contract wallets. The smart contract wallet structure determines who is allowed to sign transactions. Multi-signature wallets like Imota Wallet are a good example of a smart contract wallet. One of the benefits of multi-signature wallets is the ability to have multiple signatures on an account, instead of a single private key as is the case with EOA.
Although smart contract wallets are much upgraded compared to EOA, owning both types of accounts now will bring many problems. Since most Web3 applications are designed for EOA, smart contract wallets will also cost more in gas fees. So L2 with cheap gas fee is the right place for devs to test AA. The devs have proposed many solutions to solve the difficulties in implementing smart contract wallets, but they are not really optimal.
The purpose of implementing AA is to significantly improve the user experience in interacting with the Ethereum blockchain across wallets, Dapps, DeFi. Account abstraction also serves as a base layer on Ethereum to decide when an account can pay itself gas fee and how to pay gas fees.
Specifically, AA helps to address constraints that prevent development in several key areas:
- Create smart contract wallets using other types of signature verification than ECDSA (Schnorr, BLS...).
- Create smart contract wallets that include features such as multisig verification, social recovery, reducing the risk of assets being lost or stolen.
- Privacy protection systems such as tornado.cash.
- Improves gas fee efficiency of DeFi protocols by preventing transactions that do not meet premium conditions from entering the chain.
- Make it possible for users to use another token to pay fees instead of being forced to use ETH (for example, converting that token into ETH needed to pay gas fees in real-time transactions).
One of the easiest examples of Account abstraction can be understood as follows.
Suppose a user wants to transfer tokens to a new wallet for security reasons. The user then accidentally sends the entire ETH to the new wallet first. This means that without ETH, the old wallet will not be able to transfer the remaining tokens.
Of course, the simplest way is still simply sending part of the ETH back to the old wallet address, wasting some time and gas fees. This case sounds simple, but many users have encountered it, AA can give users a solution to "turn" the vi into a smart contract wallet and allow the use of tokens available in the wallet as gas fees.
A smart contract wallet, also known as a smart contract wallet, is a type of blockchain account that is deployed and managed on-chain via smart contracts instead of a private key. This wallet provides user-friendly and programmatic risk reduction solutions with features such as multi-signature security, social recovery, allow/block other wallet addresses, batched transactions, freezing wallets...
Smart contract wallets have appeared quite a lot up to the present time and at one time were considered as a new “trend”. The most prominent smart contract wallets are Argent, Gnosis Safe, ConsenSys Multisig. The most recent standout is the Imota Wallet, which allows users to create AA accounts with BLS multi-signature security, with fast on/off-ramps support.
When a user wants to make a transaction, they provide this address to identify the transaction's destination account.
Users will send messages off-chain called UserOperation, which will then be collected and packaged in bulk into a transaction by the block proposer via the bundler module.
It is the responsibility of the block proposer to filter activities to ensure that only paid activities are accepted. There will be a separate mempool for UserOperation and nodes connected to this mempool to perform dedicated authentication for ERC-4337 to make sure any UserOperation is always paid before moving.
This feature improves the security of the account, as there is no longer a need to store the private key on the blockchain. It also helps to reduce the load on the network node by reducing the amount of data that needs to be stored. However, Account Abstraction is still in the development stage and has not been fully implemented on Ethereum.
Account abstraction has long been a common dream of the Ethereum developer community. Instead of lines of EVM code that are only used to implement the logic of applications/dapps, it can also be used to implement the logic of individual user wallets.
This can open the door for creativity in wallet design, giving users many new important features without being too dependent on private keys anymore. Let's look forward to the developments of AA in general and ERC-4337 in particular in the future!
Read more Imota Cryptopedia:
Follow us on social media channels👇