81 days ago
Beyond the Basics: Account Abstraction 101
Account Abstraction is key-nd of a big deal!
It’s no secret that the current UX and onboarding is difficult in most web3 apps. We can’t onboard the first billion people to web3 if we are relying on users paying for gas and never losing their private keys.
This is where Account Abstraction comes in. Imagine a world where you can:
Recover your funds if you lose your private key
Interact with web3 apps without needing to purchase crypto or pay for gas
Have others manage your funds based on rules that you define straight from your wallet
All of this is what Account Abstraction promises to do, and this is why many people believe it will be the next big thing for Ethereum and make web3 apps more usable for mainstream users.
Why haven’t today’s wallets adopted Account Abstraction?
In order to answer this questions, we must first understand that there are 2 different types of accounts on Ethereum:
- Externally Owned Accounts- EOAs
- Smart Contract Accounts- SCs
Externally Owned Accounts
EOAs (e.g. MetaMask & Ledger) are commonly used to interact with blockchains, and are controlled by a private key linked to a specific address. They’re free to generate and can be reused on all EVM chains with the same address, providing a natural interoperability layer for web3.
If your credit cards get lost or stolen, there’s a process you can go through to regain access to your money. However, if you lose the keys to your EOA your funds are gone forever, as there’s no way to restore access without giving someone your private keys beforehand.
Because of these difficulties with EOAs, you also can’t delegate the execution of transactions to third parties. This makes many use cases like letting third parties pay for your transaction fees difficult to implement. Additionally, EOAs have an extremely poor & clunky UX that can be difficult to navigate for most users.
Smart Contract Accounts
SCs (e.g. Safe) are controlled by code instead of a private key. Think of them like digital locks that you can program however you want. This flexibility enables exciting use cases such as social recovery (being able to login to your wallet with Google, Facebook, etc.), delegating the execution of transactions to third parties, and more.
SCs are a major upgrade to the current web3 experience, enabling you to:
- Interact with blockchains without paying for gas
- Automate the movement of your funds without giving custody of your assets to someone else
So why is Account Abstraction still not the default option in web3?
SCs have been around for a while but they’re just one piece of the puzzle. Though they allow you to program arbitrary logic into them, they’re still limited as you require external entities to run computation and EOAs to initiate transactions from off-chain.
In order to leverage their true potential, SCs need access to an off-chain network that will run the computation and execute transactions on behalf of the user, enabling web3 apps to fully abstract away the complexities of interacting with blockchains.
How is Gelato implementing Account Abstraction?
SCs + Gelato = Account Abstraction!
Using Gelato Automate devs can have users automatically interact with their apps to buy an NFT if the floor price drops below a certain value, for example. Devs can also use Gelato Relay to enable users to interact with their apps by sponsoring transactions on their behalf– so users never need to worry about paying gas!
Learn more about Account Abstraction
If you’re interested in learning more about Account Abstraction and how this is possible, check out Vitalik Buterin’s guide to Account Abstraction & EIP-4337 (the Ethereum Improvement Proposal that talks about Account Abstraction).