ERC4337: Account Abstraction for Beginners

Learn the basics of account abstraction and unlock the power of ERC4337 with this beginner-friendly guide!

Williams Peter
Coinmonks
Published in
6 min readMar 22, 2023

--

Photo by Choong Deng Xiang on Unsplash

Account abstraction is a key idea in the realm of blockchain technology that increases its value and security since it is still difficult to introduce customers to the world of cryptocurrencies. We owe this to sophisticated ideas like smart contracts, laborious wallet operating modules, and constrictive architecture between centralized and decentralized entities.

EIP-4337 and ERC-4337, which Ethereum will implement in 2023, will alter that. EIP and ERC-4337, dubbed superchargers intended to boost Web3 adoption, have one main objective: to make Smart Accounts available to any Web3 enthusiast.

In this article, we will be looking at ERC-4337 and Account Abstraction, as well as exploring what it means for users.

Understanding EIP-4337 and ERC-4337

EIP-4337

One thing we need to take note of about the EIP-4337 and ERC-4337 is that they are frequently used interchangeably but are unique.

EIP-4337 and ERC-4337 are two different standards for creating Ethereum smart contracts. EIP-4337 defines the Ethereum Virtual Machine (EVM) opcode for the CREATE2 operation, which enables the creation of a smart contract at a pre-determined address. ERC-4337, on the other hand, defines an ERC-20 token standard that enables the secure and trustless transfer of tokens between two parties.

They are both unique in their own way, as EIP-4337 enables the creation of a secure smart contract without the need for a pre-existing address, while ERC-4337 defines a secure token standard that is compliant with the Ethereum blockchain.

What is ERC-4337

ERC-4337

To construct account abstraction, Vitalik Buterin, the other co-founder of Ethereum, and other developers proposed ERC-4337 in 2021. It was introduced in March 2023 on the Ethereum mainnet and is anticipated to usher in a new age of user-friendly cryptocurrency wallet designs.

Account abstraction in Ethereum tries to merge the characteristics of the two current account types in the protocol: Smart Contract Accounts and Externally Owned Accounts (EOA). For us to fully understand it, we need to look into the different types of accounts listed above.

Externally owned account (EOA)

Externally owned accounts, commonly referred to as EOAs, are user accounts on the Ethereum blockchain. Unlike smart contracts, which are self-executing accounts with their own code, an EOA is a regular account owned by a user, which is used to store and transfer Ether or other tokens. A public and private key are linked to an EOA, which is effectively an address on the Ethereum network. The private key is used to sign transactions, while the public key is used to collect payments. The user has to have an Ethereum wallet, which can be either a hardware or an online wallet, in order to utilize an EOA.

Ether, the native coin of the Ethereum network, is kept in an EOA. Other tokens that are based on the Ethereum network, such as ERC20 tokens, can also be stored using it. An EOA may also be used to communicate with smart contracts and send and receive transactions. EOAs are a crucial component of the Ethereum ecosystem because they let users communicate with the network and utilize its various capabilities. Moreover, they are the most popular method for users to store and manage their tokens and ether. EOAs are a crucial part of Ethereum and the cryptocurrency industry as a whole as a result.

Although EOAs are an important part of the Ethereum network and provide users with a way to store and manage their Ether and tokens they do have some limitations. One of the limitations includes they are not as secure as a smart contract, as the private key is only stored on the device the user is using. If the device is lost or stolen, the funds associated with the EOA are also lost, there is no way to reset an EOA if the private key is lost. This means that the user must take extra precautions to protect their private keys, such as using a hardware wallet or a password manager.

Smart contract accounts

Smart contract accounts are automated contracts that are stored on the blockchain and are used to facilitate transactions and agreements between two or more parties. The contracts are written in a specific programming language, such as Solidity, and are stored on the Ethereum blockchain.

Account abstraction aims to give users access to Smart Contract Accounts’ programmability. Users will be able to do much more with their wallets thanks to a smart contract’s programmability than only signing and carrying out transactions as specified by an EOA.

How Does Account Abstraction Work?

Account abstraction works by creating a layer of abstraction between the user and the blockchain. Instead of each user having to sign their transactions with their private key, they are instead identified by a unique account address. This address is created and managed by the Ethereum Virtual Machine (EVM) and is generated based on the user’s public key.

The EVM is responsible for verifying the user’s identity and ensuring that they are allowed to access the account. When a user wants to make a transaction, they only need to provide the address of the account they are trying to access. The EVM then looks up the corresponding public key and verifies that it is the same as the one stored in the user’s account. This ensures that the user is indeed the one who has access to the account, and it also helps protect the user’s identity.

How does Account Abstraction work?

An abstraction layer is created between the application logic and the blockchain protocol using the idea of account abstraction, which is employed in blockchain technology. Developers may easily move their apps from one blockchain to another using this abstraction without having to completely rewrite their programs’ logic.

Smart contracts are frequently used to implement account abstraction. A smart contract is a computer program that performs a specific set of instructions while running on a blockchain. Developers may design immutable programs that are distributed on the blockchain using smart contracts.

What does Account Abstraction mean for users?

The Ethereum ecosystem gains a number of advantages from account abstraction, some of which are listed below:

  • Users are safeguarded by a social recovery in the event that they misplace their accounts. Instead of remembering or retrieving a lost private key, users can authorize a new key as the actual wallet owner through social recovery, which differs from seed phrases, the traditional recovery approach for wallets like MetaMask. The security and usability of Ethereum accounts are improved by this functionality.
  • Every off-chain transaction in typical dApps on Ethereum necessitates a new transaction, which can be time-consuming and costly due to high gas prices. Several transactions can be combined into a single atomic transaction known as a multicall using account abstraction. This method helps consumers save time and money on transactions.
  • Using session keys is a huge improvement for the user experience (UX). Sessions can be specified in a number of ways, such as via a set time limit, a gas cap, a transaction volume cap, or a specific purpose. Users no longer need to be concerned about the intricacies of the underlying technology in order to manage their accounts and complete transactions.

Conclusion

In conclusion, The development of Account Abstraction for Ethereum is crucial, enabling adjustable authentication logic and programmable blockchain accounts. It lays down the technical foundation to support creative crypto wallets. Regardless, the impact it has on user experience and crypto as a whole is something to keep an eye on in the coming years.

New to trading? Try crypto trading bots or copy trading on best crypto exchanges

Join Coinmonks Telegram Channel and Youtube Channel get daily Crypto News

Also, Read

--

--

Williams Peter
Coinmonks

Ex-CEO at Kosmero | FullStack Engineer (MERN) | Web2 | Web3 Frontend Engineer | Technical Writer | Developer Relations