paint-brush
What is an Account Abstraction on Ethereum? How Will It Contribute to Crypto Adoption?by@b2broker
851 reads
851 reads

What is an Account Abstraction on Ethereum? How Will It Contribute to Crypto Adoption?

by B2BrokerJuly 4th, 2023
Read on Terminal Reader

Too Long; Didn't Read

Ethereum's new Account Abstraction technology allows for improved security, better gas management, trusted sessions, easier online purchasing and subscription payments with crypto. It brings the advantages of web2 to web3 without sacrificing decentralization. Developers have limitless opportunities to create new ideas with this technology.
featured image - What is an Account Abstraction on Ethereum? How Will It Contribute to Crypto Adoption?
B2Broker HackerNoon profile picture

Bad user experience is one of the main obstacles to widespread crypto adoption today. General mainstream users do not think about decentralization or the potentially bright future the DeFi will bring — they just want safety and user-friendliness right here and right now.


And that's where modern web3 falls short. For many, getting into the world of smart contracts, understanding blockchain concepts, and even setting up a crypto wallet seems way too complicated. Not to mention, for example, that you can lose your seed phrase easily, and your funds will be gone forever.


However, Ethereum's latest implementation of EIP-4337, deployed on March 1st, 2023, addresses the UX problem with a solution called Account Abstraction. But what is it? Is it really going to change the whole web3 landscape? Let's find out.

Two Types of Ethereum Accounts

First of all, let's touch on some basics that will help us further understand the concept behind account abstraction.


There are two types of accounts in the Ethereum ecosystem:


  • Externally Owned Accounts (EOAs)


These accounts are controlled by individuals and do not have any complicated code within them. Such accounts have a pair of keys — private and public — which are needed for confirming and executing transactions.


One obvious example of an externally owned account is MetaMask Wallet.


  • Contract Accounts


These accounts are basically smart contracts which are controlled by the code. Contract accounts do not require users to perform the transaction manually and do not have private keys.



So, the main difference between contract accounts and externally owned accounts is that the former is governed by code, while the latter is dictated by users. This is important to understand. Smart contract accounts can execute whatever logic is programmed into them (anything and everything the programmer wants), whereas EOAs just sign transactions on the blockchain.

EOAs: Why They are Less Than Ideal

Horrible Onboarding Experience

Until recently, the only way users could interact with the network and do specific operations like transacting funds between wallets or buying NFTs was only through externally owned accounts.


For blockchain developers or those who have been in the space for a while, using an EOA is a familiar process.


However, for novices and older generations, this is rocket science.


From setting up a wallet, generating and remembering the private key, to purchasing funds, paying gas fees every time you want to transfer the coins, and not messing up with addresses — it's all too complicated for those who are used to the convenience of modern banking services, which allow you to send money just by clicking one button.


And it doesn't end there.

Risks are High

When you use EOAs, you need to be extremely careful with your private keys and seed phrases. Losing them might be fatal, as you won't be able to access your funds anymore. And if your private key is stolen, hackers will have full access to all your digital money.


In a traditional banking system, even if you lose your card, the bank can always block it and send you a new one.


No wonder only a small fraction of users are ready to take the risk. And even for savvy users, who are aware of all the possible risks and know how to protect themselves, working with EOAs still brings certain psychological tension.

The Idea Behind Account Abstraction

To make blockchain technology more accessible and user-friendly, Ethereum developers came up with the concept of Account Abstraction. It's an idea of letting users interact with the network through smart contracts instead of EOAs.


But why, though? Well, a smart contract wallet can be more versatile than EOA, as it has the ability to contain distinct rules and settings. This gives contract accounts a much wider range of capabilities.



For example, Account Abstraction and contract accounts will let one user have different private keys (for one wallet), which will be distributed among a pool of trusted individuals and devices. If the user loses access to his primary key, he can turn to these individuals and recover access to his funds.


And this is only one way the Account Abstraction could make the user experience better.


According to Yoav Weiss, a co-author of EIP-4337 alongside Vitalik Buterin:


"Account abstraction is a way to appeal to the next billion users."


How Account Abstraction is Implemented

Account Abstraction is implemented through EIP-4337, which is often used interchangeably with ERC-4337.


However, in fact, these two abbreviations are different — Ethereum Improvement Proposal (EIP) must first be accepted by the on-chain governance system before it can become an Ethereum Request for Comment (ERC).


Also, ERC is just one component of EIP, and it mainly discusses protocol and development guidelines.



Before EIP-4337, proposed in September 2021, there was a range of other EIPs related to account abstractions on ETH:


  • EIP-86 in 2016 — The proposal was centered on giving smart contracts the ability to start and authorize transactions.

  • EIP-2938 in 2020 — The proposal aimed to create a new transaction type.

  • EIP-3074 in 2020 — The proposal focused on delivering self-executing smart contracts more efficiently through the use of a new opcode (smart contract building block).



None of these proposals were implemented for one simple reason — they all required changes to the underlying Ethereum network infrastructure, and this can't happen without a consensus agreement.


The EIP-4337 is different in that it doesn't require any protocol changes. Instead, it proposes to build a higher-level infrastructure on top of the existing one.


In fact, ERC-4337 has already been implemented since March 1st, 2023, and developers can already build apps using the new logic.

How Account Abstraction Works

The whole process looks like this:


A smart wallet triggers a "UserOperation," a pseudo-transaction object, which is then added to the special mempool. This mempool is essentially a queue of transactions (though it differs from Ethereum's regular mempool).


Then, bundlers, new decentralized operators, act like miners or validators. They retrieve UserOperations from the mempool, package multiple user operations into a single transaction known as a "bundle transaction," and then, bundlers send "the bundle" to a global smart contract known as the "EntryPoint*.*"


In the next stage, another function called "handleOps" receives the bundle and sends the information to the validation through "validateUserOp" and executes the operation.


Bundlers will pay for the transaction fee (gas) associated with the operation or will be recompensed either by the user's contract account or by a third party known as a "paymaster," which could be a decentralized app or a wallet.



Fast Fact: Stackup, a wallet and infrastructure provider, recently deployed the first production-grade bundler on the mainnet. However, more bundlers are expected to be made available in the near future due to the decentralized infrastructure and permissionless nature.

How Would Account Abstraction Benefit Users

Account abstraction brings many advantages to users of any level:

Better User Experience

Ethereum Account Abstraction will offer developers of smart contracts, wallets, and applications more freedom when it comes to innovating the user experience, as they will have the ability to set up account rules through the code. This will allow easier onboarding and an overall level of services and convenience comparable to that of traditional banks.

Better Security

New account logic will make apps operating on ETH even more secure. Account abstraction allows developers to integrate many exciting features, such as:


  • Multi-signature authorization — You could share authorization credentials with multiple trusted individuals or devices. Developers could also configure contracts in such a way that transactions of a certain value require authorization from a certain percentage (e.g., 3/5) of the trusted parties before they can be executed.

  • Account freezing — In the event of a lost or compromised device, your account can be safeguarded from any other authorized devices to keep your funds safe.

  • Account recovery — With EOAs, losing a device or forgetting a seed phrase could leave you locked out of your assets indefinitely. Fortunately, with smart contract wallets, you can establish trusted accounts that would permit new devices and reset access.

  • Transaction limits — Instating daily limitations on the quantity of value that can be transferred from your account in one day, week, or month ensures that if a hacker were to gain access to it, they would not be able to clear out everything quickly.

  • Whitelists — To ensure the utmost security of your funds, you can only initiate transactions to addresses you know are secure. If a malicious individual were to obtain access to your private key, they would be unable to transfer funds to an unwhitelisted destination. And even then, such changes can only occur once multiple signatures validate them — meaning if an attacker wants their address included in this list, it must first obtain several of your backup keys as well.


Better Gas Management

Account abstraction improves gas management as well. Applications have the capability to cover not only users' gas fees but also enable payment of such costs by third parties — with tokens other than ETH. This way, users do not need to maintain an ETH balance to fund their transactions — smart contracts will swap user tokens with ETH automatically.

Trusted Sessions

Many apps, particularly games, can benefit from the implementation of trusted sessions, as there is a large number of small transactions that need to be validated in a short amount of time. Manually approving each and every transaction would interfere with the game experience; however, giving permanent approval is unsafe. Smart contract wallets could provide an alternative solution by allowing certain transactions to be approved for a predetermined time, up to a certain value, or only for specific addresses.

Better Online Purchasing

Today, every single transaction requires proof that the right token is currently loaded in your wallet. But with account abstraction technology, it's like shopping online — you fill up a "basket," click buy, and all necessary logic is handled by the contract instead of manually inputted by the consumer.

Subscriptions in Crypto are Now Possible

With contract accounts, you can make "pull" payments that are initiated by a biller. For instance, an electricity company could set up a programmed payment contract and dictate its rules, such as the amount it will charge each month or how often in one day it will initiate payments. After users approve these predefined pull payments through their contract account, automated bill repayments can be made soon after payday arrives.


Blockchain has now become remarkably useful in a wide variety of payment applications.

Final Thoughts

By leveraging contract accounts, developers are liberated from the restrictions of existing EOAs and can bring advantageous elements from web2 to web3 without losing the decentralization they strive for. Here we've just touched on a few examples of how user experiences could be optimized by Account Abstraction, yet there is boundless potential for imaginative new ideas that have yet to emerge!