User Experience & Account Abstraction

User Experience & Account Abstraction
💡
TL;DR
Ethereum is updating its account system to better support the growing complexity and user demands of decentralized apps and smart contracts. Currently, Ethereum users navigate between two types of accounts: Externally Owned Accounts, controlled by individuals through private keys, and Contract Accounts, managed by smart contract codes. This setup, while functional, has its drawbacks, such as the risk of losing assets if private keys are lost and the inability to batch transactions or delegate gas fee payments.

To address these issues, Ethereum is working on Account Abstraction (AA), which aims to combine the ease of use of Externally Owned Accounts with the advanced capabilities of Contract Accounts. This integration is designed to simplify user interactions with the blockchain, allowing for more intuitive features like biometric logins, automatic payments, and simplified transaction processes.

The implementation of AA is a complex task, requiring careful consideration to maintain network security and stability. Despite the challenges, this development represents a significant step in Ethereum's evolution, aiming to enhance user experience and accessibility, which is essential for Ethereum's broader adoption in the blockchain and Web3 ecosystems.

Ethereum is continuously enhancing its core technology to support more advanced and complex decentralized applications (dApps) and smart contracts being deployed on its platform. Solutions like sharding, rollups, and the upcoming Merge upgrade are addressing critical performance and scalability needs to handle increased on-chain activity. However, as Ethereum moves towards mass adoption, improving the overall user experience becomes equally vital for smoothly onboarding the next billion users into the world of Web3.

The Current State of Ethereum Accounts

There are two main types of accounts native to Ethereum:

  • Externally Owned Accounts (EOAs) and Contract Accounts. EOAs are controlled by private keys and behave like typical cryptocurrency wallets.
  • Contract Accounts are governed by smart contract code and enable the advanced logic of dApps. But this dichotomy poses UX challenges.

EOAs rely entirely on private keys for control. Losing access to keys means permanently losing access to the account and any assets it holds, with no recovery method available.

Heavy dApps such as games, social platforms, and content sharing platforms need the ability to frequently automate reading and writing data to/from the blockchain. But this becomes very difficult to coordinate since only EOAs can initiate and sign transactions. Even if a dApp implements workarounds, user experience or security often suffers.

Additionally, EOAs must hold ETH to pay for gas fees on every transaction sent from that account. So contracts and other accounts can't cover gas costs on a user's behalf. And transactions cannot be batched together - users must make multiple individual transactions and pay gas fees each time. For example, bridging or swapping tokens requires a separate approval transaction and a subsequent sending transaction, each with their own gas cost.

The Promise of Account Abstraction

Account Abstraction (AA) aims to resolve these UX limitations by merging the simplicity of EOAs with the advanced functionality of Contract Accounts into a unified account system. This would empower users with far more versatile tools.

Some key benefits of AA include:

  • Login with biometrics instead of keys
  • Schedule automatic recurring payments
  • Execute multiple conditional actions in one transaction
  • Batch transactions to save on gas fees
  • Build in social recovery methods through trusted contacts
  • Integrate blockchain payments into traditional websites
  • Access sophisticated smart contract features without coding expertise
  • Restore access via friends/family if keys are lost
  • Customize account security settings, limits, and requirements
  • etc

With AA, accounts would not just hold funds, but act intelligently like a Contract Account while remaining easy to use like an EOA. This concept represents a significant step forward in Ethereum's evolution.

Overcoming Integration Challenges

Implementing something as fundamental as AA within Ethereum's intricate ecosystem is highly complex. It's akin to introducing a new primitive without disrupting any existing dApps or smart contracts built on Ethereum. Previous attempts like EIP-86 have run into challenges and obstacles. Protocol developers need to tread carefully to balance enabling new user-friendly features while preserving overall network security and reliability.

EIP-4337 - A Promising Implementation Method

EIP-4337 demonstrates a promising approach to integrating AA by leveraging smart contracts instead of requiring core protocol changes. It implements a separate off-chain mempool to process user operations - packaged messages containing necessary signature and intent data. This eliminates the need for users to individually sign and send each transaction.

Network actors called Bundler Services then batch user operations into unified transactions that get published to the main Ethereum chain. Specific validations ensure user operations pay fees before getting added to bundles. This structure allows emulating Account Abstraction at the application layer without risking Ethereum's base stability.

The Mechanics of ERC-4337

Under ERC-4337, transactions undergo a more complex journey than the standard EOA transaction. Here’s how it unfolds:

  1. UserOperations: Users express their transaction intent through UserOperations instead of traditional transactions. These are then signed for authentication.
  2. UserOperation Mempool: These UserOperations are submitted to a specialized mempool, a dedicated holding area distinct from Ethereum’s standard transaction mempool.
  3. Bundlers: Specialized actors called Bundlers monitor this UserOperation Mempool. They assemble and bundle these UserOperations to be sent to the blockchain efficiently.
  4. EntryPoint Contract: This contract coordinates the bundled UserOperations. It’s a central piece in the AA infrastructure, managing the operations and ensuring everything is in order.
  5. Paymasters: Optional smart contract accounts that can cover transaction fees. They can sponsor fees for Contract Accounts, allowing for more user-friendly transaction experiences, such as paying gas fees in ERC-20 tokens or stablecoins.

The Paymaster System

The Paymaster system is particularly interesting as it can significantly enhance the user experience on Ethereum. For example, Visa has experimented with Paymaster contracts on Ethereum’s testnet to explore new user experiences.

Paying with ERC-20 Tokens

One of the Paymaster contracts Visa experimented with allows users to pay transaction fees with ERC-20 tokens. Instead of needing ETH to pay gas fees, users can use a dollar stablecoin or any ERC-20 token they own. This mimics real-world currency conversion services and allows for just-in-time funding, optimizing cash-flow management for the user.

Sponsoring Transaction Fees

Another experimental Paymaster contract takes on the cost of transaction fees, creating a free transaction experience for users. This approach can significantly reduce friction and potentially drive user adoption, as it resembles the feeless P2P transactions familiar to users in the Web 2.0 world.

The Significance of ERC-4337

With ERC-4337, Ethereum is not just refining the transaction process; it’s reimagining the potential of blockchain payments. This standard is critical for smart contract wallets, which are becoming increasingly popular for holding and transacting digital currencies. It simplifies wallet management, enhances security with alternative signature verification methods, and streamlines dApp usage.

Looking Forward

ERC-4337 lays the groundwork for more accessible and user-friendly blockchain interactions. The Ethereum community is just beginning to explore the possibilities this new standard introduces. The infrastructure is still developing, and as it matures, we can expect an enriched set of options that cater to diverse user needs in digital payments.

Visa’s engagement in AA and ERC-4337 is a testament to the evolving intersection between traditional finance and blockchain technology. It indicates a strong belief in the future of programmable payments and the role they can play in everyday financial transactions.

Testing Account Abstraction on Layer 2 Platforms

Layer 2 solutions like StarkNet and zkSync are also emerging as valuable testing grounds for Account Abstraction. Their enhanced scalability and lower operational costs accommodate experimentation. If successful on Layer 2, AA could potentially be ported back and implemented as a standard Ethereum feature.

Conclusion

Implementing robust account abstraction remains pivotal for onboarding mainstream users and enabling intuitive Web3 experiences. Ethereum has made strides with application-level abstractions like EIP-4377 but is still limited by original architectural decisions.

As blockchain technology continues maturing, deeper protocol-level abstraction represents the optimal evolutionary path for enhancing user experience. Adaptability will be key for Ethereum and other chains to reach their disruptive potential. Overall, account abstraction stands as a critical milestone on the road to mass adoption.