Two months ago, a small group of Ethereum engineers and researchers got together to work on what would later be popularized by Vitalik Buterin as optimistic rollups. Our work was based on the research and efforts of the ConsenSys researcher John Adler, who spec’ed out the technique as a viable scalability solution several months prior. He described a scalability approach on Ethereum that involved no consensus changes to layer-1, and could be implemented right away to help relieve Ethereum’s state bloat issue caused primarily by ERC-20 token (and specifically, Tether stablecoin) transfers. After a few in-depth conversations, we began working hard to put together a realistic Ethereum scaling implementation that could solve a single problem: sustainably scalable, cheap, and reliable stablecoin payments on Ethereum: Fuel.
We believe the killer app for any blockchain is Stablecoin Payments. If a blockchain can master this, it can add tremendous value to the global economy with far reaching implications. Fuel is focused on addressing this on Ethereum in the form of an simplistic optimistic rollup style approach.
Sustainable Scaling for Ethereum
As we’ve seen time and again, the transaction throughput on Ethereum is severely limited: capable of fewer than ~10 fresh ERC-20 transfers per second. The reason for this limit is largely due to state (i.e. the account balances and contract storage slots). Ethereum’s uncompressed state size is on the order of 45 GB, much too large to fit into RAM, which results in a large number of disk accesses, especially when processing token transfer.
Ever-increasing state bloat is the number-one problem for Ethereum at this time, as state, unlike history, is not prunable. We ideally want to scale Ethereum without increasing state bloat or state accesses. This can in fact be accomplished quite easily by using transaction calldata! By simply “posting” a sidechain’s transaction data and Merkleizing it on-chain, we can almost completely eliminate state access from the Ethereum base layer while simultaneously scaling it sustainably (i.e. without egregious recurrent or long-term costs for full nodes).
Fuel builds upon Adler’s seminal post on Minimal Viable Merged Consensus, which introduced a concrete minimal spec for trustless permissionless sidechains with on-chain data availability and correctness enforced with fraud proofs (now commonly “optimistic rollups”).
Optimistic rollups has several properties and guarantees that distinguishes it from earlier scaling proposals, such as shadow chains or Plasma. Unlike shadow chains, it does not apply state transition on-chain unless someone explicitly pays to do so, at cost — applying all state transitions automatically would lead to state bloat, the exact problem we’re trying to avoid! Unlike Plasma, it is permissionless and makes use of non-interactive fraud proofs so as to be highly resistant to chain congestion attacks.
Fuel: A High Level Overview
The Fuel sidechain is designed exclusively handle large volumes of payments on Ethereum, and will reduce the cost Ethereum ERC-20 token transfers (at conservative estimates) by 5-fold pre-Istanbul. Unlike channels it does not promise instant finality, but does provide trustless and cheap transactions at Ethereum blocktime finality without the high barrier of full pre-collateralization requirements that channels have. The Fuel chain addresses instant finality by offering a semi-permissionless operator model that allows, so long as the primary block committer is trusted until Ethereum block finality, transactions to be considered final and instant.
The Fuel chain enables a Burner wallet-like experience
One of the primary use-cases for Fuel will be to alleviate the enormous gas cost burden of moving token funds to/from exchanges. This would immediately drop their out-bound costs by at least 5-fold, without lowering the value of underlying ERC-20 token assets. Additionally Fuel can be used, with centralized order book matching, to perform trustless and non-custodial native atomic exchanges.
To maximize its client-side scaling profile, Fuel uses a parallelizable UTXO data model, that any computer or phone should be able to validate easily. Our current estimates pre-Istanbul show our chain raising Ethereum’s total transaction per second potential (TPS) to around 50, a far greater volume than our current ~10 for ERC-20s (a 5-fold increase). Post-Istanbul (with the inclusion of EIP-2028) we believe we can push the limit even further going to around 200 TPS. With some trivial upgrades to layer-1 we can push this number to the high 2000s. Furthermore, with the single integration of erasure code data availability proofs to Ethereum Ethereum’s TPS can be scaled quadratically, to on the order of 10s of thousands to millions of TPS.
Fuel Key Takeaways
- Optimistic rollup sidechain on Ethereum
- UTXO data model
- Finality at Ethereum blocktimes
- Optional Burner-like instant transaction experience
- Operator cannot censor transactions
- Supports any ERC-20 Token / Ether (with focus on Dai/Tether)
- Trustless and decentralized
- Client-side parallalizable validation (browser friendly)
- Focused on cheap ERC-20 transactions
- Enter and exit freely anytime using atomic swaps and liquidity providers
- No collateral or inbound liquidity requirements for users
- In the future we will work toward scaling quadratically to millions of TPS
We are designing Fuel to be developer friendly, integration will simply be adding a library that handles deposits, withdrawls and UTXO data. Any Ethereum account and contract can handle Fuel transactions so long as they can either sign or send arbritary transactions. Contract wallets will see less of gas savings of Fuel, but will still see some significant cost reduction in token transfer cost.
Further Background Reading
- Slides from our EthPlanet Pre-DevCon V Lightning Talk
- Minimal Viable Merged Consensus
- Compact Fraud Proofs for UTXO Chains Without Intermediate State Serialization
- On-Chain Non-Interactive Data Availability Proofs
- Multi-Threaded Data Availability On Eth 1
- EIP-2242: Transaction Postdata
Our Ethereum smart contracts and in-browser client are currently undergoing security audits before a mainnet release. For more info, check out the following links and follow us on Twitter @FuelLabs_ for updates and participation in our upcoming testnet and our formal specification release.
Also stay tuned for our own custom scripting system based on UTXO predicates, which will enable smart contract functionality on the Fuel sidechain.
For further technical inquiries you can tweet at our core developer @IAmNickDodson