We've updated our Terms of Service. By continuing to use our services, you agree to the updated Terms.
blogs
Blog

Meta Transactions (ERC-2771) vs Account Abstraction (ERC-4337)

Srinjoy Chakraborty · April 10, 2024
Meta Transactions (ERC-2771) vs Account Abstraction (ERC-4337)

Managing gas fees is a critical part of creating efficient and user-friendly dApps. While necessary for network security and functionality, gas fees are a significant hurdle for many blockchain use cases. They complicate user interactions, add a literal financial barrier, and thus hinder adoption rates. Fortunately, the Ethereum community has introduced innovative standards to circumvent these problems:

  • ERC-2771 (Meta Transactions): With ERC-2771, Magic offers gas subsidy and NFT minting solutions, enabling users to interact with applications smoothly without worrying about the intricacies of gas fees. There is also no need to manage gas tank through a Magic subscription.
  • ERC-4337 (Account Abstraction): To provide a more robust and versatile service, Magic integrates with leading account abstraction providers such as Alchemy and Zerodev. This approach allows for the implementation of Paymaster contracts, which can also handle gas fees on behalf of users.

Magic provides a strong foundation for developers to incorporate these technologies into their projects. Choosing which solution works best for you hinges on matching your project's needs to the specific features that Magic supports.

With the introduction of these two token standards, the process of a user paying for gas can be accounted for in the following ways:

  • Using a third-party relayer that pays for the gas on behalf of the user (ERC-2771)
  • Using a smart contract called a paymaster to specify valid gas sponsorship (ERC-4337)

Let’s take a look at some of the benefits and downsides of each of these token standards so you can better understand which approach suits your needs.

#Meta Transactions (ERC-2771)

ERC-2771, or meta transactions, involve third-party “relayers” initiating transactions on behalf of a user. Platforms or applications can integrate with these third-party relayers to subsidize gas fees for their users.

Meta transaction architecture involves four main components:

  • Transaction Signer: Typically the end user. They will end up delegating payment to a third-party relay.
  • Gas Relay: An Ethereum account holding funds to sponsor gas fees. This relayer will receive a signed transaction, pay the gas fee, and then forward the transaction to a trusted forwarder.
  • Trusted Forwarder: A contract that validates the transaction data and ensures it's correctly relayed to the intended recipient contract.
  • Recipient Contract: The ultimate destination for the meta transaction, designed to accept and execute these transactions seamlessly.

#Key Advantages

  • Smooth user onboarding: With meta transactions, companies can sponsor gas payments so users can interact with their applications without ever having to fund a wallet. If you combine this with dedicated app wallets like those provided by Magic, you can create an authentication and onboarding experience that feels very similar to a traditional web app.
  • Simplifies user interactions: By enabling gasless transactions, you remove the need for users to worry about whether they have enough ETH for gas or the need to set appropriate gas limits while using your dApp.
  • Single vendor solution: The single point of contact, exemplified by providers such as Magic, simplifies Ethereum transactions by handling various aspects such as private keys and gas subsidies, making it unnecessary for users to manage these details. Instead of users having to navigate multiple interfaces or applications to execute transactions, they can rely on a unified interface provided by a meta transaction service provider like Magic. This setup could be termed as a 'single vendor' or 'all-in-one solution,' with emphasis on convenience.

#Key Considerations

  • Smart contract update: Meta transactions require that application smart contracts adhere to a certain standard and have allowlisted a specific wallet address for sponsoring transactions. This can complicate things for projects that have already deployed their smart contracts in a way that doesn’t allow for updates.
  • Vendor lock-in: Given that meta transactions require application smart contracts to specifically allowlist a vendor and not all smart contracts allow for updates, application developers may face challenges if they migrate to alternative solutions.

#Account Abstraction (ERC-4337)

ERC-4337 introduces account abstraction without any modifications to the core Ethereum protocol. This allows for the creation of smart contract accounts, which can be beneficial in a variety of ways. Specific to this discussion, it can allow smart contracts to cover transaction costs instead of users. It streamlines the transaction process without requiring any changes to an application’s smart contracts or infrastructure.

Account abstraction comprises four primary components and two optional components:

  • UserOperations: Pseudo-transaction objects generated by your application. These objects are effectively “transactions” for account abstraction.
  • Bundlers: Nodes that collect UserOperations from a mempool and transmit them to the EntryPoint contract on the blockchain.
  • EntryPoint: A singleton contract that manages the validation and execution processes for transactions.
  • Smart Accounts (Contract Accounts): Smart contract accounts owned by users, enabling interactions within the ERC-4337 ecosystem.
  • Paymasters (optional): Helper smart contracts capable of paying for transactions so that the end user doesn’t have to.
  • Aggregators (optional): Helper smart contracts that validate aggregated signatures from multiple Contract Accounts, providing additional security and efficiency to the system.

#Key Advantages

Account abstraction provides all the advantages of meta transactions with a few modifications and additions:

  • Composability and compatibility: The account abstraction specification is flexible and composable. It works with any end smart contract and its constituent components are modular and interchangeable. Account abstraction introduces:
    • Flexibility: Adapts to various use cases with its composable nature.
    • Universal Integration: Functions with any smart contract, providing broader compatibility.
    • Modular Components: Features interchangeable parts for easier customization and upgrades.
    • Dynamic Gas Management: Enables off-chain configuration of gas policies via platforms like Zerodev.
  • No smart contract updates: Account abstraction doesn’t require any changes to application smart contracts or infrastructure. Using account abstraction bypasses the need for creating new contracts or dealing with vendor-specific whitelist requirements, such as those seen with ERC-2771 implementations.
  • No vendor lock-in: The composability of account abstraction means developers don’t have to rely on any particular service. They can swap vendors for each component of the account abstraction spec or deploy their own. This ensures that developers retain full sovereignty over their smart contracts and payment mechanisms while mitigating reliance on external third-party services. It streamlines the initial setup process, making it more straightforward to integrate and launch with minimal hassle.

#Key Considerations

  • Complexity: For developers who aren't well-versed in the concept, grappling with account abstraction can be quite a challenge. This complexity might result in erroneous smart contract development, which raises the likelihood of vulnerabilities or security lapses.
  • Trust in paymaster contracts: Those who depend on ERC-4337 are essentially putting their trust in the proper operation of the paymaster smart contracts. If there are any bugs, vulnerabilities or downtime in these contracts, it could throw transactions off track and result in financial loss.
  • Recovery trust: In ERC-4337 wallet setups, users entrust their keys to chosen guardians for account recovery, offering a blend of convenience and backup. While this feature is vital for regaining access to one's account, it inherently poses security risks by granting guardians potential control over the account. Users must be careful and alert with this setup. Choosing guardians wisely is key to prevent security risks. Making the wrong choice could result in unauthorized access or losing control of your account, highlighting the need for trust and knowledge of their authority.

#Conclusion

Both Meta Transactions and Account Abstraction offer innovative ways to simplify transactions on Ethereum.

  • ERC-2771 allows users to interact with dApps without worrying about gas fees, thanks to third-party relayers.
  • ERC-4337 lets smart contracts (paymasters) cover transaction costs, removing the need for users to hold ETH.

They both represent significant advancements in simplifying transactions within the Ethereum ecosystem. By leveraging meta transactions or account abstraction, users and developers can unlock new possibilities for easier interactions with decentralized applications. Understanding the nuances of each standard allows developers to make informed decisions that align with their goals and priorities.

To learn more about how Magic fits in with these two token standards, take a look at the following resources to explore how it could be a suitable solution for your project:

ERC-2771:

ERC-4337:

Let's make some magic!
Meta Transactions (ERC-2771) vs Account Abstraction (ERC-4337)