Author: fuelchina; Source: Fuel Network
With the increase in network usage , the Ethereum Virtual Machine (EVM) gradually exposed its performance limitations. Currently, Ethereum can only handle about 15-30 transactions per second, which is insufficient during peak periods, causing transaction fees to soar and user experience to suffer. In addition, with the influx of more and more applications and users, Ethereum's status data has expanded dramatically, making the operating costs and maintenance difficulty of full nodes increasing. These problems limit Ethereum’s potential and make it difficult to support large-scale decentralized applications.
In order to deal with these problems, Rollups as a Layer 2 solution provides a way to improve efficiency and reduce costs by moving most of the calculations and storage work are moved off-chain for execution, and then the results are submitted to the Ethereum main chain, thereby significantly improving transaction throughput and reducing transaction fees. Rollups are divided into two main types: Optimistic Rollups and ZK-Rollups. The former relies on a challenge period to verify the validity of transactions, while the latter is directly verified through zero-knowledge proofs. These solutions perform well in terms of scalability, but the final results still need to be processed and confirmed on the main chain, which is still limited by the architecture and design of the EVM.
When the number of transactions that the underlying protocol can handle is limited, even if the processing speed of EVM is not high, it can still meet the demand. However, Ethereum is significantly improving the scalability of its underlying protocol through technical means (such as the introduction of EIP-4844 in the Cancun upgrade). As the Ethereum base layer is able to handle more transactions, the execution speed of the EVM has become a new bottleneck. Therefore, improving the execution efficiency of EVM will be the key to improving the performance of the entire system in the future.
In order to solve this new bottleneck, the Fuel team developed a more efficient virtual machine architecture FuelVM. FuelVM is a virtual machine designed for efficient parallel processing and modular execution. It implements parallel processing through the UTXO model, significantly improving transaction processing speed.
Decrypting the unique advantages of FuelVM
Fuel is a modular execution layer designed for Ethereum Rollups that can operate as part of a single chain or as an independent execution environment, separated from other layers (such as settlement layer, consensus layer and data availability layer) . FuelVM is the core virtual machine in the Fuel system, designed for high computing bandwidth and parallel processing. FuelVM implements parallel processing by adopting the UTXO model, uses access lists to avoid transaction conflicts, and reduces dependence on smart contracts through a built-in native asset system.
UTXO model implements parallel processing: UTXO model Derived from Bitcoin, in this model assets are stored between different addresses in the form of a directed acyclic graph (DAG). Each transaction consumes unspent output to create new output. Fuel uses the UTXO model to implement parallel processing of transactions. Because the UTXO model divides state into independent elements, each transaction must explicitly specify which UTXOs will be used, so multiple non-conflicting transactions can be executed simultaneously. In addition, FuelVM introduces the concepts of predicates and scripts to enhance the Turing completeness of smart contracts. Predicates define the conditions under which UTXOs can be used, while scripts are programs used to execute multiple smart contract calls. The state in the UTXO model is atomic. Each UTXO can only be used once, and a new UTXO will be generated after use. Therefore, scripts and predicates do not store data persistently, reducing state growth. This helps alleviate the state bloat problem on the blockchain and reduces the cost of running nodes.
Access lists avoid conflicts between parallel transactions: in FuelVM, each A transaction must explicitly specify the UTXO it will access. This specified information constitutes the access list. Through the access list, FuelVM can know in advance the state that each transaction will affect, so that non-conflicting transactions can be executed in parallel on multiple CPU threads at the same time to avoid conflicts between transactions.
Native asset system: FuelVM handles native assets directly at the virtual machine level. Each native asset is defined by a specific set of opcodes that can perform asset creation, transfer, and destruction operations without the need to write and deploy smart contracts for each asset. This approach reduces the number and complexity of smart contract calls, thereby reducing the gas cost of transactions. This is particularly important for application scenarios with frequent asset transfers. In addition, by reducing reliance on complex smart contracts, the risk of potential smart contract vulnerabilities is also reduced.
Support account abstraction: Account abstraction allows developers to define customized Transaction verification schemes (such as multi-signature, multi-factor authentication, etc.) without having to rely on the preset verification rules in the protocol. In FuelVM, this flexibility is achieved through predicates. The predicate acts as a validation condition and can be programmed to determine whether a UTXO can be spent. Since predicates do not need to store state on-chain, they are only evaluated when transactions are verified, so the combination of predicates and the UTXO model reduces the growth of on-chain state.
FuelVM’s challenge: a double test from technology to market h2>
In order to make full use of the architectural features of FuelVM, the Fuel project team developed the Sway language and developer tool chain Forc. Sway is a new programming language inspired by Rust and Solidity, designed specifically for FuelVM, providing features of modern programming languages such as structs, attribute-based inheritance, and generic types. The Forc toolchain provides an all-in-one solution for developing, deploying, and testing Sway code, including a package manager, VSCode plugin, test infrastructure, and block explorer. Because FuelVM uses a new programming language, it is a completely new development environment for developers, which may impact its early adoption rate. Therefore, the Fuel project team needs to build a strong and active developer community to support and promote the popularization of the technology.
In addition, FuelVM is not compatible with EVM, which means that existing EVM applications cannot be directly migrated to FuelVM. This may limit the enthusiasm of early users and developers to adopt FuelVM. To overcome this obstacle, the Fuel project needs to provide migration tools and resources to help developers migrate existing applications to the FuelVM platform. These tools and resources can include transcoding tools, compatibility layers, and detailed migration guides to help developers make a smooth transition to the new platform.
FuelVM also needs to compete among the already relatively mature Rollups solutions and prove its unique technical advantages and market value. For example, there is lower risk of state inflation and smart contract attacks, but this new virtual machine architecture and programming language also takes time to verify its performance and stability.
Future Outlook: Parallel execution has become an inevitable trend
As more and more DApps emerge, the traditional single-threaded execution model can no longer meet the needs of large-scale applications. Therefore, exploring parallel execution has become an inevitable trend in technological development. In the first half of this year, parallel execution became a hot topic of discussion and has become an important direction in the development of blockchain technology. More and more projects have noticed its potential and actively participated in it. By better utilizing the computing power of multi-core CPUs, parallel execution can significantly increase transaction processing speed and system performance without sacrificing security and consistency. As an innovative practice of parallel execution, FuelVM achieves parallel execution capabilities by combining the UTXO model, thereby improving the throughput and performance of the overall network. This feature is particularly suitable for applications that require high-frequency trading and low latency, such as derivatives exchanges, full-chain games, etc. At the same time, by reducing state bloat and improving resource utilization efficiency, FuelVM provides a more scalable and efficient execution environment for decentralized applications.