Composability Labs
Sprkfi
Published in
5 min readDec 7, 2023

--

Will Account Abstraction Bring Mass Adoption to the Blockchain Industry?

Historically, onboarding web2 users to web3 has been a challenge. All of us who have used DeFi or NFTs have a pretty good idea of how many steps it takes to get some ETH and USDC in our wallets to learn to interact safely with Aave, Uniswap, OpenSea, and other DApps, offering a user experience distinct from the login/password and ‘just a click away’ approach typical of gaming and web2 applications.

While some of this friction in web3 is just the price a user has to pay for self-custody and sovereignty, a lot of this friction also arises from the design choices made in the early days of Ethereum. In particular, the separation of Ethereum accounts into EOAs and smart contract accounts means that all users can do is store their private keys, remember a 12/24 word “seed phrase”, and use these with a relatively simple wallet like Metamask. We can illustrate this somewhat painful user journey as follows:

The Quest for a User-Friendly Blockchain Application:

After the DeFi summer of 2020, the adoption of DApps built using the ethereum virtual machine has accelerated exponentially, and mainstream adoption of web3 has become a realistic possibility. That means web3 is no longer something only developers or other technically sophisticated people use and increasingly, ordinary people, who need a far simpler and secure experience are coming onboard and demanding simplicity.

That means wallets need to be far more intelligent, and hide a lot more complexity than they do today. That is not possible with EOAs as EOAs by definition, can not embed any logic. For user accounts aka wallets to embed the level of intelligence that web2 front ends embed today, we need smart contract accounts. This in effect, is what we call “account abstraction” or AA.

Transaction validity criteria:

At its core, account abstraction allows developers to design transaction criteria. This means blockchain transactions can be adapted beyond the conventions of the Ethereum Virtual Machine (EVM), aptly termed “programmable transaction validity.”

On Ethereum, transactions follow specific guidelines like ensuring sufficient gas balance, the right nonce, and a legit digital signature. Account abstraction, however, lets developers outline their own transaction validity terms.

The evolution of Account Abstraction on Ethereum:

Account abstraction introduces a model where assets exclusively reside in smart contracts instead of externally-owned accounts (EOAs). This shift promises a user-centric, secure, and feature-rich experience.

Deciphering Account Abstraction:

Implemented via smart contracts, account abstraction represents users on blockchains through “smart accounts.” These accounts can have bespoke functionalities, such as unique spending rules. Users deploy these smart contracts to the blockchain and engage with them via wallet interfaces, which manage transaction intricacies.

In blockchains that support native account abstraction, such as some Ethereum layer 2s such as Fuel, Starknet, and Polygon Miden, assets are held by smart contracts exclusively, not by externally owned accounts (EOAs). This allows for a more flexible and user-friendly experience, as well as enhanced security and functionality.

How account abstraction works:

Account abstraction is implemented using smart contracts. A smart account is a smart contract that is specifically designed to represent a user’s account on a blockchain. Smart accounts can be programmed to implement any desired functionality, including custom rules for spending and transferring assets.

To use a smart account, users first need to deploy the smart contract to the blockchain. Once the smart contract is deployed, users can interact with it using a wallet interface. The wallet interface will handle the low-level details of signing and submitting transactions, while the smart contract will implement the custom functionality of the account.

Benefits of Account Abstraction :

Smart contract wallets can be programmed with a variety of security features, including:

  • No more reliance on private keys or the fear of misplacing a 12-word seed phrase. Implement any desired logic within the code to facilitate wallet fund restoration. Options include utilizing third-party services or predetermined users for access recovery. This mirrors the functionality of most banking apps.
  • Enhance wallet security without a seed phrase. Users have the option to activate two-factor authentication and biometric safeguards such as fingerprint or facial recognition.
  • Enable automated payments on a set schedule and establish spending caps for defined durations.
  • Experience gas-free transactions. Decentralized apps can bear transaction costs, enticing more users to their platform.
  • Multi-signature authorization: Requiring multiple signatures to authorize transactions, such as from a mobile device and a hardware wallet, or from multiple trusted family members.
  • Account freezing: Locking the account from another authorized device if a device is lost or compromised.
  • Account recovery: Allowing pre-approved accounts to authorize new devices and reset access in case of a lost device or forgotten password.
  • Transaction limits: Setting daily, weekly, or monthly limits on the amount of value that can be transferred from the account.
  • Whitelists: Only allowing transactions to certain known addresses. This would require multiple signatures to change, so that an attacker could not add their own address to the list without access to several of your backup keys.
  • Security: define own flexible security rules.
  • Pay someone else’s gas, or have someone else pay yours
  • Batch transactions: batch transactions together (e.g. approve and execute a swap in one go)
  • Innovation: more opportunities for dapps and wallet developers to innovate on user experiences.

Account Abstraction in Action:

Several initiatives are working towards standardising account abstraction across blockchains:

The following layer 2s have implemented account abstraction:

Fuel: Fuel’s implementation of account abstraction is based on the use of predicates, which are scripts defining the conditions under which tokens can be spent. This allows for the creation of a wide variety of new and innovative types of accounts, such as multisig wallets, escrow accounts, and timed release accounts.

Arbitrum Nova: Arbitrum Nova’s implementation of account abstraction is based on the use of Geth, the Ethereum Go client. This allows Arbitrum Nova to provide a native account abstraction experience that is seamless for Ethereum users.

Optimism:Optimism’s implementation of account abstraction is also based on the use of Geth. This allows Optimism to provide a native account abstraction experience that is seamless for Ethereum users.

Other notable projects in this domain are StarkNet, Immutable X, and Polygon zkEVM.

These projects are all in different stages of development, but they all have the potential to revolutionise the way we interact with blockchains.

In summary, Account abstraction is poised to reshape the UX of Web3 applications, making them more adaptable and secure By enhancing flexibility, security, and user-friendliness, account abstraction is poised to be the catalyst for mass adoption of Web3.

--

--

Composability Labs
Sprkfi
Editor for

Building on Sway, contributing to Sway Community growth