ERC-4337 - It's all about Account Abstraction
ERC-4337: Account Abstraction Using Alt Mempool
An account abstraction proposal which completely avoids consensus-layer protocol changes, instead relying on higher-layer infrastructure.
Abstract: An account abstraction proposal which completely avoids the need for consensus-layer protocol changes. Instead of adding new protocol features and changing the bottom-layer transaction type, this proposal instead introduces a higher-layer pseudo-transaction object called a UserOperation
. Users send UserOperation
objects into a separate mempool. A special class of actor called bundlers package up a set of these objects into a transaction making a handleOps
call to a special contract, and that transaction then gets included in a block.
What ERC-4337 is about
ERC-4337 doesn't change the consensus layer of Ethereum. Instead, it creates a new mempool for something called userOperations
. userOperations
are objects that package up the user's intent along with signatures and other data for verification. Bundlers can then package up multiple userOperations
into a single transaction, which then gets included in an Ethereum block.
The key components of ERC-4337 are:
UserOperations
: Pseudo-transaction objects created by users that contain the sender account, calldata, signatures, and other metadata. UserOperations are sent to a new dedicated mempool.Bundlers
: Special actors that listen to the UserOperations mempool, package up multiple operations into a single transaction calling a handleOps function on the entry point contract, and get that transaction included in a block.EntryPoint
contract: A singleton contract that verifies UserOperations and dispatches them to the destination account contracts for execution. It acts as the "entry point" for all account abstracted transactions.Account
contracts: Smart contract based accounts owned by users that implement verification logic in a validateUserOp function. Account contracts have complete freedom in defining their own authentication schemes.Paymaster
contracts (optional): Contracts that can pay the gas fees on behalf of the user, enabling users to pay fees in ERC20 tokens or have fees subsidized by a 3rd party.
This architecture replicates much of the functionality of the normal transaction mempool at a higher level while keeping the core consensus layer of Ethereum unchanged.
Why it is important
ERC-4337 is a major step forward for account abstraction on Ethereum. Some of the key benefits:
- Improved user experience: Contract-based accounts with smart verification logic can provide significantly better UX with support for social recovery, multisig, spending limits, etc. Gas abstraction via paymasters also reduces onboarding friction.
- Decentralization: ERC-4337 achieves account abstraction without centralized control. Any bundler or block-builder can participate in the process of including UserOperations on-chain. The system assumes work happens over public mempools.
- Flexible authentication: Accounts have complete freedom in defining their own authentication logic, enabling cheaper signature schemes, hardware-based signing, quantum-safe schemes, etc.
- No consensus changes: By working within the existing protocol and relying solely on smart contracts, ERC-4337 can be adopted much more quickly and doesn't add complexity to Ethereum clients.
- Developer ecosystem: An account abstraction standard provides a unified interface for wallets and dapps to build user-friendly smart contract based accounts, kickstarting a vibrant developer ecosystem.
Overall, ERC-4337 maintains the security and decentralization aspect of Ethereum while drastically improving the user experience and capabilities of user accounts. It's a critical building block for mainstream adoption. Multiple new standards are already being introduced to take advantage of these capabilities and build new user experiences. EIP-7022 is one of the examples. It will introduce a new transaction type to enhance the security and functionality of EOAs.
Use cases
Some of the key use cases enabled by ERC-4337 include:
- Smart contract wallets / Smart Accounts: Contract accounts with sophisticated verification logic. What can you do with a Smart Account?
- Automated transactions - Recurring payments, conditional transfers
- Multi-signature authorization - Require multiple approvals for a transaction to increase security
- Delegated transactions - Allow a third party to execute transactions on your behalf under specific conditions
- Enhanced security - Implement complex security mechanisms such as time-locked transactions and withdrawal limits
- Interoperability - Interact seamlessly with decentralized applications (dApps) and decentralized finance (DeFi) protocols
- Custom logic - Create custom transaction rules and workflows that align with personal or business requirements.
- Sponsored transactions: Service providers can pay transaction fees on behalf of their users, similar to how web2 apps subsidize infrastructure costs. This greatly reduces onboarding friction.
- Paying fees in ERC20 tokens: Users can pay fees in stablecoins or other ERC20s instead of having to acquire ether. Apps can better optimize flows around their native token.
- Atomic multi-operations: Multiple transactions can be bundled together and executed atomically. Simplifies complex user flows.
- Trusted hardware support: Hardware wallets can directly sign and authenticate EVM operations. Allows more secure self-custody options for mainstream users.
- Privacy: Users can execute transactions without revealing their identity by relying on a paymaster or deploying a fresh smart contract account funded by privacy solutions.
By introducing these capabilities, ERC-4337 enables a new wave of user-friendly wallets and onboarding flows that will be critical for taking Ethereum mainstream. It preserves decentralization while making Ethereum much more accessible to end users.
Resources
- ERC-4337 - Official page
- ERC-4337 on GitHub
- www.erc4337.io - The official ERC-4337 website
- @erc4337 - Official Twitter account for ERC-4337 Account Abstraction