ERC 4337: Understanding Account Abstraction

By Shaan Ray

Account abstraction is a blockchain technology that enables users to replace their traditional blockchain accounts with smart contracts. This is an ERC Standard, and it therefore applies to Ethereum and all EVM-based blockchains like Artirbum, Avalanche, Polygon, and several more.

Two types of accounts exist on EVM-based blockchain platforms: EOMs or Externally Owned Accounts and Smart Contract Accounts, also referred to by some people as ‘Smart Accounts.’

Externally Owned Accounts (EOAs)

Users on most current blockchains and EVM-based systems have externally owned accounts. They access and transact from their accounts using an external private key paired with their public key. There are multiple ways to store these private keys: hardware, software, and paper wallets. Using the wallets to store the keys safely can often confuse some new users.

When these accounts are set up, a private key is generated for the user to keep secret, and so are “seed phrases” to help users recover their accounts if they misplace their private key. Users should also be storing these seed phrases securely.

An EOA must initiate all blockchain activity. All activities on a blockchain platform, such as conducting transactions or calling smart contracts to perform their logic, must be initiated from an EOA. And every transaction costs money in the form of Gas fees.

Limitations of Traditional Accounts (EOAs)

Every action on the blockchain requires gas fees. EOAs can’t do anything until some ETH is transferred into them to make transactions. Funding new accounts to start transacting is one of the biggest hurdles first-time users must overcome. Some experts believe this is the primary impediment stopping the large-scale adoption of Web3-based solutions.

Additionally, if you lose or forget your private key and seed phrases, there is no way of recovering the account – all the money in it is inaccessible for good. There are several painful examples of this.

How many accounts would you have lost till now if you couldn’t click forgot password and follow a backup mechanism?

Smart Contracts Accounts

Smart contract accounts are the second type of account on Ethereum. Smart contracts are one of the most powerful features of blockchain technology. A smart contract is a digital contract where the terms of the agreement between users or program logic are set in code. A smart contract can also be programmed to self-execute when a set of predefined conditions are fulfilled.

Smart contracts can be programmed to trigger other smart contracts or create new events when executed. Smart contracts can also hold assets, NFTs, and cryptocurrencies within them. These assets can be distributed upon execution when a set of conditions are met based on the code defined in the contract.

With smart contracts, developers can implement ‘access’ rules of their choice. Meaning that they can use a range of custom mechanisms through which a user can access their account.

Account Abstraction

Account abstraction allows users to use smart contracts as their primary accounts. It essentially turns EOAs into smart contract-enabled accounts.

Smart contracts can hold complex logic pertaining to various aspects of the user experience, such as the user accessing the account, conducting transactions on the platform and much more. It has the potential to completely change the user experience on the blockchain for the better because it will make accessing and using Web3 apps much more straightforward.

There have been several previous attempts to create account abstraction, but it was finally made possible by ERC 4337.

ERC 4337

ERC 4337 first started as an EIP (ethereum improvement proposal). It was co-authored by Vitalik Buterin, Yoav Weiss, Kristof Gazso, Dror Tirosh, Shahaf Nacson, and Tjaden Hess. Four key benefits to the Ethereum network that the co-authors observed are:

  • It preserves the ethos of the ecosystem – decentralization
  • It requires no hard fork and can be adopted without any consensus protocol changes
  • It supports signature schemes that are user-friendly, more efficient, and quantum-safe
  • It removes user experience friction by creating gas abstraction, i.e., allowing users to pay network fees by ERC-20 tokens or request third parties to cover their fees altogether.

More details about the team, participating members, and the protocol can be found here.

Readers interested in more technically advanced details about this protocol and the abstraction process can learn more here.

ERC 4337’s primary benefit is that it simplifies the creation and use of wallets.

Benefits of Account Abstraction

Account abstraction does away with the need to remember seed phrases and private keys. Developers can define their own safety rules with smart contract wallets. For example, account recovery can be done through external biometric verification solutions or social mechanisms with a trusted group of friends.

These new accounts can allow for gas fees to be paid with any token or even to pay for someone else’s gas fees. Projects eager to onboard new users can subsidize or even completely offset the initial gas fees required by new users.

A range of logic varying in complexity can be implemented through smart contracts. This can enable things like batch payments – where several complex or lengthy actions can be batched together, signed, and paid for all at once. It can also enable automatic payments, which weren’t previously possible on blockchain platforms due to the requirement of user signatures for each action.

Overall, the primary benefit of account abstraction is that it simplifies things and enables the development of very user-friendly apps, especially for beginners. It also helps prevent the loss of crypto wallet access and the loss of crypto itself.

Conclusion

By moving users from Externally Owned Accounts to Smart Contract Accounts, account abstraction will enable much friendlier user experiences, avoid all the pitfalls and unrecoverable accounts of the past, and may pave the way to large-scale adoption of web3-based applications.