Account abstraction is a blockchain proposal that can revolutionize how people transact with wallets on Web3. It allows users to use smart contracts as wallets instead of Externally Owned Accounts like Metamask. Users will then execute transactions through contracts. This proposal opens a new world of possibilities for streamlining blockchain transactions.
Background
Smart contracts are lines of code that operate on the blockchain. Unlike External Owned Accounts (EOAs), which a user controls through a private key, smart contract accounts don’t require a private and public key in any way; instead, code defines their behavior.
This arrangement grants smart contracts immense power and offers much flexibility since it allows developers to create whatever kind of contract they can imagine and adjust as needed. On the other hand, EOAs can only be used for signing transactions and don’t offer nearly as much versatility. It’s important to remember that when using blockchains, users control EOAs with private keys, while smart contracts are controlled exclusively by the logic coded within them.
How Web3 wallets work today
Although performing actions on the blockchain today is typically slow and tedious, many people still cannot resist the potential of entering this cutting-edge space. After becoming familiar with signing transactions from an EOA, the transactions become much more manageable.
However, the initial interaction can be difficult, frustrating, and downright discouraging for new users. Trying to understand how to set up a web3 application for the first time is enough to make anyone reconsider wanting to join this revolution.
Limitations of EOA wallets
These types of accounts have their fair share of limitations:
- If users lose access to their private key, they cannot access or control the account.
- They can be vulnerable to malicious actors who may attempt to steal funds or data associated with the account.
- EOAs have limited capabilities and cannot execute smart contract functions.
- They have a poor UX interface which may limit mass adoption.
- They cannot easily manage multiple accounts.
EOA vs contract accounts
Permissioned control
With EOA accounts, the private key grants full access to everything associated with that account. In contrast, Contract Accounts allow users to define a list of tiered permission levels. For example, you can require 3 out of 5 signers to approve a transaction before it executes.
Batch transactions
EOA accounts require a separate signature for each action taken on the blockchain, while contract accounts can batch transactions together. So, for example, a user can approve a token transfer and then swap it for another token in one operation with their contract account. This feature makes users more efficient when dealing with DeFi.
Account recovery
While EOA wallets give you direct control over the funds, it also means that they rely solely on the private key holder to access them – if this is lost, it can result in a total loss of control. On the other hand, Contract accounts use code written within them to prevent access issues. Rather than relying on a single private key as a security factor, custom-coded logic provides an additional layer of protection and eliminates single points of failure. As a result, contract accounts are better suited for those who need their crypto accessed without worrying about potential losses due to exposure or misplacement.
Transaction limits
With EOA accounts, any transaction that your wallet signs will occur. Contract accounts allow you to write custom logic controlling how funds get transferred, such as a function to halt all transactions to other addresses while you recover access to your account. This difference in functionality gives users more flexibility when ensuring their funds are secure and accessible only to them.
Account abstraction proposals on the Ethereum ecosystem
The Ethereum community has proposed implementing account abstraction in the Ethereum ecosystem.
These proposals include:
- EIP 86 of 2016 – This proposal suggested an abstract layer between the user and their wallet, allowing multiple signers to use a single account.
- EIP 2938 of 2020 – suggested a new transaction type called “AA transactions.”
- EIP 3074 of 2020 – proposal to delegate user account authority to smart contracts.
- EIP 4337 of 2021 – suggested a ‘pseudo transaction’ object that defined how smart contracts could make a transaction on behalf of the user.
All these proposals are currently in stagnation.
Why account abstraction matters
Account abstraction has emerged as a crucial development bringing a much-needed improvement to the overall user experience of Web3.
Abstraction has generated a plethora of innovative opportunities, such as:
- Generating wallets on behalf of users when they sign up to use an app.
- Enable risk-free gaming with session keys and team wallets with tiered permission systems.
By abstracting the complex aspects of blockchain technology, users can enjoy the benefits associated with decentralized applications – even those unfamiliar with the blockchain can collect NFTs without any tech-related headaches. Contract accounts can revolutionize how non-tech enthusiasts interact with web3.
Examples of account abstraction use cases in the real world
One of the most popular use cases for account abstraction is in the form of multi-signature wallets. These wallets allow multiple signers to be attached to a single wallet. As a result, each transaction must go through various user signoffs before it can be executed on the blockchain – creating an efficient and secure way to manage large sums of digital assets.
Other example use cases include
- With an account abstraction set up with Netflix or Disney Plus, each family member can have a sub-account that the primary account holder can configure and control. Such permission control can help parents ensure that users can access age-appropriate content while enjoying their favorite shows without worrying about their kids watching unapproved material.
- A family visiting a theme park can experience the convenience of account abstraction with their accounts, giving parents control over which attractions their children can access.
Such examples demonstrate the incredible potential of account abstraction and allow for greater transparency and security for digital transactions. With more applications like this, there is no doubt that account abstraction will open up exciting possibilities for use cases of blockchain technology.
Limitations of account abstraction with smart contracts
Account abstraction is a powerful tool with the potential to revolutionize how people interact with web3. However, it also carries some risks/ limitations that we must consider before implementation.
- The limited scalability of some smart contracts – while account abstraction can provide users more flexibility in managing their funds, it may not be suitable for more complex use cases.
- There is the potential for malicious actors to exploit smart contracts to steal funds or gain access to personal data. Such exploits are especially pertinent concerning multi-signature wallets, as hackers can target vulnerable accounts and use them to their advantage.
- The complexity of account abstraction and coding contracts – new users may not have the technical knowledge to understand the intricacies of setting up and managing their account abstraction, making them vulnerable to scams.
- Account abstraction can lead to privacy breaches if misused – while developers can configure accounts in a way that obscures user identity, this depends on good security practices such as regular password changes.
- There is the risk of users not using account abstraction correctly due to a lack of understanding – misconfigured transactions can result in lost funds or delays.
Therefore it is essential to be aware of these risks when implementing account abstraction. Taking measures such as regular security audits and educating users on best practices for managing their accounts can help reduce the chance of any issues arising.
Conclusion
Account abstraction is a powerful tool that can revolutionize how people interact with web3 and give users greater control over their digital assets. However, as with any technology, it is essential to understand the risks associated and take steps to ensure they are minimal. Nevertheless, with proper planning and education on best practices, account abstraction can open up exciting new possibilities for tech-savvy and non-tech users.