β½Fuel Ecosystem
A Blazing-Fast Ethereum Execution Layer Speeding up PEPA
Last updated
A Blazing-Fast Ethereum Execution Layer Speeding up PEPA
Last updated
When implementing the PMM algorithm in our exchange, we found it very hard to get accurate token prices due to various limitations in Ethereum. Therefore, we move to L2 rollup solutions and Fuel is the best one of them.
Fuel stands out from numerous Ethereum rollup solutions due to it's computational performance. In other words, Fuel is significantly faster than others. As the fastest roll-up solution for ETH, Fuel Network made critical modifications to Ethereum Virtual Machine by adding the capability of parallel execution. This speeds up nested contract calls and allows more complex contract designs to run efficiently with reasonable gas costs. Implementing our contracts on Fuel, we are able to design sophisticated market maker models with extended self-adjustability while keeping the gas fee relatively low.
Fuel delivers unmatched processing capacity through its ability to execute transactions in parallel by using strict state access lists in the form of a Unspent Transaction Output (UTXO) model. This enables Fuel to use far more threads and cores of your CPU that are typically idle in single-threaded blockchains. As a result, Fuel can deliver far more compute, state accesses, and transactional throughput than its single-threaded counterparts.
Transactions on every blockchain follows the same scheme: transactions are broadcast to the network and a set of them are recorded permanently with each new block; the system moves to a new state by updating balances of users involved in each transaction.
UTXO model and account model are two different ways to record the state of the system and to move from one state to another. Let's consider the following example:
UTXO behaves like cash. For example, you only have ten-dollar bills in your wallet and you need to pay your friend $15. You give our two $10 bills and receive one $5 bill. The system records your inputs (2x $10) and your unspent output (1x $5). In this way, a transaction is bookkeeped.
When you pay $15 to your friend through Venmo, account model is used. You initiated a transaction of $15 to the global system (which has a global state) and then the system transfer $15 to your friend.
Obviously, account model is more efficient than UTXO model as you don't need to take care of "changes" by sending the exact amount of the transaction. However, account model is not deterministic as you never know what will happen before executing the transaction and check the global state. On the contrary, UTXO model is deterministic and can be represented as a directed acyclic graph (DAG) among users, illustrated by the figure below.
In the account model, the result of a transaction depends on the input state. Therefore transactions of the same account can only be executed sequentially. However, given the deterministic nature of UTXO model, within the same account, we can parallelize multiple UTXOs used in different transactions, as they are related to independent inputs. This is why Fuel is blazingly fast and why we choose Fuel.
Please visit Fuel Network for more details.