Improving technology for scaling blockchains requires tackling multifaceted problems. New attempts to parallelize the Ethereum Virtual Machine (EVM) have gained interest in recent weeks, as developers look for possibilities to increase transaction throughput.
The EVM is the execution environment that runs on Ethereum and its layer-2 rollups, and also has been adopted by other layer-1 networks such Avalanche, Binance Chain and many others, which use it to process smart contract code.
In typical EVM implementations, transactions are processed one after the other in the order they arrive. This simple approach can lead to longer processing times and higher costs when there are many transactions, explains Marina Guryeva, the CEO of Neon Labs, which is implementing the EVM as a smart contract on Solana.
“For Ethereum, the traditional sequential execution model simplifies hardware requirements, but on the downside, it creates limitations in handling the increasing volume of transactions,” Guryeva told Blockworks. “This worsens during peak usage times resulting in longer transaction wait times, higher gas fees vis-a-vis demand surge, and an overall fractured user experience.”
Guryeva said that much of the growing interest in parallel EVMs is due to its ability to tackle these challenges around blockchain scalability, addressing issues related to the blockchain trilemma.
“The parallel processing approach addresses the longstanding challenges of scalability and transaction processing efficiency within the Ethereum network,” Guryeva said.
Many transactions can be processed at the same time, instead of sequentially, so long as they don’t depend on each other.
There are other ways to achieve parallel processing, such as at the database-level with approaches such as sharding, that essentially divide Ethereum’s state into smaller “shards” but full sharding remains years away.
Read more: Dencun and Pralectra: Ethereum core devs chart an ambitious 2024
Parallelized EVMs, however, including the likes of Sei network, Monad and Neon, are already production ready or nearly so. The Sei network launched its mainnet in August 2023 and has seen recent monthly trading volume of about $136 million with a little over 29 thousand active DEX users, according to data compiled by Flipside Crypto.
Its native token, SEI, has surged from around $0.23 at the beginning of December to around $0.68 today — an almost 200% jump. Neon too, has seen a significant increase in its token price, with NEON trading from $0.50 on Dec. 1 to roughly $2.55 today.
Monad has yet to launch and does not yet have its own token.
A look into popular parallel EVM protocols
Much 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 said.
Guryeva notes that Ethereum remains the dominant blockchain that supports smart contracts and dapps, but Solana’s Sealevel technology — which enables virtual machines to process multiple transactions simultaneously through distributing transaction workload across multiple threads on a validator’s hardware — enables lower gas fees and higher scalability.
Jay Jog the co-founder of Sei Labs shares this sentiment, he notes that Ethereum rollups struggle to get over 30 sustained transactions per second, which limits the design space on the blockchain.
“A parallelized EVM lets you get the best of Ethereum and Solana — the EVM and all of the mindshare/tooling around it and the fast execution environment that Solana offers,” he said.
Sei’s latest version has its EVM built into the chain, Jog added.
“Sei uses Geth — the Go implementation of the EVM — to get full EVM bytecode compatibility. Geth is very battle tested and currently processes ~85% of [Ethereum] blocks,” he said.
This is different from its competitor Monad, which is creating a custom EVM implementation, Jog notes.
Despite these differences, both Monad and Sei are using 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 pending results track the inputs and outputs of the transactions which are then committed back into their original linear order. If any pending result has inputs that have been invalidated, then a transaction must be rescheduled.
“This means that Monad still supports linear blocks and linear transactions within the blocks,” Hon told Blockworks. “Monad can basically take transaction formats that are exactly the same as Ethereum and then, under the hood, implement parallelism without any changes from the user perspective.”
Optimistic parallel execution is different from what Solana uses, for example, where dapps have to pre-specify dependencies of the transactions, Hon said, analogous to the access list approach on Ethereum.
Parallelized EVMs are a stepping stone
It is important to note, Hon adds, that parallel execution is a small fraction of the bigger picture, with Monad’s more general mission being centered around accelerating EVM execution to make it as performant as possible.
“The real bottleneck is actually the state access that all of those transactions are being run, they all have dependencies on state, and that state lives on SSD (solid-state drive),” Hon said.
The majority of smart contract work has relatively simple computation, he said, and bigger constraints for smart contracts are often the input/output component — the process of reading from the SSD and then writing back data.
Parallelism only cuts a small fraction of costs, according to Rachel Bousfield, the tech lead at Offchain Labs, because parallel execution is rarely possible in practice across current Web3 dapps.
Ethereum-like blockchains generally use commodity databases for reading and writing data. These have the advantage of being widely accessible, purchased “off the shelf,” but they are not optimized for the problem of storing the Merkle tree data, necessary for parallel processing on the blockchain, Hon notes.
This means that, fundamentally, in order to decrease transaction processing times and gas prices, infrastructure around the database will have to change.
“So one of the other really major things that Monad is building is a custom state database from scratch that supports parallel access so that when there are many threads running in parallel, touching the database — to get inputs, or write outbacks back to it — those can proceed in parallel,” Hon said.
Monad is not alone in focusing on alleviating state dependencies. Sei too, is working to make improvements in this area, Jog notes.
“We are doing a lot of work on the state layer to improve state access, state commit, and state storage,” he said.