Improving blockchain scaling technology requires addressing multifaceted issues. New efforts to parallelize the Ethereum Virtual Machine (EVM) have gained interest in recent weeks as developers look for opportunities to increase transaction throughput.
The EVM is the execution environment that runs on Ethereum and its layer 2 combinations, and has also been adopted by other layer 1 networks such as Avalanche, Binance Chain and many others, which use it to process smart contract code.
In typical EVM implementations, transactions are processed sequentially in the order they arrive. This simple approach can lead to longer processing times and higher costs if there are many transactions, explains Marina Guryeva, the CEO of Neon Labs, which is deploying the EVM as a smart contract on Solana.
“For Ethereum, the traditional sequential execution model simplifies the hardware requirements, but on the other hand, it creates limitations in processing the increasing number of transactions,” Guryeva told Blockworks. “This worsens during peak usage times, resulting in longer transaction wait times, higher gas costs relative to the demand increase, and an overall broken user experience.”
Guryeva said that much of the growing interest in parallel EVMs is due to its ability to address these challenges around blockchain scalability, by addressing issues related to the blockchain trilemma.
“The parallel processing approach addresses the long-standing challenges of scalability and transaction processing efficiency within the Ethereum network,” Guryeva said.
Many transactions can be processed simultaneously rather than sequentially, as long as they are not dependent on each other.
There are other ways to achieve parallel processing, such as at the database level with approaches like sharding, which essentially divide the state of Ethereum into smaller “shards,” but full sharding is still years away.
Read more: Dencun and Pralectra: Core Ethereum Developers Chart an Ambitious 2024
However, parallelized EVMs, including Sei Network, Monad and Neon, are already or almost ready for production. The Sei Network launched its mainnet in August 2023 and saw a recent monthly trading volume of approximately $136 million with just over 29,000 active DEX users, according to data collected by Flipside Crypto.
The native token, SEI, has risen from around $0.23 in early December to around $0.68 today – a jump of almost 200%. Neon has also seen a significant increase in its token price, with NEON trading from $0.50 on December 1 to around $2.55 today.
Monad has yet to be launched and does not yet have its own token.
A look at popular parallel EVM protocols
A big part of the work being done on the Neon EVM is to bring the Ethereum dapps into the Solana ecosystem, Guryeva said.
“It is a fully compatible Ethereum environment on Solana and allows developers to scale Ethereum dapps using Solana as the settlement layer,” she says.
Guryeva notes that Ethereum is still the dominant blockchain supporting smart contracts and dapps, but Solana’s Sealevel technology – which allows virtual machines to process multiple transactions simultaneously by distributing the transaction workload across multiple threads on a validator’s hardware – enables lower gas costs and higher scalability possible.
Jay Jog, the co-founder of Sei Labs, shares this sentiment. He notes that Ethereum rollups struggle to get more than 30 sustained transactions per second, which limits design space on the blockchain.
“A parallelized EVM allows you to get the best out of Ethereum and Solana – the EVM and all the mindshare/tooling around it and the fast execution environment that Solana provides,” he said.
The latest version of Sei has the EVM built into the chain, Jog added.
“Sei uses Geth – the Go implementation of the EVM – to achieve full EVM bytecode compatibility. Geth is very proven and currently processes ~85% of the [Ethereum] blocks,” he said.
This is different from its competitor Monad, which creates a custom EVM implementation, Jog notes.
Despite these differences, both Monad and Sei use optimistic parallel execution to achieve parallel processing.
With this technique, virtual machines run in parallel on separate threads within the network computer. Each thread would execute transactions and generate what Keone Hon, the co-founder and CEO of Monad Labs, calls “pending results.”
These running results track the input and output of the transactions, which are then returned to their original linear order. If a pending result contains input that has been invalidated, a transaction must be rescheduled.
“This means that Monad still supports linear blocks and linear transactions within the blocks,” Hon told Blockworks. “Monad can, in principle, use transaction formats exactly the same as Ethereum and then, under the hood, implement parallelism without any change from the user perspective.”
Optimistic parallel execution differs from what Solana uses, for example, where dapps must specify the dependencies of the transactions in advance, Hon said, analogous to the access list approach on Ethereum.
Parallelized EVMs are a stepping stone
It’s important to note, Hon adds, that parallel execution is a small part of the bigger picture, with Monad’s more overall mission focusing on accelerating EVM execution to make it as performant as possible.
“The real bottleneck is actually the state’s access to all these transactions, they are all dependent on the state, and that state lives on SSD (solid-state drive),” said Hon.
The majority of smart contract work has relatively simple computations, he said, and bigger limitations for smart contracts are often the input/output component: the process of reading from the SSD and then writing data back.
Parallelism only saves a small portion of the cost, said Rachel Bousfield, the technical lead at Offchain Labs, because parallel execution is rarely possible in practice with current Web3 dapps.
Ethereum-like blockchains generally use commodity databases for reading and writing data. These have the advantage of being widely accessible and can be purchased ‘off the shelf’, but they are not optimized for the problem of storing the Merkle tree data, which is necessary for parallel processing on the blockchain, notes Hon.
This means that in order to reduce transaction processing times and gas prices, the infrastructure surrounding the database will have to fundamentally change.
“So one of the other really important things that Monad is building is a custom state database from scratch that supports parallel access, so that when you have a lot of threads running in parallel, the database is tapped – to get input or outbacks back to it to write – they can proceed in parallel,” said Hon.
Monad is not alone in its focus on alleviating state dependence. Sei is also working on improvements in this area, Jog notes.
“We are doing a lot of work at the state layer to improve state access, state commit and state storage,” he said.