Exploring zkEVM: A Scaling Solution for Ethereum

In recent years, the blockchain and cryptocurrency spaces have achieved tremendous growth and innovation with the emergence of various use cases and applications. However, with the development of blockchain technology, scalability issues have emerged as the number of users has soared. Blockchain technology’s potential has become more apparent, from the CryptoKitties craze in 2017 to DeFi Summer in 2020 and NFT Boom in 2021, but this growth has led to high gas costs and low throughput, making it a big challenge to popularization.

One of the best ways to solve this scalability problem is to utilize zero knowledge proof(ZKP). ZKP means that you can prove whether the information is true or not without exposing your information to the other person. Based on this concept, ZK-rollup, a layer 2 scaling solution, has emerged. Recently, a zero knowledge Ethereum Virtual Machine (zkEVM) using ZK-rollup has been developed.

zkEVM is a solution that leverages ZKP to improve the scalability of the blockchain. To understand this, it is important to understand the concept of ZK-rollup first.

Zero Knowledge Rollup (ZK-rollup)

zk-rollup is a layer 2 scaling solution that aims to increase the throughput of Ethereum transactions by processing them off-chain while ensuring on-chain security. It achieves this by bundling multiple transactions together and generating a single proof for the entire batch. There are two main components of a zk-rollup:

ZK-rollup components

  • Operator: The operator is responsible for collecting and aggregating user transactions into a single batch. They also facilitate the processing of these transactions in the off-chain VM and submit the generated validity proofs and new state root to the on-chain smart contract.
  • Off-chain Virtual Machine (VM): The off-chain VM is responsible for executing the bundled transactions in a manner similar to the Ethereum Virtual Machine (EVM). It processes smart contracts and performs necessary state transitions off-chain to reduce on-chain computation requirements. Additionally, the off-chain VM generates the validity proofs for the batched transactions.
  • On-chain Smart Contract: This component serves as a bridge between the off-chain VM and the main Ethereum network. It receives the aggregated transactions, along with their validity proofs, and verifies them before updating the on-chain state. This ensures that only valid transactions are recorded on the blockchain.

EVM Compatibility of ZK-rollup

zk-rollup provides significant advantages in terms of scalability and security; however, it faces some limitations in achieving full EVM compatibility. The primary reason for this limited compatibility is the complexity of generating zero-knowledge proofs for aggregated transactions. Certain EVM operations, especially those involving dynamic data structures, loops, or intricate arithmetic, may not be easily incorporated into efficient zero-knowledge proof circuits.

As a result, zk-rollup may encounter difficulties in supporting all the features and functionalities of the EVM seamlessly. This constraint could limit the range of smart contracts and dApps that can be effectively deployed and executed using zk-rollup.

To overcome these limitations and enhance EVM compatibility, zkEVM was proposed as an extension of zk-rollup.

zkEVM

 

zkEVM is an extension of zk-rollup that seeks to enhance the EVM compatibility of zk-rollup by creating an off-chain execution environment for EVM-compatible smart contracts. In zkEVM, the off-chain virtual machine (VM) is designed to execute EVM bytecode directly, allowing for seamless integration with existing Ethereum smart contracts and dApps.

Like ZK-rollup, zkEVM aggregates multiple transactions into a single batch and processes them off-chain. The off-chain VM is responsible for executing the batched transactions, generating validity proofs, and updating the off-chain state. The validity proofs are then submitted to an on-chain smart contract for verification, and if validated, the on-chain state is updated accordingly.

zkEVM components

To achieve EVM compatibility and scalability, zkEVM utilizes an off-chain execution environment for processing transactions. This off-chain environment is composed of three main components: the execution environment, the proving circuit, and the verifier contract.

  1. The execution environment

    The execution environment in zkEVM is designed to execute EVM bytecode directly, allowing for seamless integration with existing Ethereum smart contracts and dApps. This environment consists of a set of pre-compiled circuits that can execute a wide range of EVM bytecode operations efficiently. When a new transaction is submitted, the execution environment processes it and updates the off-chain state accordingly.

  2. The proving circuit

    After processing the transaction in the execution environment, the proving circuit generates a validity proof for the entire batch of transactions. The proof attests to the validity and consistency of the off-chain state resulting from the execution of the transactions. The proving circuit uses zero-knowledge proofs, which allows for efficient and secure validation without the need to reveal transaction details.

  3. The verifier contract

    The validity proof generated by the proving circuit is submitted to the on-chain verifier contract for verification. The verifier contract checks the proof’s validity and consistency with the current on-chain state before updating the on-chain state with the new state root. The verifier contract ensures that only valid transactions are recorded on the Ethereum network.

Advantages of zkEVM

zkEVM offers several advantages over other scaling solutions on the Ethereum network, such as:

  1. Secure Scalability

    zkEVM provides secure scalability by allowing off-chain transaction processing without sacrificing on-chain security. The use of zero-knowledge proofs ensures that only valid transactions are recorded on the Ethereum network, maintaining the network’s security and integrity.

  2. Cheaper Costs

    zkEVM significantly reduces transaction costs by processing transactions off-chain. The off-chain processing significantly reduces gas fees, making it more affordable for users to participate in the Ethereum network. Additionally, the use of zero-knowledge proofs reduces the computational overhead and gas costs associated with verifying transactions.

  3. Fast Finality and Capital Efficiency

    zkEVM offers fast finality for transactions, with the off-chain processing enabling faster confirmation times. This increased speed makes zkEVM ideal for high-frequency trading and other applications where fast confirmation times are critical. Additionally, zkEVM allows for capital efficiency by reducing the need for users to hold large amounts of ETH or other tokens to pay for gas fees.

  4. Network Effects

    By providing EVM compatibility, zkEVM offers significant network effects by enabling seamless integration with existing Ethereum smart contracts and dApps. This integration makes it easier for developers to create and deploy new applications and services on the Ethereum network, further expanding its ecosystem.

Drawbacks of zkEVM

While zkEVM offers several advantages over other scaling solutions on the Ethereum network, it also has some drawbacks that should be considered. Some of the main drawbacks of zkEVM include:

  1. Opcode codes

    Due to the unique architecture of zkEVM, not all EVM opcodes can be supported. Some of the less commonly used opcodes may not be compatible with zkEVM, limiting the functionality of some smart contracts and dApps.

  2. Stack-based architecture

    The EVM is designed as a stack-based machine, which can be challenging to implement efficiently in zero-knowledge proof circuits. This limitation can lead to higher proving costs and slower transaction processing times.

  3. Storage overhead

    As with any off-chain solution, zkEVM requires additional storage space to store off-chain state. This storage overhead can be significant and may require additional resources to maintain and scale effectively.

  4. Proving costs

    While the use of zero-knowledge proofs offers several benefits, it also comes with some costs. Generating and verifying zero-knowledge proofs can be computationally intensive and can significantly increase the transaction processing times and gas costs associated with zkEVM.

These limitations can affect the functionality and efficiency of zkEVM. Recently, many projects are trying to solve these shortcomings.

zkEVM Projects

  1. Polygon zkEVM

    Polygon has focused on optimizing opcode codes by designing custom opcodes specific to their zkEVM implementation. These custom opcodes are tailored to reduce the complexity of circuits, resulting in more efficient proving and verification processes. Additionally, Polygon is working on improving the stack-based architecture by introducing intermediate state representations to reduce the stack’s depth, which can lead to more efficient circuit designs and lower proving costs.

  2. zkSync

    zkSync has developed a unique approach to address the storage overhead issue by utilizing a technique called “sparse Merkle trees.” This allows for more efficient storage of account and contract data, as well as quicker updates to the state. To tackle the proving cost challenge, zkSync is also investing in research and development of more efficient proof generation algorithms, which can potentially reduce the time and resources required for generating proofs.

  3. Scroll

    Scroll is primarily focused on privacy and addresses the storage overhead issue by implementing a privacy-preserving storage mechanism that leverages zero-knowledge proofs. This allows for the efficient storage of data while maintaining privacy. To tackle the opcode codes and stack-based architecture challenges, Scroll is working on optimizing its zkEVM implementation by designing specialized circuits and adopting innovative techniques to reduce the complexity of the overall system.

  4. Applied ZKP

    Applied ZKP is a project dedicated to researching and implementing practical applications of knowledge proof technologies, including zkEVM. Applied ZKP uses two validations: state proof and EVM proof to separate compute and storage and to link them using bus mapping. In addition, Applied ZKP is developing new algorithms, tools, and libraries to improve the efficiency of opcode code, simplify stack-based architecture, reduce storage overhead and lower attestation costs.

Conclusion

As previously discussed, zkEVM is one of the promising solutions that can address the scalability issues faced by the Ethereum network. Although zkEVM is still in the development stage, it has great potential to not only transform the Ethereum ecosystem but also bring about the mass adoption of blockchain technology. In particular, the synergy is expected to be tremendous when combined with Layer 1 solution, sharding.

If you are planning a business using blockchain technology, consult with an expert!

To receive industry trends and product/event updates in real-time, subscribe to our newsletter!

Why P2E Games and Blockchain Technology are a Perfect Match

Intro

Recently, games that combine P2E (Play-to-Earn) features and blockchain technology have become popular, causing a significant shift in the gaming industry. Through P2E games, players can trade in-game assets and currency for real money efficiently and reliably. In this article, we will explore why P2E games and blockchain technology are a perfect combination for the gaming industry, as well as the risks and limitations associated with implementing blockchain in games, and lastly the potential solutions to hedge the risk. By reading this article, you will gain a better understanding of the potential of P2E games and blockchain technology, and be able to establish new business models and strategies in the gaming industry.

What is P2E game?

Definition of P2E and Differences from the conventional games

P2E games, or Play-to-Earn games, refer to games where players can earn real money by playing. Players can receive in-game assets as a reward for participating in the game, and this can be traded into real value asset later. Typically, most of these games utilize blockchain technology to prove ownership of in-game assets, as well as to transfer and trade them.

In P2E games, players can receive digital assets as a reward for completing various actions and missions. These rewards, in the form of tokens or NFTs (Non-Fungible Tokens), are implemented through blockchain technology. These tokens or NFTs can be exchanged for other cryptocurrencies or traditional currencies, allowing players to monetize their in-game assets.

Ultimately, P2E games offer not only an enjoyable gaming experience, but also the potential to generate income while playing. Similarly, providing tokens and NFTs to pre-registered users before the game’s launch can be an effective way to attract users, while it can save the advertising or publishing costs. The benefits that can be obtained through tokens created with blockchain technology are very extensive.

If you want to create a new business model using blockchain technology,

Request a consultation on related topics.

A brief look at P2E game examples

  • Axie Infinity: This game, released by Vietnamese tech company Sky Mavis in 2018, is one of the most successful P2E games. In Axie Infinity, players collect, breed, and raise fantasy creatures called Axies and engage in battles. While playing the game, players can acquire tokens (cryptocurrencies) called AXS (Axie Infinity Shards) and SLP (Smooth Love Potion), which can be traded for other cryptocurrencies or used within the game ecosystem.
  • Decentraland: Decentraland is a virtual reality platform based on the Ethereum blockchain network, launched in 2017. On the platform, players can create, explore, and trade virtual assets. The platform has a basic cryptocurrency called MANA, which players can use to purchase digital assets such as virtual land, wearables, and in-game items. MANA can also be exchanged for cash or used within the Decentraland ecosystem.

What is Blockchain?

Blockchain technology is a digital, decentralized, and secure system for storing and sharing information across the entire computer network. Transactions or records are stored in blocks that are linked together in chronological order to form a chain. This is where the name Blockchain came from. The decentralized nature of blockchain proves that a single institution or organization does not control the information. Rather, it relies on a network of computers, known as nodes, to maintain and update the digital ledger. This allows for a more transparent and secure transaction that is protected against fraud and tampering. Blockchain technology has many applications beyond cryptocurrencies, including supply chain management, digital identity (DID), and decentralized finance (DeFi), as well as social media (SNS) and games (P2E).

Key Functions and Advantages of Blockchain

  • Value Creation Using Tokens/Coins Tokens or coins are digital assets that represent value and can be used within a specific blockchain ecosystem. Tokens can be used as an exchange medium for goods and services, and can also grant access to specific content or locations by including utility features within the token. Non-fungible tokens (NFTs) can be used to record and store ownership of real estate, art, digital assets, and more. Companies can create tokens to establish an economic system. Tokens derive their value based on factors such as user demand, utility, token scarcity, and market preference. How these factors are controlled and managed can be crucial to raising significant funds, so it is important to collaborate with blockchain experts or tokenomics specialists.

  • Smart Contracts

    A smart contract is a self-executing contract that runs on a blockchain. Unlike traditional contracts, smart contracts are made up of codes that are automatically enforced between parties based on predetermined terms and conditions. Smart contracts follow this process:

    1. Agreement: Two or more parties agree to the terms and conditions of a transaction or contract.
    2. Code: The contract is translated into computer code that includes the rules, conditions, and results of the transaction.
    3. Deployment: The code is deployed on the blockchain, making it safe, transparent, and tamper-proof.
    4. Execution: When the conditions specified in the code are met, the smart contract automatically executes the agreed-upon action, such as a fund transfer, release of digital assets, or updating records.
  • Distributed Ledger A distributed ledger is a shared and decentralized database that is managed across a network of nodes rather than being stored on a single centralized server. In other words, blockchain technology allows for a distributed ledger where transactions are safely stored and updated across multiple nodes (computers), enhancing transparency, trust, and security.

Why P2E games and blockchain technology create a perfect harmony

Improved security and transparency through player ownership

Many users who first learn about P2E may not be familiar with the blockchain technology. Users who enjoyed traditional online games may have thought they owned in-game items or assets (game currency), but in reality, they did not. Game developers or publishers could control the server hosting the game, and game operators also could manipulate the game economy after the launch. Similarly, there have been cases where users’ acquired items or currency were rolled back due to DB management or server issues. Additionally, players often use third-party websites to trade in-game items and currency, which can lead to many cases of fraud.

However, with blockchain technology, these problems can be resolved using transaction technology. All transaction information is recorded within a block, so it cannot be modified or deleted. Through this function, users can view all transaction histories equally, and enjoy the game while being aware that transactions cannot be changed or deleted. In this process, game users begin to trust that the game economy is fair and that their assets are secure.

In P2E games where blockchain technology is highly implemented, NFTs carry the player’s information, providing true ownership of in-game assets. NFTs implemented with blockchain technology cannot be replicated or altered, which means users can play the game and make transactions based on their ownership without fear of fraud or manipulation.

Generating revenue and securing loyal customers with tokens and NFTs

P2E games enable players to earn profits directly by utilizing tokens (coins) and NFTs, which help them secure their loyal customers. Tokens are digital assets used as a form of utility in the game. In P2E games, tokens are used to trade in-game assets, receive services or upgrades within the game. Furthermore, players can acquire tokens by completing specific missions or tasks, participating in tournaments (PvP), or contributing to the game ecosystem.

NFTs have a different concept from tokens (fungible tokens). NFTs can be seen as unique digital assets that represent ownership of in-game items or goods. Rare items such as weapons, armor, and land acquired in-game can be made into NFTs, which can be traded on marketplaces such as OpenSea and Rarible because they were created using blockchain technology.

By introducing tokens and NFTs into the game, game developers can create new revenue streams and encourage players to spend more time in the game. For example, players will try to acquire tokens by completing in-game quests, using them to upgrade in-game items and registering upgraded items (NFTs) on external markets to monetize them.

This cyclical system encourages game users to become loyal customers by providing various ways to enjoy the game while earning the profits. Similarly, players will invest more time and money into the game ecosystem in order to acquire tokens and NFTs, increasing the likelihood of contributing to the game community.

Challenges and Risks of Implementing Blockchain in Games

While blockchain technology brings many benefits to the gaming industry, there are also several potential issues and risks to consider. Here are some of the main challenges:

Regulatory Issues

Using blockchain technology in the gaming industry can lead to such issues as money laundering, fraud, and consumer protection. Therefore, it is important to carefully check the regulations of governments and related agencies in each country before proceeding with the business. In some countries, P2E games may not be registered on the Play Store or App Store due to regulatory issues.

In particular, 2023 is known as the “year of regulation” in the blockchain industry, so both business operators and investors need to keep up with the industry trends and the regulatory status, preparing them in advance.

Technical Barriers

While everyone agrees on the transparency, high security, and added value creation through tokens and NFTs that blockchain offers, blockchain technology has high entry barriers for development. Since it is an emerging technology, there are a few experts, so finding them takes a lot of time and cost. and requires hiring experts, which takes a lot of time and cost. Many companies are still hesitant to adopt blockchain because they have not yet developed strategies to safely and efficiently build blockchain infrastructure such as the mainnet and smart contract development, as well as maintaining the value of tokens and NFTs.

Solutions

There are several ways to address these issues and risks and operate a successful business. First, to eliminate regulatory risk, it is recommended to partner with blockchain experts or specialized companies. Choosing a partner who not only has blockchain technology expertise but also knows the legal aspects and has references is important. Second, to overcome infrastructure development and technical limitations, it is recommended to use services such as BaaS (Blockchain as a Service). For example, Luniverse by Lambda256 allows users to create a chain (network) with just a few clicks on the console, create and distribute tokens and NFTs as desired without gas fees, and operate and manage them with various APIs provided.

With the NOVA update, Luniverse will provide node services and multi-chain APIs. Users can now operate important nodes for maintaining and operating blockchain networks with just a few clicks. This allows DAaps, including P2E games, to easily secure data and stability with fewer resources. In addition, game developers or DAap developers can provide greater flexibility and interoperability by connecting to multiple blockchain networks such as Ethereum and Polygon through multi-chain APIs.

Conclusion

P2E (Play to Earn) games are a relatively new and rapidly developing field in the gaming industry. As mentioned above, P2E games have clear and diverse advantages, but there are also challenges that must be overcome, such as regulations and technical limitations.

Since P2E games include a model of generating revenue within the game, there is a risk of players feeling like they are working instead of playing. As with many existing games, if game content feels like a chore or task, users will leave.

Similarly, if developers focus too much on technology and economic systems, game quality may suffer. If a lot of resources are spent on creating tokens and NFTs with blockchain technology and integrating them with existing systems, developers may naturally neglect the development of the game’s core story and content.

Ultimately, it is important for business operators to choose a stable blockchain service that can be operated with minimal time and cost, allowing them to focus on better decision-making.

If you are planning a business using blockchain technology, consult with an expert!

To receive industry trends and product/event updates in real-time, subscribe to our newsletter!

Announcing the Official Launch of Luniverse Nova – Get Early Bird Benefits Now!

📍 ABOUT EVENT

Introducing Luniverse NOVA – the most reliable web3 development platform supporting public chains like Polygon and Ethereum!

To celebrate the launch of Luniverse’s public chain expansion support version, we are hosting a special event for our community. Experience the new features of the NOVA version and get a chance to receive USDC and exclusive NFTs only for early bird users.

It’s simple to participate – just sign up for a Luniverse console account and create a node! Don’t miss out on this exciting opportunity.  Join now and be a part of the future with Luniverse NOVA!

📍 PROMOTION 1

Sign up Luniverse NOVA and create node to win USDC in 3 mins! Experience the new version of Luniverse now. 

  • Event Period: March 31st – June 30th
  • How to participate
    • Sign up – Log in to the console and go to “My Page – Promotion”
    • Enter the exclusive promotion code 
  • Promotion Code: qqiv-fxho-9bzf-1eaf
  • Prizes: Create Node to be eligible for winning 1st-3rd place, Sign up for 5 USDC
    • 1st place – 1000 USDC (1 winner)
    • 2nd place – 500 USDC (2 winners)
    • 3rd place – 100 USDC (5 winners)
    • All participants who entered the promotion code – 5 USDC (500 winners)
    • The reward will be distributed to the winner’s wallet address within 4 weeks after the promotion period

📍 PROMOTION 2

Get early bird membership NFT for Luniverse NOVA Discount! We are giving away the exclusive membership NFT during the first 3 months of launch. 

  • Event Period: March 31st – June 30th
  • How to Participate
    • Sign up for the console and enter the promotion code (along with your METAMASK wallet address)
  • Promotion Code: qcqo-fnpq-h2uk-6x8e
  • Reward (for 500 winners)
    • Lunie NFT, which grants future NOVA discount coupons
      • Early access when Nova Polygon version is launched(TBA)
      • Discounts on future Nova product usage fees (distributed in coupon form – announcement planned for April)
      • Early access to future Luniverse marketing campaigns
    • Airdrop schedule: Airdrops will be made in May!

ℹ️ HOW TO SIGN UP

STEP 1. Sign up for Luniverse Console, and click [My page-Promotion] on the right top of the console. 

STEP 2. Fill out the 16 digit promotion code (promotion 1 – 000000/ promotion 2 – 0000000 ) in the box 

STEP 3. Fill out your wallet address (the wallet should support Polygon network) and checkbox of the promotion privacy policy. Click [Submit] to complete the promotion. 

ℹ️ HOW TO CREATE NODE

STEP 1. Click [Nodes] on the left menu bar. 

STEP 2. Click [+Create Node] button. 

STEP 3. Select the blockchain network for your development environment. 

STEP 4. Fill out the information and click [Create]. 

STEP 5. You will see [Running] on the Nodes page. Congratulations! You’ve successfully created your first node on Luniverse NOVA. 

📍 Event Guideline

  • Limit one (1) entry per person during the Promotion Period. Duplicate entries by a single participant will be disqualified.
  • To be eligible, participant must provide all information requested on the entry form. Participants who submitted invalid information won’t be eligible for the event promotion.
  • If you have any questions related to the event, please feel free to contact us through the Luniverse Discord Community or via email at support@lambda256.io.
  •  Promotion Privacy Policy

If you have any question regarding the promotion or product, join us on Discord and let us know!

Tech Talk: Understanding AA (Account Abstraction) and ERC-4337

Intro

At the ETHDenver 2023 event held earlier this month in the United States, a new Ethereum update was unveiled. Among the updates, the ERC-4337 standard for Account Abstraction received much attention, as it is expected to overcome the limitations of the existing Ethereum account system and enable convenient and scalable feature implementations.

In this post, we will explore what Account Abstraction is and how it can be utilized for various use cases in the future.

Why did AA (Account Abstraction) emerge?

AA (Account Abstraction) is a technology that abstracts the concept of accounts in Ethereum by unifying it into a single idea at the higher layer of the protocol to overcome the functional constraints imposed by the type of account. To understand the motivation of AA, we need to know the characteristics of “accounts” in the Ethereum protocol first.

“Account” is a concept used to identify entities that trade assets and perform smart contracts in the Ethereum protocol. Accounts are classified into EOA(Externally Owned Accounts) or CA(Contract Accounts). EOA is a type of user account that can sign and execute transactions with a private key that controls the account’s address. Therefore, the account can send its assets to other EOAs or call smart contracts. We usually manage accounts through wallet applications like MetaMask to hold assets (i.e., cryptocurrencies or NFTs), and these are all EOAs. On the other hand, CA is an account assigned to smart contracts deployed on the blockchain. Therefore, it is mainly used to distinguish a specific smart contract. Since CA does not have a bound private key, it cannot sign or issue transactions independently. It can only do on-chain execution of embedded codes triggered by receiving transactions issued by other EOAs or by being called from other contracts. In summary, there have been constraints for each type of account; EOA can create and execute transactions but cannot execute on-chain code by itself, while CA can execute embedded on-chain code but cannot create transactions by itself.

account abstraction_image

These constraints by each account’s original function have caused a lot of inconvenience for users. For CA, it was impossible to create a new transaction or deploy a contract (via deploying transaction). Therefore, a separate transaction processing through EOA was always required, which even required paying double the gas fee.

What about EOA? The secure storage of private keys required to use EOA has been identified as one of the biggest obstacle for the mass adoption of blockchain. Reports have shown that about 20% of Bitcoin assets got abandoned due to the loss of private keys by EOA owners, indicating that managing private keys is very cumbersome. Additionally, when the transaction from EOA requires any specific business logic, such as the limitation of transfer amount or destination allowlisting/blocklisting, it was impossible to implement them as on-chain functionalities. Therefore, supplementing this with an of—chain system was essential, which required much effort to implement trustworthy wallets or payment services.

AA is a concept that has emerged to solve these problems. By abstracting accounts and implementing them as smart contracts, AA eliminates all the constraints mentioned above and makes it possible to execute embedded on-chain functions and issue transactions. Thus, implementing AA aims to minimize the inconvenience of account management and increase the scalability of Ethereum applications.

Basic Processing Structure of AA by ERC-4337

Although AA was first proposed in EIP-2938, it was not adopted because it involved modifications of the Ethereum protocol. Nevertheless, when EIP-4337 was proposed later, it eventually became the stand ERC-4337. Unlike EIP-2938, it did not require any modifications to the Ethereum consensus, and instead, it used an “account contract” to enable the abstraction of EOA and CA on the application layer. This implementation was possible because the account contract acted as the intermediary layer between the application layer and the Ethereum blockchain, allowing the abstraction of account types without requiring changes to the underlying consensus protocol.

Basic Idea: Introducing a concept of User Operation, a pseudo-transaction.

ERC-4337 provides the account abstraction through a new layer that resembles the protocol processing that occurs in Ethereum’s consensus layer. To explain it, ERC-4337 achieved the idea of an integrated account by implementing a pseudo-transaction-processing mechanism on the application layer, which functions like a consensus layer; nodes gather transactions from accounts into their mempool and suggest a block containing the high-fee transactions. In the abstract layer, a new actor called “Bundler” appears instead of the node. Anyone in the Ethereum network can participate as a Bundler, reflecting Ethereum’s philosophy of pursuing decentralized transaction processing. In the new layer, users create “User Operations” that contain valid signatures instead of transactions, and transmit them through a specific RPC endpoint. User Operations are composed of data structures such as sender, to, calldata, maxFeePerGas, masPriorityFee, signature, and nonce, just like transactions.

FieldTypeDescription
senderaddressThe account that created the User Operation (This is a deterministic account contract address; subsequent verification and execution of User Operations are requested through this address.)
nonceuint256anti-replay parameter; also used as a salt for initial account creation
initCodebytesinitCode for account creation, which is used to create a new account if it doesn’t exist
callDatabytesExecution data used in the main execution call
callGasLimituint256Amount of gas allocated for the main execution call
verificationGasLimituint256Amount of gas allocated for verification
preVerificationGasuint256Amount of gas to be paid as compensation to the bundler who processed pre-verification execution and callData
maxFeePerGasuint256https://eips.ethereum.org/EIPS/eip-1559 max_fee_per_gas
maxPriorityFeePerGasuint256https://eips.ethereum.org/EIPS/eip-1559 max_priority_fee_per_gas
paymasterAddressPaymaster address that pays the transaction fee (If the address is 0, the fee is paid directly)
paymasterDatabytesAdditional data to be sent to the paymaster
signaturebytesData transmitted to the account along with the nonce during the verification step

Bundlers collect the User Operations in their User Operation Mempool and bundle the high-fee User Operations into a Bundle Transaction. Then, it passes the Bundle Transaction to the EntryPoint contract by calling its functions so that it can verify and process it.

User Operation Processing on EntryPoint Contract

Now we need rules to verify and execute User Operations. The EntryPoint contract is a smart contract that implements common logic for verifying and processing User Operations. It exists as a standard singleton contract throughout the entire Ethereum network because of its reliability. Its reliability is critical because it includes the standard process of AAs. The EntryPoint contract acts as a protocol for AA to handle the things that happen at the consensus layer, like transaction validation and block generation. The only difference is that it is implemented as a programmable application, a smart contract. Among the various interfaces supported by the EntryPoint contract, the simulateValidation(UserOperation upserOp) and handleOps(UserOperation[] ops, address beneficiary) functions are core functions for User Operation processing.

  • The simulateValidation function is called when a Bundler wants to verify the signature and the possibility of paying fee for the User Operations collected in the Mempool. This is very similar to how a node verifies the nonce, content, and signature of a transaction according to the protocol. Bundler can minimize unnecessary gas consumption caused by failures due to incorrectly requested User Operations through this verification.
  • Once the verification is complete, the User Operations are bundled into a Bundle Transaction and passed to the EntryPoint through the handleOps function. Subsequently, final verification and execution are completed through the two important loops within the EntryPoint, a verification loop and an execution loop.

Processing delegation to the account contract

Most parts of the two loops mentioned above are processed by the account contract of the User Operation’s sender, not by the EntryPoint contract itself. In other words, the EntryPoint contract acts as a proxy that receives and processes Bundle Transactions at the front-end. Then, the actual execution of the User Operation is carried out by invoking the implementation of the account contract.

  • In the verification loop, the User Operation is passed to the validateUserOp(UserOperation userOp, bytes32 userOpHash, uint256 missingAccountFunds) function implemented in the account contract, where it is verified according to the defined logic.
  • In the execution loop, the account contract is called through the calldata included in the User Operation, and various custom functions are executed based on the implementation of the account contract.

Finally, any remaining gas from the pre-paid gas is refunded, and the processing of the User Operation is completed. If you have followed so far, you should now have an understanding of how the concept of ‘accounts’ in ERC-4337 has been extended to allow the creation of transactions (User Operations) and execution of on-chain logic.

 

Extension: Aggregator and Paymaster

In addition to the primary account abstraction process, ERC-4337 includes several extension concepts for the convenience of implementation. These are the Aggregator contract  and the Paymaster contract. In the case of these two extension concepts, they can be optionally used by accounts and users during AA processing.

Aggregate Signature and Aggregator

The first extension concept, Aggregator, is an external helper contract that the account contract trusts, providing “Aggregate Signature verification” functionality to the EntryPoint contract and the account contract for the convenience of implementation. As we reviewed the basic process earlier, the Bundler called the simulateValidation function of the EntryPoint for every single User Operation to verify its validity. Then, EntryPoint is also remembered to perform the validateUserOp function on the account contract repeatedly. Although this is a very intuitive way of verification, it may seem inefficient since they are always bundled. The concept to improve this is the Aggregate Signature.

Aggregate Signature is a technique that uses signature techniques such as BLS to construct and verify a single signature structure by bundling multiple messages signed with individual keys. The Aggregator refers to a contract that helps verify the signature at the Bundle level instead of the individual User Operation level by generating an AggregateSignature for multiple User Operations and verifying the generated signature again. The contract must provide the aggregateSignature(UserOperation[] ops) and validateSignature(UserOperation[] ops, bytes signature) functions and can be used by account contracts deemed safe in their implementation. To do this, the account contract should return the address of allowed Aggregator contract from the getAggregator() function call.

EntryPoint can interact with Aggregator as follows:

  • First, if the account is using Aggregator, the EntryPoint contract returns the ValidationResultWithAggregator object instead of the ValidationResult object when simulateValidation function is called by the Bundler.
  • Bundler firstly checks whether the account is using Aggregator or not, then performs signature verification during the subsequent verification process. In Aggregator case, it calls the handleAggregatedOps function of EntryPoint instead of the handleOps function to delegate the signature verification to the Aggregator instead of the account contract.

Paymaster

If you have ever operated or used a blockchain-based application, you may have experienced the inconvenience of transaction fee processing. For example, when trying to use an application based on a specific ERC20 token in the Ethereum environment and issuing a transaction from EOA, you have to purchase and charge Ethereum separately for the gas fees for transaction processing. Users had to endure such inconvenience because transaction processing fees were only paid with the Native token in EVM-based chains.

The Paymaster contract, the second extension concept of ERC-4337, is a custom payment agency contract that allows DApp providers to pay gas fees for those using their services or process fees with ERC20 tokens. Applications based on AA can implement flexible and scalable services by utilizing the Paymaster contract.

The Paymaster contract interacts with EntryPoint as follows:

  • If the paymaster field exists in the User Operation structure, this request is considered as an operation that must be processed through a specific Paymaster. At the point where the validationOp of the account contract is performed in the validation loop of the EntryPoint, the verification of this request is partially delegated to the address of this field. The function called at this time in the Paymaster is validatePaymasterOp(UserOperation op), which corresponds to the standard spec.
  • The Paymaster contract checks the account that requested payment first and then verifies balances to return a decision if it pays for the account or not. Accordingly, after the execution loop ends, the EntryPoint contract calls the postOp(PostOpMode mode, bytes calldata context, uint256 actualGasCost) function of this Paymaster contract to request payment of the fee.

 

Then, what can we do with AA?

To summarize what we have looked at so far, using AA, we can now implement the following new scenarios.

  • By defining an account as a contract, we can issue transactions without the management of private keys.
  • By defining an account as a contract, we can define and execute custom on-chain code within the account.
  • With the account contract, general smart contracts can issue transactions now. This allows the implementation of features such as batch processing transactions or atomic actions, which can save fees.
  • We can use Paymaster functionality to delegate transaction fees.

Ultimately, we hope that these changes will improve the usability for users, leading to the expansion of the Web3 ecosystem. With the elimination of the constraints of account-based implementation, on-chain implementation of applications with various scenarios becomes possible, such as:

  • Multi-sig functionality requiring signatures from a specific number of people for token transfers, or account recovery using this functionality.
  • Asset transfer or transaction creation functionality using multi-factor authentication.
  • Periods of fee-free services using Paymaster, processing gas fees through payment with tangible values, and transaction processing systems based on specific ERC20 tokens.
  • Various account access restriction functionalities, such as allowing/blocking accounts that can send tokens from my account, specifying transfer limits, or limiting token movement for a certain period.

Despite the downturn in the crypto market, various Web3 products are being released for the population of blockchain. Support for AA on the Ethereum mainnet is expected to be a great opportunity for the development of the Web3 market in terms of both usability improvement and scalability for applications. Especially wallet services that have not been attractive to Web2 users due to usability issues are expected to expand through the utilization of AA, supporting various payment methods, social account recovery, and account authentication using Web2 infrastructure.

Conclusion

In this post, we have summarized the recently implemented AA(Account Abstraction) function, what kind of technology it is, and what changes it will bring about. The Luniverse team, which is implementing node services and various APIs for public chains, is also quickly reviewing related technologies to provide new developer tools and various use cases with the commercialization of AA. The word “abstraction” may sound ambiguous and new, but it will become a technology that can greatly expand the boundaries of the blockchain.

Try out Luniverse Testnet!

The Luniverse Testnet is a free trial service for Web3 builders, available in the Luniverse Console. You can take advantage of a 60-day free trial to upload or test your Dapp for free!

Why Social Media should Adopt Blockchain Technology

The social media market is actively moving towards Web3. Traditional Web2 giants like Google and Microsoft are investing heavily in artificial intelligence and blockchain technology, creating ground-breaking services like ChatGPT. Facebook has shown its willingness to transform into Web3 by changing its brand name to “Meta”, while Starbucks has announced its upcoming launch of Web3 app “Odyssey”.

Continue reading

Tech Talk: What is EVM?

The Ethereum Virtual Machine allows builders to write and deploy complex smart contracts on Ethereum. Let’s take a deep dive into EVM, how it works, and how different EVM chains differ from one another!

Continue reading

Tech Talk: What is a Node Provider?

A node provider is a service that provides the infrastructure, resources, and support required to operate a node. They are responsible for building, maintaining, and securing the nodes, allowing users to interact with the network without any technical knowledge of node operation. Find out how you can use Luniverse to build your own DApp!

Continue reading