Ethereum’s account abstraction explained
Ethereum’s (ETH) account abstraction uses smart contract wallets to manage users’ account activity and blockchain transactions. It hides the complex processes of blockchain interaction and could finally make web3 apps easier for users.
Blockchain technology has long promised a decentralized future, but its notoriously complex inner workings have severely hampered widespread mainstream adoption. Now, Ethereum developers are leveraging a feature called “account abstraction” to completely simplify and streamline blockchain interactions for everyday users. But how does this new abstraction model actually work under the hood?
EOAs vs. smart contract wallets
To understand what account abstraction is, we first need to examine the two primary account types that exist on Ethereum today:
Externally owned accounts (EOAs) consist of public-private key pairs that users must securely manage themselves. The public key is the account address you share, while the private key proves ownership and allows you to sign your transactions.
To perform any action on the blockchain, users need to install browser extensions like MetaMask, copy long cryptographic addresses, approve every transaction prompt, and manually sign each transaction with their private key. This cumbersome process can frustrate new users. And if you ever lose your private key, you lose access to your account and funds forever with no recovery options.
Smart contracts are advanced programmable accounts where developers can program customized logic, rules, and capabilities right into the contract code itself. For example, a smart contract wallet could enable social recovery features, daily transaction limits, access controls, account freezing, batch sending, and many other capabilities not possible with a basic private key-based account. Smart contracts are accounts controlled by code rather than private keys.
The core innovation of Ethereum’s new account abstraction protocol is utilizing smart contract wallets to completely manage users’ account activity and blockchain transactions behind the scenes. This abstracts away many of the complexities of blockchain interaction from the user experience.
How does account abstraction work?
The technical design is outlined in an Ethereum Improvement Proposal called EIP-4337:
When a user wants to perform any action through a web3 application, they simply submit something called a “User Operation” into a pool known as the alt mempool. This User Operation contains instructions like “send 0.05 ETH to Address1″ or “purchase NFT #2456” without requiring direct blockchain signatures.
Validators on the network called “bundlers” periodically pick up User Operations from the mempool, bundle groups of them together into packaged transactions called “Bundle Transactions”, and submit these bundles to a central global smart contract called the EntryPoint.
The EntryPoint contract acts as a router, forwarding each User Operation to the relevant smart contract wallet it pertains to. It calls validateUserOp(), which verifies the user’s signature, pays gas fees, and approves/rejects the operation. Next, execute() runs to perform the operation on-chain.
This sequence allows users to simply submit User Operations, while their smart contract wallet handles validating, bundling, paying gas, and executing Ethereum transactions behind the scenes. All blockchain complexity is abstracted away from users.
Benefits of Ethereum account abstraction
The implications are profound in terms of unlocking web3 for the mainstream. Regular users could participate in DeFi, NFTs, and blockchain applications without crypto wallets or understanding public-key cryptography, addresses, gas fees, and signatures.
Account abstraction also enables user-friendly features not possible otherwise, like social recovery, spending limits, batched transactions, and approvals. This brings smart contract wallets significantly closer to the usability standards people expect from traditional finance.
While highly complex under the hood, account abstraction finally provides the simplified user experience necessary for decentralized apps to achieve mass adoption. By abstracting away blockchain complexity, Ethereum’s new protocol brings web3’s user-owned vision closer to reality.
What are the disadvantages of account abstraction?
Still, this approach has one major drawback. While the smart contracts involved in Ethereum’s account abstraction implementation have been reviewed extensively, they still introduce more complexity to a critical system compared to a simple private-public key pair-based account.
Complexity results in more potential security vulnerabilities and a greater attack surface. For this reason, it is only recommended to use this kind of account when intending to actually use its exclusive feature and the most recommended wallet for most users is still a hardware wallet.