FuelVM: A Proposed Solution to Ethereum's Scalability Challenge
@fuel_network has made significant strides since its V1. Initially a side chain, it has now evolved into an AltVM, poised to address the limitations of the Ethereum's EVM as the Execution Layer.
๐ ๐ ๐งต
Ethereum's monolithic architecture consists of several interrelated components essential for network operations.
Among these layers, the Execution Layer (EL) is the core, handling transaction processing, smart contract execution, and state management.
While the EL is crucial to Ethereum's functionality, it also significantly bottlenecks overall performance due to factors like single-threaded, wasteful execution, unoptimized state management leading to rapid state growth, gas metering overhead, etc.
This leads to issues like network congestion, which impacts transaction speed and throughput, and results in high gas fees.
Although Ethereum is working to address these problems, its core design is not easily changeable, hindering its widespread adoption.
Layer-2 solutions (L2s) or Rollups address some problems but still encounter issues due to inheriting the original EVM design.
"... in fact, rollups have state size problems of exactly the same type as the Ethereum chain itself." - Vitalik Buterin
FuelVM introduces a purpose-built EL for sustainable state and high performance, aiming to help Ethereum scale to thousands of apps or app chains.
It addresses key challenges with its UTXO model, stateless predicates, and state minimization techniques, discussed below.
Attached is the comprehensive list of design considerations for the FuelVM.
FuelVM's parallelized transaction execution boosts throughput and cuts latency by splitting tasks into sub-tasks for simultaneous processing. It leverages the UTXO model for concurrent handling of non-conflicting transactions.
FuelVM's asset-oriented design enhances its parallelized execution. Built-in opcodes enable applications to create and manage native assets directly within the VM. This design significantly boosts execution performance by allowing native asset manipulation at a lower level.
FuelVM's Predicates are lightweight, stateless contracts that boost transaction processing and execution performance while supporting native Account Abstraction (AA). They enable developers to create conditional transactions with complex execution criteria within the VM.
FuelVM's Scripts are temporary logic embedded within transactions to execute specific functions or operations without permanently altering the global state.
All these features contribute to state reduction.
In the UTXO model, each transaction consumes previous UTXOs and creates new ones, resulting in localized state management. This confines state changes to the specific UTXOs involved, rather than impacting the global state.
Predicates take inputs and return a boolean value to determine transaction success. Unlike traditional smart contracts, predicates neither read from nor write to global storage. This absence of storage operations prevents them from contributing to state growth.
Scripts are ephemeral and confined to the transaction context, so they do not contribute to long-term state growth.
Lastly, FuelVM also introduces native state rehydration, efficiently managing state changes. Instead of constantly updating the global state, a FuelVM application compartmentalizes state changes into smaller, manageable segments stored as Non-Fungible Tokens (NFTs).
By rehydrating only the state data needed for a specific transaction, FuelVM reduces the data load on nodes and speeds up state access.
In May 2024, FuelVM achieved asset transfer benchmarks of 12000 TPS per core, with potential for even higher results through further optimizations.
Fuel Network has undergone nearly half a dozen Testnet iterations, with the Mainnet expected to launch in the coming months.