Account Abstraction: Why Should You Care?
When I first encountered the concept of account abstraction a couple of years ago, two thoughts immediately came to my mind.
First, it’s an incredibly opaque name for something so transformative.
Second, it has the potential to revolutionize crypto, making it accessible to everyday users.
Why? Because the existing crypto landscape is complex, imposing a significant burden on users as it demands an understanding of a host of complicated technical concepts.
This is where account abstraction comes into play. It revolutionizes the way we maintain self-custody of our assets and interact with decentralized applications, making these processes simpler and much more powerful.
But how will this crucial concept affect your day-to-day crypto experience?
Let’s dig in.
First off: What Is Account Abstraction?
Account abstraction introduces a novel approach to traditional wallet structures. It effectively decouples your assets from the wallet application you interact with.
Traditional wallets, like Metamask, can be thought of as an application. Their job is to generate your keys, sign transactions and send them to the blockchain.
Account abstraction expands on this by dividing your account into two parts:
- The application part, similar to traditional wallets.
- An account smart contract that verifies and processes all your transactions before they interact with other contracts on-chain.
This allows wallet developers to create both customary signature verification/user authentication logic and custom execution logic in the account smart contract that resides on-chain.
For you, as a user, this means enhanced security, increased flexibility, and, most importantly, a significantly improved experience.
What is the Relationship Between Account Abstraction and Wallets?
A wallet can contain one or more accounts.
These accounts can either be simple accounts, also known as Externally Owned Accounts (EOAs) – like those in your Metamask wallet – or they can be smart accounts that comply with account abstraction.
By definition, every wallet that implements account abstraction is a smart contract wallet. This is because account abstraction employs smart contracts to manage transactions before they interact with other contracts on-chain. This approach adds a powerful layer of flexibility and security that traditional wallets simply cannot provide.
Why is Account Abstraction Important?
Account abstraction empowers wallet providers to create a UX that rivals those of traditional Web 2.0 solutions, all while preserving the core crypto values of decentralization and self-custody.
For instance, while two-factor authentication (2FA) is a common security measure in Web 2.0 services like banking, dating and social media apps, its implementation in the crypto world has been challenging due to the absence of a centralized entity to validate the two factors and authenticate users.
Now, thanks to account abstraction, we can leverage the account smart contract on the blockchain to manage two-factor authentication and even multi-factor authentication.
How Does Account Abstraction Actually Work?
Unlike traditional wallets, where transactions are signed on the client side and sent directly for execution by the blockchain, account abstraction introduces an intermediary step.
Transactions are first signed on the client side and then passed through an account smart contract on the blockchain. This account smart contract comprises two main components:
- The signature verification logic (also known as ‘validate’)
- The execution logic (also known as ‘execute’)
The transaction must first be approved by the account’s smart contract verification logic. Only then does it proceed through the execution logic, which sends the transaction to your dApp of choice.
Since both the ‘validate’ and ‘execute’ stages are function implementations that are part of the account smart contract, we can write any logic we want in them. This flexibility creates an unlimited design space for what we can do with each transaction before it interacts with other contracts on-chain.
What are the Benefits of Account Abstraction?
Account abstraction paves the way for innovative wallet designs that can significantly enhance wallet functionality and overall user experience. Here are just a few examples of what it can offer:
Account abstraction allows us to call multiple contracts within the same transaction.
For example, when interacting with an AMM DEX, a user doesn’t need to approve an infinite allowance to the AMM to withdraw funds from the wallet before executing a swap.
Instead, they can issue a transaction that comprises two calls – the first call approves the exact amount that will be used to swap, and the second call executes the swap.
Customer signature verification logic
We can implement any arbitrary verification logic deemed fit, not limited to the default chain signature scheme.
For example, a wallet can implement the secp256r1 signature scheme that is compatible with iPhone and Android phones’ built-in security chip signature support.
Allows users to be authenticated by verifying multiple authentication factors – something you know, something you have, and something you are.
For example, you can generate a hardware key which is bound to your mobile device, sign transactions approved by your biometric ID, and add another signature from a different device where its key is generated from a mnemonic seed phrase.
Smart multi-owner account support
The next generation of multisig wallets allows different owners to reach on-chain consensus before executing a transaction.
With account abstraction, wallet providers can facilitate a Multi-Owner Account where each account is potentially multi-factor authenticated. Moreover, this type of account can pay its own gas fee and seamlessly interact with dApps.
Account abstraction allows you to pay the transaction (gas) cost in any ERC20 token, not just in ETH.
For example, if you only have DAI in your wallet and you want to make a transaction related to DAI, you wouldn’t need to deposit ETH in the wallet just to pay the gas. The wallet can use DAI by converting it to ETH and pay the gas seamlessly, within a single transaction.
Daily withdrawal limit
Account abstraction allows you to set a daily withdrawal limit on your wallet, similar to how an ATM card limits the amount of money you can withdraw in a day. This means you can limit the withdrawal amounts from your crypto account for added security.
For instance, you could set a limit allowing withdrawals of up to $100 a day. Any withdrawal exceeding this amount would either require two-factor authentication (2FA) or would have to wait until the next day.
Recurring payments support
Account abstraction will enable regular payments for a specific service at a specific time.
For example, you can allow your music streaming service to charge your account every month for a predefined amount.
Even after you die, account abstraction will continue to work for you, managing the distribution of your assets.
For example, you can define what happens if you do not interact with your account for 12 consecutive months. You can specify that your funds will automatically be transferred to various predefined accounts, each receiving a predetermined share.
Session keys support
You’ll be able to authorize dApps to perform a series of transactions with a time and/or amount limitation.
For example, if an on-chain crypto game requires multiple consents (signatures) in a short timeframe, it can ask for a session key. This means the user will longer have to explicitly sign new transactions as they progress, resulting in a much better user experience.
One of the key concerns in the crypto world is the risk of phishing scams. Account abstraction can help mitigate this threat by allowing you to authorize transfers only to a pre-approved list of addresses.
For instance, you could configure your Hodling account to only transfer funds to a select handful of third-party wallets or to interact only with specific dApps.
The exciting part is that this is just a partial list. As mentioned earlier, we can code any logic we want into the account smart contract. As such, we anticipate the introduction of more and more benefits as development progresses.
How is Starknet Pioneering the Development of Account Abstraction?
Starknet, a leading validity rollup on Ethereum, has made a strategic design choice by building the account abstraction mechanism directly into its protocol. This means that every account on Starknet inherently follows the account abstraction design paradigm.
Furthermore, interactions with contracts on the Starknet blockchain are only possible through an account smart contract.
It’s hard to overstate the impact of account abstraction on Starknet and the wider crypto world.
Account abstraction doesn’t simply enhance transaction security, it also dramatically improves the user experience. As we continue to see progress in this area, it’s becoming increasingly clear that account abstraction will be a key driver in the mass adoption of cryptocurrencies.
Looking ahead, we believe that smart contract wallets employing account abstraction represent the future of crypto wallets. Just as today nearly every mobile phone is a smartphone, we foresee a future where every crypto wallet will be a smart contract wallet.
Do you also want to try the leading Starknet smart contract wallet, taking account abstraction to uncharted territories? Download the Braavos wallet by clicking here.