Account Abstraction
What is Account Abstraction?
Account Abstraction (AA) is an upgrade that allows users to use smart contracts as their accounts (contract accounts) to hold assets and authorize transactions instead of using EOAs.
To date, on Ethereum and other EVM networks, the default account is still an Externally Owned Account or EOA, and only an EOA can trigger transactions.
EOAs are accounts controlled by an external private key, so if a user loses his private key, all his funds will be lost. This means EOAs require users to know a lot about how a blockchain works to use them safely.
Fortunately, we have Account Abstraction. With AA, users can enjoy all the benefits of Ethereum without knowing or caring about the underlying technology.
Why Account Abstraction?
As mentioned previously, AA can improve user experience and unlock many benefits for users. Here are a few things that are possible with AA contract accounts but not with EOAs:
Seedless account: Users can create an account without the need of a seed phrase.
Arbitrary verification logic: Support both single and multi-sig verification, support arbitrary signature scheme.
Multi-level security: Developers can program arbitrary security logic for their AA wallet, including account freezing/recovery, allowing whitelist logic (only allowing transactions to certain trusted addresses), allowing transaction limits, and more.
Gasless transaction: Developers can customize fee logic, allowing users to pay transaction fees in ERC-20 tokens, even allowing apps to sponsor (or subsidize) transaction fees.
Batch transaction: Transaction batching means users can perform multiple transactions (or actions) simultaneously and save on gas fees (e.g. approve and execute a swap in one go).
Despite the increased flexibility of AA, there are some issues that we need to consider:
Not yet compatible with many dApps: Ideally, all dApps would follow EIP-1271 to validate signatures. Unfortunately, the entire Ethereum ecosystem is built around EOAs, so many Dapps are incompatible with contract accounts.
Higher gas cost: Unlike EOAs, a contract account always requires an amount of gas to deploy its code to the network. And in most actions, a contract account requires a lot of processing power to execute, so it can consume more gas than an EOA. On L2s and other scaling solutions, this becomes less of a problem.
The need for a well-protected entrypoint contract: With the ERC4337 approach, this architecture requires all wallets to send transactions to a global entry point contract. As a result, this entry point needs to be robust and well-protected as it needs to ensure that all the transactions received are appropriately signed and validated.
How will AA be implemented?
There have been multiple approaches to account abstraction over the years such as EIP-86 and EIP-2938, but these weren't practical to achieve since they required consensus layer changes.
Luckily, we have ERC-4337 - Account Abstraction Using Alt Mempool. This standard is a new approach to account abstraction that relies on higher-level infrastructure that avoids the need for consensus layer changes. Ethereum consensus layer development is focusing on the merge and later on scalability-oriented features, and there may not be any opportunity for further protocol changes for a long time. Hence, to increase the chance of faster adoption, this standard avoids Ethereum consensus changes. To better understand ERC-4337, you can read this article.
W3Smart Wallet and Account Abstraction
W3Smart Wallet is a Web3 game-specific wallet that fully supports Account Abstraction. The architecture of W3Smart Wallet is ERC4337 compliant.