What is Account Abstraction?

Currently, there are two types of accounts in Ethereum: Externally Owned Accounts (EOA) and Contract Accounts. EOAs are controlled by private keys whereas contract accounts are deployed EVM code stored in a smart contract sometimes referred to as smart wallets. Account abstraction attempts to reduce this down to just one Ethereum account type by making EOAs function like contract accounts.

Why does Account Abstraction on Ethereum matter?

Account abstraction enables much more versatile wallets able to execute complex logic. It moves functionality like signature verification, gas payment and replay protection out of the core protocol and into the EVM.

Let’s take a look at an example to see how abstraction could shake things up. Say you’re consolidating your tokens into a new wallet. And then, you accidentally send all of your ETH to the new wallet. Without any ETH to pay for gas, you cannot send any transactions nor can you transfer the remaining tokens.

Luckily, in this scenario you can simply send some ETH back to the old address, wasting a bit of time and gas on your mistake. However, in some situations you might not be able to reverse the mistake so easily and your tokens would be stranded until you send ETH from another wallet. We’ve all likely been in a situation like this and needless to say its inconvenient; account abstraction could allow you to pay for the gas using the remaining tokens similar to some smart contract wallets.

Abstraction creates new possibilities

Many networks or applications built on top of the Ethereum network require relayers to post user transactions on the blockchain for a fee. However, a more sophisticated wallet or contract account has the potential to render relayers obsolete. Take Tornado Cash for example. Instead of relying on relayers, someone mixing funds with an abstracted account could pay for their withdrawal using something like the PAYGAS opcode. There’s no need for relayers when the Ethereum network can act as your relayer without an added percentage-based fee on top of the gas paid.

And this is just one of the many ways abstraction could impact the network. We won’t get into too much of the technical details, but it doesn’t end at paying gas. Moving signature verification into the EVM opens the door for signing transactions with new forms of cryptography and puts smart wallets such as multi-signature wallets and social recovery wallets on the same level as basic accounts.

Abstraction also has the potential to also benefit:

State channels

Optimistic rollups

L2 privacy solutions such as AZTEC protocol

and much much more!

In summary, developers in the Ethereum community could create complex experiences with smoother user experiences with smarter Ethereum accounts.

How far away is this?

The truth is there’s still debate on how account abstraction should be implemented. But, it’s probably safe to say you’ll probably see Ethereum 2.0 phase 0 before account abstraction. Keep in mind that the beauty of Ethereum’s community-driven development is that anyone can champion their cause. So if you want to see account abstraction sooner rather than later, get involved or advocate on behalf of those already developing abstraction.

To learn more about Account Abstraction, check out this helpful EthHub entry which dives into some of the possible implementations and cites many useful sources.

Thanks for reading! Have questions or just want to chat about Ethereum? Join our Discord or follow us on Twitter.