Modular Smart Contract Account Architecture and Challenges

ยท

Introduction

The shift from Externally Owned Accounts (EOA) to Smart Contract Accounts (SCA) is gaining momentum, embraced by enthusiasts like Vitalik Buterin. Despite the excitement, SCA adoption faces challenges such as bear markets, migration concerns, signing issues, gas overheads, and engineering difficulties.

Modular Account Abstraction (Modular AA) emerges as a solution, separating smart accounts from their custom functions to create a modular, secure, and interoperable structure. This article explores:

  1. What Modular Account Abstraction is.
  2. How accounts interact with modules.
  3. The sequence of calling modules.
  4. Open discovery and verification of modules.

A Brief Review of Account Abstraction

SCA Landscape

Traditional EOAs introduce challenges like seed phrases, gas fees, and cross-chain complexities. Account Abstraction leverages smart contract accounts for programmable validation and execution, improving user experience (e.g., gas abstraction, session keys), cost efficiency (e.g., batched transactions), and security (e.g., social recovery, multi-sig).

Current Approaches to AA

  1. Protocol Layer: Native AA support in protocols like ZKsync and Starknet.
  2. Contract Layer: ERC-4337 enables AA on Ethereum and L2s without consensus-layer changes. Projects like Stackup, Alchemy, and Safe are building infrastructure.

๐Ÿ‘‰ Learn more about AA and ERC-4337


The Dilemma of SCA Adoption

Despite discussions since 2015, SCA adoption lags due to:

  1. Bear Market Impact: Educated EOA users dominate, reducing incentives for dApps/wallets.
  2. Migration Obstacles: Secure asset migration from EOAs remains challenging.
  3. Signing Issues: SCAs lack private keys, complicating message signing.
  4. Gas Overheads: Higher deployment and execution costs deter adoption.
  5. Engineering Difficulties: Fragmented standards and integration hurdles.

This article focuses on engineering challenges and Modular AA as a solution.


Modular Smart Contract Account Architecture

Modular AA addresses:

  1. Fragmentation: Standardized interfaces prevent vendor lock-in.
  2. Security: Independent audits mitigate risks.
  3. Upgradability: Reusable cores and proxy contracts enable seamless updates.

Key Components

  1. Proxy Contracts: Delegates calls to logic contracts for upgradability.
  2. Modules: Plugins, hooks, and validators customize functionality.

Modular Structures in Practice

Safe Architecture

  1. Proxy Account: Delegates calls to a singleton contract.
  2. Modules: Plugins, hooks, and handlers enable composability.

๐Ÿ‘‰ Explore Safeโ€™s modular design

ERC-2535 Diamond Proxies

  1. Diamond Proxy: Calls multiple stateless facets.
  2. Flexibility: Dynamic upgrades via diamondCut.

Comparison

FeatureSafe ArchitectureDiamond Proxies
UpgradabilitySingleton redeployDirect diamondCut
SecurityCentralized logicRisk of collisions
Cost EfficiencyHighVariable

Modules Sequence: Validation, Execution, and Hooks

ERC-6900 standardizes:

  1. Validation: Authenticates transactions.
  2. Execution: Custom logic (e.g., payments).
  3. Hooks: Pre/post-execution checks.

Example flow:

  1. Validate โ†’ Execute โ†’ Hook.
  2. Standardization reduces ecosystem fragmentation.

Modules Discovery and Security

Safe{Core} Protocol

  1. Registries: App stores for verifiable modules.
  2. Attestations: Auditors verify security.

Rhinestone Design

  1. Schema-Based Modules: Custom logic via resolvers.
  2. Decentralized Attestations: Cross-chain verification.

Closing Thoughts

Modular SCAs unlock:

  1. Developer Freedom: Focus on UX, not maintenance.
  2. User Customization: Easy upgrades and module swaps.

Challenges remain:

The future hinges on L2 support, robust bundlers, and intent-based transactions.


FAQs

1. What is Modular Account Abstraction?

Modular AA separates smart accounts from their functions, enabling customizable, secure, and interoperable wallets.

2. How do proxy contracts work?

Proxy contracts delegate calls to logic contracts, enabling upgradability without redeployment.

3. Whatโ€™s the role of ERC-6900?

It standardizes module interfaces (validation, execution, hooks) to reduce fragmentation.

4. How are modules discovered?

Registries (e.g., Safe{Core}) act as app stores for audited modules.

5. Can modules be upgraded?

Yes, via proxy mechanisms like diamondCut (Diamond) or singleton redeploys (Safe).

๐Ÿ‘‰ Discover advanced modular solutions