1 of 21

Account Abstraction

Making accounts smarter

Yoav Weiss

Ethereum Foundation

Dror Tirosh

OpenGSN

Liraz Siri

OpenGSN

2 of 21

What is Account Abstraction

3 of 21

Accounts in Ethereum

  • Externally Owned Account (EOA) - controlled by an ECDSA key
  • Smart Contract - controlled by code

Your current wallet is probably an EOA

4 of 21

The limitations of EOAs - key management is hard

  • Tightly coupled with a single key
  • Hard to secure - keys get stolen
  • Hard to recover - keys get lost

5 of 21

The limitations of EOAs - access control

  • No access control granularity - same for all EOAs
  • No multisig
  • No roles
  • No spending policies

6 of 21

The limitations of EOAs - gas payment

  • Gas is paid directly by the EOA
  • Must maintain ETH balance to pay gas
  • No privacy

7 of 21

The limitations of EOAs - efficiency & usability

  • No way to batch operations
    • approve+transferFrom - two transactions
  • Expensive on-chain reverts

8 of 21

Smart Contract account managed by the user

What is account abstraction?

  • Flexible key management and recovery
  • Arbitrary access control mechanisms
  • Gas payment can be abstracted
  • Better efficiency and usability
  • Opportunity to innovate where it matters most: UX

9 of 21

Use cases: recovery

  • Social recovery
  • Dead man’s switch

10 of 21

Use cases: signature abstraction

  • Multisig
  • Per-device keys
  • BLS aggregation
  • Quantum resistant signatures

11 of 21

Use cases: roles & policies

  • Spending limits
    • Small payments? Seamless from your wallet.
    • Sending $1M? Go get your ledger.
  • Multiple roles, delegating specific actions.
    • Payroll can pay employees once a month, with a spending limit and a signature from the controller.
    • Legal can perform on-chain votes with the company’s tokens, but can’t transfer them.
    • CFO can transfer any sum with 24 hours delay and a signature from another C-level executive.
    • External auditor monitors delayed payments and can veto them, but can’t initiate transfers.
  • Session keys
    • Ephemeral key kept in the browser can perform less-sensitive operations.

12 of 21

Use cases: gas abstraction

  • Gas sponsorship models
  • Pay gas with ERC20 tokens
  • Privacy - interacting with the blockchain without buying ETH
  • Cross-chain operations

13 of 21

Use cases: batching & automation

  • Batching and atomicity
  • Automating time-delayed and event-driven flows

14 of 21

ERC 4337 - why make it a standard?

15 of 21

ERC-4337 - first step toward protocol level Account Abstraction

  • Shared mempool for arbitrary contract wallets
    • A single network of bundlers can serve everyone
  • Make contract-wallets a 1st class citizen
    • No need to keep an additional EOA funded to use the wallet
  • Separate validation from execution
    • Enables efficient block-building and prevents DoS attacks
  • Efficient batching and aggregation
    • Makes rollups cheaper
  • No protocol changes
    • Start experimenting now on any EVM chain

16 of 21

What’s next?

  • Enshrine AA into the protocol without enshrining a particular wallet
  • Seamlessly convert existing EOAs to smart contracts
  • User can choose the implementation and enjoy new AA features
  • Default implementation should emulate an EOA
    • Backward compatible with existing wallets
  • Can be achieved in a few ways - still in discussion
    • New transaction type for calling account code - account pays gas
    • New transaction type just for setting account code
    • EIP-3074+EIP-5003 (AUTH+AUTHUSURP)
    • Set default proxy contract for all addresses

17 of 21

How do I join the AA revolution?

18 of 21

Build wallets

  • Start experimenting with ERC-4337
  • Add useful features like batching and key recovery
    • Try some ideas from the first part of this presentation
  • Innovate: build cool new features that were not possible with EOAs
  • Building a cool ERC-4337 project? Consider applying for an EF grant!

19 of 21

Building a DApp? Consider AA implications

  • Consider contract wallets a 1st class citizen
  • Do not assume that accounts can sign messages directly
    • Use ERC-1271 to check for signatures if the caller has code
  • Start supporting batching in your UI when connected to a contract wallet that supports it
  • Consider gas sponsorship models that suit your DApp.
    • Got a token? Your users could pay gas with it when using your dapp.
  • Collaborate with wallet devs on ways to improve DApp UX through wallet innovation

20 of 21

Where can I learn more?

21 of 21

Thank you!

Yoav Weiss

Ethereum Foundation

yoav@ethereum.org

@yoavw

Dror Tirosh

OpenGSN

dror@opengsn.org

Liraz Siri

OpenGSN

liraz@opengsn.org

@drortirosh

@lirazsiri