Source: Fuel Network
Modular blockchain aims to split blockchain functions into independent and specialized modules and ensure that each module can efficiently complete its specific tasks while outsourcing other tasks. It is also seen as one of the narratives worth paying attention to in the crypto field in 2024. However, compared with other modules, market attention seems to have been focused on the data availability layer module, such as Celestia, EigenDA and other projects, while modules such as the execution layer and settlement layer have not received much attention. However, with the recent rise of the parallel EVM narrative, the execution layer has gradually attracted attention.
The main responsibility of the execution layer is to process and execute smart contracts and transactions, providing a high-throughput environment for Rollup and applications. Fuel is one of the very interesting projects that focuses on avoiding state growth and is not limited to any one configuration, whether it is a sovereign Rollup, a settlement chain or a monolithic chain.
From V1 to V2: What are the evolutions?
In December 2020, Fuel Labs released Fuel V1, the first Optimistic Rollup solution for the Ethereum mainnet. Initially, Fuel v1 was just a simple solution to the Ethereum scaling problem, which achieved scalability by adopting a different execution model from the Ethereum virtual machine. The main use case of Fuel V1 is to handle payment-centric applications, and it also supports atomic swaps with hash time-locked contracts (HTLCs), OP_RETURN-style outputs, paying fees with any token, and withdrawing coins within 10 minutes.
However, due to the small number of examples of Fuel V1 and the limitation that it does not support smart contracts, it did not gain widespread favor among users after its launch. Therefore, shortly after its launch, Fuel Labs, the Fuel development team, shifted all its development focus to the V2 version and positioned it as a modular execution layer. Through modular design, Fuel can choose plug-and-play tools for other modular layers according to needs, thus having greater flexibility. In addition, Fuel adopts 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 a light client, thereby reducing the need for full node resources. Recently, Fuel has announced that it will migrate its staging network to Beta-5, and developers can use the new npm create fuels package to simplify the process of building a full-stack DApp. Fuel also stated that it will launch an incentive test network in the future.
Fuel Team and Investment Background
Fuel's team is very interesting. Its co-founder John Adler is also the co-founder of the modular blockchain network Celestia. He also worked on second-layer scalability research at ConsenSys and created the Optimism Rollup design paradigm. This makes people wonder what kind of synergy Fuel will have with Celestia as the execution layer in the future. In addition, Fuel CEO Dodson is an early Solidity developer of Ethereum.
According to public information, Fuel has completed two rounds of financing so far. In September 2021, Fuel Labs completed a $1.5 million financing round led by CoinFund. Subsequently, in 2022, it completed a $80 million financing round, 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.
Technology Stack Interpretation
Fuel's vision is to become the fastest execution layer in the modular blockchain stack, providing the highest security and flexible throughput. In order to achieve this vision, Fuel's technical architecture has made a number of design choices, the core of which is the innovation of the UTXO model, virtual machine and programming language.
UTXO model
Compared to other Rollups that accommodate EVM compatibility for performance, Fuel chooses to inherit Bitcoin's UTXO model as its accounting model. Unlike the account model, there is no concept of wallet or account in the UTXO model. Each UTXO represents a certain number of tokens, and the purpose of the transaction is to consume previously created UTXOs and create new UTXOs. However, unlike the traditional UTXO model, Fuel's UTXO model is more general and can not only represent the transfer of tokens, but also the status of smart contracts. Each contract UTXO of Fuel carries the status and balance of the contract and is uniquely identified by the contract ID.
Compared to the account model, the advantage of the UTXO model is that transactions do not need to be processed in a specific order, so that transactions can be executed in parallel. Fuel uses UTXO to manage access to the state, and by building a strict access list to ensure that the execution order of transactions complies with the specification, it realizes parallel processing of transactions. This parallel execution technique enables Fuel to utilize multiple CPU threads and cores simultaneously, improving computation, state access, and transaction throughput when processing transactions.
However, the traditional UTXO model has concurrency issues because each UTXO can only be used once. This results in the successful execution of one transaction meaning the failure of other transactions, especially in DeFi applications. In Fuel, users do not sign UTXO directly, but instead sign the contract ID to indicate their intention to interact with the contract. This means that users do not change the state directly, thus avoiding the UTXO from being consumed. Ultimately, it is the block producer who decides which UTXO the transaction will spend and the resulting state of the related contract.
In addition, on Fuel, the spending conditions of UTXO are predicates. The predicate evaluates whether a transaction will occur, and if it is found that it does not match its authorization conditions, the transaction will not be included in the block. More importantly, predicates do not store data like smart contracts, so they do not cause state growth problems. Moreover, this design not only minimizes state growth, but also introduces stateless account abstraction to Fuel, avoiding the problems caused by long-term storage of account states on the chain. Fuel's account abstraction supports various application scenarios, such as social recovery, transaction fee subsidies, etc., making it widely applicable in diverse blockchain applications.
New VM Architecture FuelVM
In order to get rid of the limitations of EVM's internal construction, Fuel created its own virtual machine FuelVM. As a compatible and simplified implementation of EVM, FuelVM improves EVM performance while not bringing additional learning costs to developers. FuelVM adopts a global shared memory architecture, and all contract calls can share global memory, which can realize cross-contract data transmission without storage space.
In addition, FuelVM also brings many advantages. For example, FuelVM allows users to specify the contracts involved in the transaction, so that the virtual machine can process other transactions while executing non-contentious state access transactions, realizing the complete parallelization of the verification process without the influence of state contention. At the same time, FuelVM supports the native asset system, and through the operation code casting UTXO-based native assets, it obtains the advantages of native-level calls and optimizations.
FuelVM adopts a multi-dimensional resource pricing model, allowing dApps to price according to the resource requirements of different smart contracts, thereby incentivizing node operators to optimize the underlying hardware and maximize the block utility. In addition, FuelVM combines resource pricing and UTXO system for state pruning, which can control the state, reduce the operating cost of the node, and promote the decentralization of the network. And the design of FuelVM does not care about consensus or unified transaction ordering, but is only responsible for execution, which helps to achieve decentralized block production and further improve the degree of decentralization of the network.
Through FuelVM, Fuel has improved the inefficient execution environment of EVM. And FuelVM is built from the perspective of modular execution layer, focusing on achieving efficient computing power while reducing the use of state.
Domain-specific language Sway
Sway is built for the high-computing Fuel environment and aims to provide developers with a simple development experience. It is built on Rust and incorporates the characteristics of the Solidity language. Among them, Sway inherits Rust's syntax, making it easier for developers to write secure and efficient smart contract code. And borrowing from the smart contract paradigm in Solidity, it has built-in top-level contract storage and blockchain mechanisms, providing a safer environment for contract programming.
To support developers using Sway, the Fuel team has also developed the Sway tool chain Forc for building, deploying and testing Sway code, including a package manager that allows easy access to Sway tools. Other integrated tools include VSCode extensions, testing infrastructure, and block explorers.
However, Sway is more suitable for EVM chains rather than compatible chains built using the UTXO model. This also means that if these chains want to develop smart contracts on Fuel, they need to build exclusive smart contracts, which may increase the workload of developers.
What can we expect in the future?
As Fuel said, Ethereum is committed to solving the coordination problem, while it aims to solve the collaboration problem. Compared with coordination, collaboration requires more goals and responsibilities to achieve longer-term goals. Based on this concept, Fuel makes it possible to build a scalable and robust economic system on a decentralized trust layer. However, the Fuel mainnet has not yet been launched, and it will take time to verify whether it can really occupy a certain share in the Rollup competition market. It is worth noting that Fuel has been actively building an ecosystem. As early as 2022, it launched an ecological funding program to provide developers built on Fuel with funding ranging from 10,000 to 150,000 US dollars. So far, there are more than 40 Fuel ecological projects. In addition, Fuel also plans to launch an incentive test network to promote the further development of the ecosystem.