Next Generation Web3 — Account Abstraction

Jul 15, 2023

Teal Flower
Teal Flower

Using web3 applications and adding transactions to the blockchain today is a nightmare for most users. It’s a complicated process that takes users investing their time to learn how it all works before they can become regular users. This goes against everything we’ve learned and achieved building web2. Applications in web2 only get easier and simpler to use. Why would users ever turn away from that simplicity for the scary and complicated nature of web3?

The answer is, they won’t.

This is where account abstraction (EIP-4337) swoops in like a knight in shining armor.

What is account abstraction?

To answer this question, we first need to take a look at what accounts are, how transactions work, and why this sucks for new users. Credit to the simple explanation below goes to Jarrod Watts and his article on account abstraction.

Accounts

In the Ethereum world there are two types of accounts.

  1. Contract Accounts

  2. Externally Owned Accounts (EOA)

Contract accounts are generally smart contracts that you interact with on the blockchain. For example, Uniswap has a smart contract governing its decentralized exchange. Every time you swap tokens, you interact with the Uniswap contract.

EOAs can be thought of as people. It’s your crypto wallet such as MetaMask or Fantom wallet. EOAs have a cryptographic key pair, one public and one private key (which you’ll be familiar with if you have a crypto wallet.

The primary takeaway is that Contract Accounts are controlled by code, EOAs are controlled by people.

Transactions

Every time a user wants to swap tokens, mint an NFT, or send funds to another wallet they need to write new information to the blockchain. This requires a transaction.

Transactions are initiated by an EOA and can either be sent to another EOA, such as your friend’s wallet, or to a contract account, such as Uniswap. The initiating EOA must both sign the transaction and pay for gas fees in order for the transaction to be completed.

UX and Risk

We all know that the web3 user experience is clunky. As much as we’d like to think that self-sovereignty and decentralization are worth sacrificing for, the vast majority of users just don’t care. If one app is harder to use than the other, they will go with the easy one. It doesn’t matter if it runs on the Ethereum blockchain or a JP Morgan banking layer. Nobody cares.

Below is the process a new web3 user has to go through to complete their first transaction.

Not the smoothest process is it?

This is the reality of using blockchain applications with an EOA. Combine that with the inherent risks of users controlling their own private keys and you’ve got a recipe for disaster (and a long way to mass adoption). If you’re not familiar with the risks of self-custodied private keys, check this out.

Well, EIP-4337 could change everything.

Account Abstraction

Account abstraction allows users to use smart contract wallets instead of EOA’s to perform transactions. This basically gives a users wallet the same capabilities of a smart contract and removes the inherent limitations of an EOA.

Smart contracts are infinitely more flexible and provide an additional layer of creative freedom to the world of blockchain, something we sorely need to onboard more people and deliver on the promises of web3. Think of it this way, an EOA is a very constrained form of wallet. A smart contract wallet effectively allows users to build any functionality they want.

Why is this important?

The explanation above should give you an idea of the importance of account abstraction. But let’s go a little bit deeper by looking at smart contract wallets potential through the lens of some practical use cases.

Fund recovery

The most prominent use case is of course the ability to recover funds. When users set up a smart contract wallet, they’ll be able to designate other parties who can assist them in recovering their funds in the event of a lost password. Gone are the days of dreading to lose your private keys and all your funds along with them. This is perhaps the most important use case from a fundamental level as it’s a massive derisking for new users.

Gasless transactions

Perhaps the use case I’m most excited about from a business perspective. With account abstraction, dApps can sponsor transactions for their users, meaning they pay the gas fees on behalf of any transaction the user initiates. This functionality offers endless opportunities. For example, a business could offer new users free transactions for a limited time to entice them to their product. Or the opposite is also possible. Loyal power users get rewarded with free transactions based on their history. These are some basic uses of gasless transactions, however, the potential is limitless.

Transaction Guard

The freedom of smart contract wallets is that you can program any conditions you want. This allows users to program a specific set of conditions that need to be met before a transaction can be authorized from a certain wallet. Taking these measures can provide a wallet with additional layers of security, something you might want to consider if you’re stashing a substantial amount of crypto in a particular wallet.

Family Plan

Think of this as your Netflix or Spotify family account. You have a master account and a bunch of sub-accounts. Account abstraction allows a group of people, such as a family, to manage their finances on chain, use a trusted party as a security layer, and make everyone’s lives easier no matter where in the world they are.

The Future of Transactions

The bottom line is that account abstraction takes out all the nuisance of the web3 user experience. Not only will this bring web3 up to the standards we’re used to in web2, it will allow us to innovate on our financial world at a whole new level. Stay tuned on the use cases coming out of the Ethereum ecosystem as a result of this new upgrade.

This is where crypto goes mainstream 🚀

2023 Carlstrom Consulting

2023 Carlstrom Consulting

2023 Carlstrom Consulting