In the evolving ecosystem of blockchain, the goal of achieving mass adoption of cryptocurrencies has remained elusive. For years, experts have called for cryptocurrencies to become a common part of everyday transactions, replacing cash and traditional banks with a more efficient and sovereign form of transacting. It has been suggested that we would reach these initial stages of mass adoption around 2030 once there are one billionĀ cryptocurrency users worldwide, leading to greater acceptance of cryptocurrencies as a substitute for fiat currency and an exponential increase in the use of blockchain by businesses. However, despite the excitement and growing interest we have witnessed in recent years, a significant obstacle has impeded widespread adoption: the complex and sometimes poor nature of the crypto user experience.
Navigating the world of crypto often feels like a labyrinth for the average person. First of all, users need to create a wallet, write down seed phrases, and keep them safe. Then, once they’ve figured out how to send and receive tokens, users would soon run into the problem of understanding gas fees to make sure they aren’t over/underpaying, replacing nonces, utilizing different networks, smart contract security, and a host of other concepts needed to interact with blockchains in a secure and efficient manner. These are not just minor inconveniences but formidable obstacles that intimidate many users. Perhaps the most daunting of all is the unforgiving nature of crypto wallets – a single mistake in self-custody or interacting with the wrong smart contract can mean the irreversible loss of assets, with no hope of recovery. This leads to most users opting to keep their assets on centralized exchanges, which comes with its own risks as the control of the assets lies with the exchange and not the user (remember FTX?).
What is desperately needed is a significant change in the user experience. This is where account abstraction comes into play. By reimagining and simplifying the user experience, account abstraction (AA) promises to directly address these issues. Through implementing incremental improvements in UX, a complete overhaul of how users interact with blockchains can be achieved. This includes benefits such as having recoverable wallets, changeable security rules, the ability to pay gas using tokens other than the native gas token, and more.
How Does Account Abstraction Work?
Generally in smart contract enabled blockchains there are two types of wallet addresses.
- Externally Owned Accounts: These are standard accounts that are used by individuals and controlled by private keys generated using a seed phrase. EOAās have a few defining characteristics:
- Requires users to always keep a gas token balance
- Can initiate transactions
- Cannot batch transactions
- Transactions between accounts can only be token transfers
- Zero cost to create an account
- Made up of a cryptographic pair of public and private keys that control the accounts activities
- Smart Contract Accounts: A smart contract deployed on the network that is controlled by code.
- Creating a smart contract account has a cost for deployment as they are stored on the network
- Transactions from an externally owned account to a smart contract account triggers code which can execute different actions, such as transferring tokens or even creating a new smart contract
- Do not have private keys. Smart contract accounts are controlled by the logic of the smart contract code
Today, users currently interact with smart contract blockchains using EOA’s (Externally Owned Accounts) as the only way to start a transaction or execute smart contract code. However, this approach has limitations. It makes it difficult to batch transactions, introduces security risks associated with private keys, and requires users to maintain a balance of gas tokens.
To address these issues, a solution is to transform the standard wallet of users into smart contract accounts, also known as smart wallets. These smart wallets would be responsible for storing assets and enable more complex logic that enables new forms of transactions on said assets. While the assets would be stored within the smart contract, the signing key of an EOA would still be required as the initial signer of a transaction. In essence, the signing key would grant permission to the smart contract to carry out its actions.
In summary, the defining characteristic of smart wallets is their ability to incorporate logic and be mutable. This enables them to perform complex operations, such as changing signing keys, without altering the wallet address. Now, let’s delve deeper into the technical details of how this functionality is achieved.
Smart Wallets
The underlying technology that enables smart wallets has come in the form of numerous EIP proposals on Ethereum. It is generally made up of three basic proposals, although more AA standards exist.
- EIP-1271: Provides a standardized method of smart contracts to sign other smart contracts. Smart contracts do not have private keys, which made this EIP essential in paving the way for account abstraction.
- EIP-2771: Defines a contract level protocol for smart contracts to accept meta-transactions, which allows contracts to accept calls from accounts that do not have tokens to pay for gas. Essentially, it allows for gas to be paid by a third party called the gas relay.
- EIP-4337: Instead of adding new protocol features on the main layer of the network, EIP-4337 creates an account abstraction layer that can be built on top of Ethereum to enable smart wallet creation without changing the core of the protocol. EIP-4337 creates a smart contract standard which sends user transactions into a separate mempool, where transactions get bundled together before being submitted to the final Ethereum layer. The ābundlersā who perform this service are able to take a fee, presenting an opportunity for MEV on the network. Below is an illustration of how this works.
All together these proposals form the basic functionalities of smart wallets on Ethereum. This leads to an unlimited number of possibilities such as:
- Social recovery: In the past losing your seed phrase meant the total loss of your assets. With account abstraction however, it is possible to set up āguardiansā to recover your assets. When setting up a smart contract wallet, the signing key is required to initiate transactions and execute code. During wallet setup, other wallets or trusted individuals can be chosen to recover the wallet. If access to the wallet is lost, the majority of the guardians can sign a transaction which would change the signing key, granting access once more. This can be customized in any number of ways, including using your own hardware wallets as guardians, 3/5 multi-sig recovery, or a cloud based encryption key recovery. This means that users do not have to know their seed phrase anymore.
- 2FA: Smart wallets can use two-factor authentication (2FA) for transactions. This can be done through a standard multisig setup or by using an oracle service for SMS or email 2FA. 2FA can be applied to all transactions or customized based on specific criteria, such as requiring 2FA for transactions above a certain threshold, batched transactions, or for specific dApps. Implementing 2FA also helps detect fraud, as users receive 2FA requests when someone else accesses their wallet.
- Spending limits: Smart wallets allow for flexible control of transaction parameters. This includes the ability to set spending limits on a wallet, such as daily, weekly, or monthly caps. Different signers can be assigned specific roles, such as requiring approval from a higher-up for transactions involving enterprise wallets. Additionally, payroll can be paid once a month by utilizing spending limits.
- Batched transactions: Smart wallets can execute multiple transactions in one batch, allowing for time or event driven delays in transaction submission. This enables features like automatic subscription payments and automatic yield harvesting from DeFi protocols. Batched transactions are cost-effective as they bundle multiple operations into a single on-chain transaction, reducing the required space on the chain.
- Custom signature schemes: ERC-4337 enables the use of custom signature schemes, including quantum-resistant signatures. This allows for the utilization of signatures from a mobile phone’s secure element, like face ID or a fingerprint scanner, effectively turning it into a hardware wallet. This is important as the current standard of ECDSA signatures used in blockchains may become outdated with advances in quantum computing, and it also makes the process of signing more efficient and secure.
- Gas abstraction: EIP-2771 and 4337 introduce two UX improvements for gas payments. Firstly, it allows others to pay gas fees on behalf of users. This means dApps can cover fees or one user can pay for another’s gas fees. Secondly, these EIPs enable gas to be paid in non-ETH fees, reducing the need for constant wallet top-ups of ETH. This is especially beneficial during high-fee environments, as users may prefer to spend stablecoins instead of ETH for fees.
- Session keys: To enhance user experience, dApps can reduce the number of clicks needed for actions by using account abstraction. Session keys enable automatic transaction signing, reducing the need for manual signing during a session. Users can also set a spending limit to determine which tokens are automatically signed, eliminating manual signing for every interaction with the chain. This feature protects against potential exploits after the user logs off. Session keys also greatly benefit Web3 games, making them more enjoyable as users no longer have to repeatedly sign transactions during a gaming session.
Examples of Smart Wallets
There are many smart wallets available, and their numbers are increasing every day. With ongoing innovations, I believe these wallets will become the norm. Here are two wallets that I have personally tried:
- Argent is a user-friendly smart wallet built on Ethereum Layer 2’s, Starknet and ZKSync. It offers social recovery features, fiat onboarding, and seamless integration with popular dApps such as Yearn, Compound, and Aave. Argent also supports ETH staking, Uniswap integration, and has partnered with Index Coop to enable easy investment in multiple crypto indexes.
- Ambire is an advanced smart wallet offering various features such as gas abstraction, batched transactions, and account recovery models. It provides a detailed dashboard that displays your portfolio and DeFi positions, and informs you about transaction effects before signing. Ambire also offers network abstraction, allowing you to use a single wallet address across networks without the need to switch networks during transactions.
If you’re interested in trying a smart wallet, I recommend these two options. It truly offers a unique experience.
Building a smart wallet has also become easier than ever. Companies like Biconomy and Stackup offer the capability and infrastructure to add account abstraction with custom features to your own dApp or wallet. As account abstraction becomes simpler and more users use smart wallets, the overall experience will continue to improve. This improved user experience is important for driving widespread crypto adoption towards the goal of reaching 1 billion users.
Even Block has recognized the importance of improving the user experience in the crypto space. Recently, they announced the Bitkey hardware BTC wallet. While Bitkey doesn’t technically utilize account abstraction like a smart contract blockchain would, Block has managed to implement spending limits and social recovery features for Bitcoin users.
Conclusion
Account abstraction has the potential to revolutionize the user experience and enhance the adoption of cryptocurrencies and blockchain technology. By separating the functionality and behavior of accounts from their underlying implementation, account abstraction enables the creation of smart wallets that offer improved security, recoverability, and flexibility. Users can enjoy benefits such as gas abstraction, batched transactions, session keys, and mutable custom signature schemes. These advancements simplify the user experience while eliminating the need for complex processes, and enhancing security. With the development of smart wallets and the growing number of projects embracing account abstraction, we are one step closer to achieving the goal of 1 billion crypto users and widespread adoption of cryptocurrencies.