Source: Fuel Network
The concept of modular blockchain aims to break down blockchain functions into independent and specialized modules, ensuring that each module can efficiently perform its specific task while outsourcing other tasks. It is also seen as one of the narratives worth paying attention to in the crypto field by 2024. However, compared to other modules, market attention seems to have always been focused on the data availability layer module, such as projects like Celestia and EigenDA, while the execution layer, settlement layer, and other modules have not received much attention. But with the rise of the parallel EVM narrative, the execution layer has gradually attracted attention.
The main responsibility of the execution layer is to handle and execute smart contracts and transactions, providing a high-throughput environment for Rollups and applications. Fuel is one of the most interesting projects in this space, focusing on avoiding state growth and not limiting to any specific configuration, whether it is sovereign Rollup, settlement chain, or stand-alone chain.
From V1 to V2: What are the evolutions?
In December 2020, Fuel Labs released Fuel V1, the first Optimistic Rollup solution on the Ethereum mainnet. Initially, Fuel V1 was proposed as a simple solution to address Ethereum’s scaling issues by adopting an execution model different from the Ethereum virtual machine to achieve scalability. The main use case of Fuel V1 was to handle payment-centric applications, supporting atomic swaps with Hashed Time Lock Contracts (HTLC), OP_RETURN-style outputs, fees paid with any token, and withdrawals within 10 minutes.
However, due to the limitations of Fuel V1 with few use cases and lack of support for smart contracts, it did not receive widespread user adoption upon launch. Therefore, shortly after its launch, the Fuel development team at Fuel Labs shifted all focus to the V2 version, positioning it as a modular execution layer. Through modular design, Fuel can choose plug-and-play tools for other modular layers as needed, providing greater flexibility. In addition, Fuel employs a fraud-proof mechanism to ensure the correct consensus of the L2 network. Although this may require more resources for verification, Fuel allows users to verify the chain through light clients, reducing the need for full node resources. Recently, Fuel announced the migration of its test network to Beta-5, where developers can use the new npm create fuels package to simplify the process of building full-stack DApps. Fuel also mentioned plans to launch an incentive test network in the future.
The Fuel Team and Investment Background
The team behind Fuel is quite interesting, with co-founder John Adler also being a co-founder of the modular blockchain network Celestia. He has previously worked on layer-two scalability research at ConsenSys and created the Optimism Rollup design paradigm. This raises curiosity about the potential synergy between Fuel as an execution layer and Celestia. In addition, Fuel’s CEO, Dodson, is an early Solidity developer for Ethereum.
According to public information, as of now, Fuel has completed two rounds of funding. In September 2021, Fuel Labs completed a $1.5 million funding round led by CoinFund. This was followed by an $80 million funding round in 2022, led by Blockchain Capital and Stratos Technologies, with participation from Alameda Research, CoinFund, Bain Capital Crypto, TRGC, Maven 11 Capital, Blockwall, Spartan, Dialectic, and ZMT, among others.
Technical Stack Insights
Fuel’s vision is to become the fastest execution layer in the modular blockchain stack, providing the highest security and flexible throughput. To achieve this vision, Fuel’s technical architecture includes several design choices, with the core being the adoption of the UTXO model, innovative virtual machine, and programming language.
UTXO Model
Unlike other Rollups that compromise EVM compatibility for performance, Fuel inherits Bitcoin’s UTXO model as its accounting model. In the UTXO model, there are no concepts of wallets or accounts. Each UTXO represents a certain amount of tokens, with transactions aiming to consume previously created UTXOs and create new ones. However, Fuel’s UTXO model is more versatile, being able to represent not only token transfers but also smart contract states. Each contract UTXO in Fuel carries the contract’s state and balance, uniquely identified by a contract ID.
The advantage of the UTXO model over the account model is that transactions do not need to be processed in a specific order, allowing for parallel execution. Fuel uses UTXOs to manage access to states, ensuring transaction execution order compliance through a strict access list, enabling parallel transaction processing. This parallel execution technology allows Fuel to utilize multiple CPU threads and cores simultaneously, enhancing computational, state access, and transaction throughput when processing transactions.
However, traditional UTXO models face concurrency issues as each UTXO can only be used once. This leads to the success of one transaction resulting in the failure of others, especially in DeFi applications. In Fuel, users do not sign UTXOs directly but sign contract IDs to indicate their intent to interact with contracts. This means that users do not directly change states, avoiding UTXO consumption. Block producers ultimately decide which UTXO a transaction will spend and the resulting state of the contract.
Furthermore, in Fuel, the spending conditions of UTXOs are predicates. Predicates evaluate whether a transaction will occur, and if the authorization conditions do not match, the transaction will not be included in a block. Importantly, predicates do not store data like smart contracts, avoiding state growth issues. This design not only minimizes state growth but also introduces stateless account abstractions, mitigating issues related to long-term storage of account states on the chain. Fuel’s account abstractions support various use cases, such as social recovery and transaction fee subsidies, making it widely applicable in diverse blockchain applications.
New VM Architecture: FuelVM
To overcome the limitations of the inefficient EVM environment, Fuel has developed its own virtual machine, FuelVM. As a compatible and simplified implementation of EVM, FuelVM enhances EVM performance without adding extra learning costs for developers. FuelVM adopts a global shared memory architecture where all contract calls can share global memory without the need for storage space for cross-contract data transfers.
Additionally, FuelVM brings many advantages. For instance, FuelVM allows users to specify the contracts involved in transactions, enabling the virtual machine to handle other transactions while executing non-contentious state access transactions, achieving a fully parallel verification process unaffected by state contention. Furthermore, FuelVM supports a native asset system, allowing the minting of UTXO-based native assets through opcodes, gaining advantages in native-level calls and optimizations.
Furthermore, FuelVM implements a multi-dimensional resource pricing model, enabling dApps to price based on the resource requirements of different smart contracts, incentivizing node operators to optimize underlying hardware and maximize block utility. Moreover, FuelVM integrates resource pricing with UTXO systems for state pruning, enabling state control, reducing node operating costs, and promoting network decentralization. The design of FuelVM does not concern itself with consensus or transaction ordering, focusing solely on execution, facilitating decentralized block production and further enhancing network decentralization.
Through FuelVM, Fuel has improved the inefficient execution environment of EVM. FuelVM is built from a modular execution layer perspective, focusing on efficient computational capabilities while reducing state usage.
Domain-Specific Language Sway
Sway is built specifically for the high computational demands of the Fuel environment, aiming to provide developers with a concise development experience. Built on Rust, Sway combines features of the Rust language with Solidity characteristics. Sway inherits Rust’s syntax, allowing developers to write secure and efficient smart contract code more easily. Drawing from the smart contract paradigm in Solidity, Sway includes top-level contract storage and blockchain mechanisms, providing a safer environment for contract programming.
To support developers using Sway, the Fuel team has developed the Sway toolchain Forc for building, deploying, and testing Sway code, including a package manager for easy access to Sway tools. Other integrated tools include a VSCode extension, testing infrastructure, and a blockchain resource manager.
However, Sway is more suitable for EVM chains than chains built using the UTXO model. This means that if these chains want to develop smart contracts on Fuel, they would need to build dedicated smart contracts, potentially increasing the workload for developers.
What Does the Future Hold?
As Fuel puts it, Ethereum is focused on solving coordination problems, while Fuel aims to solve collaboration problems. Collaboration requires more goals and responsibilities compared to coordination to achieve longer-term objectives. Based on this philosophy, Fuel makes it possible to build scalable and robust economic systems on a decentralized trust layer. However, the mainnet launch of Fuel is still pending, and it will take time to verify whether it can truly secure a share in the Rollup competitive market. It is worth noting that Fuel has been actively building its ecosystem, launching an ecosystem grant program as early as 2022, offering grants ranging from $10,000 to $150,000 to developers building on Fuel. As of now, there are over 40 Fuel ecosystem projects. Additionally, Fuel plans to launch an incentive test network to further promote ecosystem development.