Account abstraction (AA) is a fascinating concept that addresses many functional needs self-custody crypto users face in the real world. If you lose your private keys, how do you recover your assets? Pro tip: you don’t. If you pass away and didn’t specify to your loved ones how to access your hard-earned crypto, then effectively your crypto just passed away with you.
We love the “self-sovereign” ethos of DeFi, but these are real issues that will encumber crypto adoption for the broader population.
Account Abstraction solves this.
With a little bit of planning we can now insert safety nets into our asset management and streamline certain processes. Before explaining how it works, here are some of the major issues that AA can solve for DeFi:
- Social recovery: with AA you can provide associate keys with an account and can give one key to a service, for example a signer and guardian key. If you lose the signer key, you can reach out to the service, prove who you are, and they can sign a transaction that creates a new signer key. You can have an unlimited number of guardian keys and give them to whoever you want.
- This has application for things like wills too. For example, if a user dies and is the only one with his private key that account is usually lost forever. With AA it’s possible for it to be accessed and contents distributed.
- Fraud prevention: per the social-recovery scenario, you can also share dual-key info beforehand with a trusted service. This service will not have custody of your funds but can deny or alert you about transactions that seem suspicious. If you get hacked and someone tries to drain your account, the trusted third party can intervene.
- You can do a sequence of transactions at once (multi-call): eg when a trader uses a Dapp they need to first do an approval transaction and then their transaction trade afterwards, separately. These can be consolidated into one transaction with AA.
- Payment abstraction: Allows for different approaches to payment for transactions. For example, payment by another party or contract for your transaction.
- Privacy solutions wouldn’t need “relayers”: Eg when you withdraw from Tornado to a fresh wallet. The proof verification would be moved into authorization logic and so would the fee payment.
Here’s how AA makes these scenarios a reality.
For this explanation to make the most sense, you should understand how cryptographic signing of transactions works and what private and public keys are. If you don’t, give the previous link a read then come right back!
Account Abstraction is the decoupling of the link between account and signer. The way DeFi transactions currently work requires you to sign each individual transaction you make onchain. This signing is done from your wallet (aka an externally owned account, or EOA). Each EOA has a private and public key pair, and the transaction's signing is generated from that account's private key.
The EOA only has one way to authorize a transaction: an ECDSA signature (technical term for private-key signature). AA takes the EOA and allows it to operate like the contract account (the smart contract). This lets you facilitate transactions in multiple ways.
Instead of only from an EOA, a transaction with AA could start from accounts with other kinds of authorization policies, like multisigs, ZK-SNARKs, or other cryptographic requirements. It doesn’t have to only be the ECDSA signature.
With AA, the EOA can be managed the same way a smart contract can, and run by the same authorization logic as a smart contract. The rules for how the smart contract operates are determined by the chain’s runtime environment (in the case of Ethereum this is known as the Ethereum Virtual Machine, or EVM). You’re essentially expanding the authorization logic from just the private-public key pair signature to the rules permitted by the smart contract environment.
AA turns your EOA into a smart contract stored onchain and has other ways to verify transactions using alternatives to a single private key. This added flexibility and usability is sorely needed for crypto adoption to become a standard for regular users.
The current landscape for AA offerings is strong, but fairly limited in selection. Both Optimistic and ZK rollups can be designed with account abstraction built in, and currently Optimism, ZKsync, and Starknet offer them in the L2 space. The two notable wallets that have implemented social recovery are Argent wallet and Loopring wallet. StarkNet is the most advanced implementation of AA to date, utilizing “account contracts” to interact with the L2 network and provide all the benefits discussed in here.
There is a bit of a trust assumption being made with some account abstraction concepts (eg you must trust who you give your guardian key too). But it’s a welcome progressive step to maintaining the self-custodied, sovereign ethos of crypto while allowing for more real-world scenarios to be accounted for.
Follow at @BackTheBunny
Check out another one of our popular posts --> Investment Go Up > Number Go Up. How to Assess Dilution and Impermanent Loss