Foresight News EN

Account Abstraction: The Holy Grail of adoption

Source

by Edwin Fernández Grau

Account Abstraction transforms the current all-in-one account system of cryptocurrencies where a small mistake can result in the loss of everything, to a future where accounts can be customized to meet the needs of individual users. It enables the creation of a safety net for self-custody and provides a much smoother user experience.

Ethereum Accounts

To appreciate the significance of account abstraction, it is crucial to understand the basics of Ethereum accounts. There are two types of entities in Ethereum:

Externally Owned Accounts (EOA) and Contract Accounts (CA).

Externally owned Ethereum accounts cost nothing to create, as they incur no storage requirements. They are simple accounts unassociated with data storage or code.

An EOA consists of a public and private key pair and is represented by an address generated from setting up the keys. The private key is used for signing transactions and gives the user control over their funds, but has limitations like only one key for authorization and control, leading to restrictions and limited customization. If the private key is lost or stolen, the account can be lost permanently.

Account Abstraction aims to eliminate the distinction between EOAs and CAs by unifying them into a single contract account. This account will be able to transact with tokens and create contracts, unifying both account types.

¡The problem!

Because your private key is your account, losing it means losing your account, and if someone else has it, they have control over your account and all the tokens it contains. Account Abstraction decouples the object holding your tokens (the account) from the object authorized to move these tokens (the signer) by turning accounts into smart contracts with their own logic to define a valid transaction.

This allows for customization and versatility, such as using different signing schemes, multiple keys to authorize transactions, or changing signers.

Smart Contract Wallets and Account Abstraction

Most wallets on Ethereum are Externally Owned Accounts, such as MetaMask, and they cannot be programmed to improve security or user experience. Smart contract wallets, on the other hand, can be programmed with custom code to authorize transactions and offer experiences not possible with native EOAs. With Account Abstraction, Ethereum moves from two types of accounts (EOAs and CAs) to just one, Contract Accounts, which can be customized to meet the needs of individual users.

Multicall

With the current system of Ethereum, making a new transaction for every on-chain interaction can be time-consuming and costly when gas fees are high. Account Abstraction introduces multicall, which allows for multiple transactions to be bundled into one and executed in a single atomic transaction, making it quicker, easier, and more secure.

Session keys

Account Abstraction enables session keys, which allows for the use of Dapps with the assurance that assets are protected by restrictions on what the Dapp can and cannot do with them. This maximizes ease of use while minimizing risk.

Delegable Accounts — AutoPayments

Visa is developing auto payment solutions that use AA to create a delegable account contract. This extends programmable validity rules for transactions with a pre-approved allow list, enabling Visa to delegate the user’s account to initiate a push payment to a pre-approved auto payment smart contract.

First, a merchant deploys an auto payment smart contract. When a user with a delegable account visits the merchant’s website, they will see a request to approve auto payments — similar to Visa acceptance for billers today.

Here, the user can see the actions that the auto payment contract will do in the user’s name. For example, it can only charge the user once per month, or it cannot charge more than a maximum amount. Crucially, because this is a smart contract, a user can be confident that the auto payment contract cannot execute in a way other than how it is written.

If the user agrees to approve auto payments, the wallet will add the auto payment contract’s address to the list of allowed contracts on the user’s delegable account.

Delegable Account Setup

The merchant website requests approval on the auto payment list and Alex adds it to the Delegable Account Smart Contract. The image displays the necessary conditions for the auto-payment smart contract to carry out the transaction.

Next, the merchant triggers a payment by calling the charge function of the auto payment contract. This leads to the user’s account making a valid push payment, as it’s in the user’s allow list. The token sees it as a standard push payment.