Scalable UTXO Smart Contracts via Fine-Grained Distributed State
Massimo Bartoletti, Riccardo Marchesin, Roberto Zunino
TL;DR
The paper tackles the scalability bottleneck of UTXO-based smart contracts by distributing contract state across multiple UTXOs (hybrid UTXO, hUTXO) and moving contract balances to an account-like ledger. It introduces hURF, a high-level rule-based language whose secure compiler generates the necessary hUTXO scripts to enforce contract rules while supporting parallel transaction validation. The approach enables fine-grained parallelism and demonstrates a substantial speedup (notably up to 13× on 8 cores) in benchmarks like crowdfund, map, multisig, and registry, while keeping transaction sizes manageable. This yields a scalable path for complex dynamic contracts on UTXO blockchains, with practical implications for throughput and resource usage in distributed ledgers.
Abstract
UTXO-based smart contract platforms face an efficiency bottleneck, in that any transaction sent to a contract must specify the entire updated contract state. This requirement becomes particularly burdensome when the contract state contains dynamic data structures, as needed in many use cases to track interactions between users and the contract. The problem is twofold: on the one hand, a large state in transactions implies a large transaction fee; on the other hand, a large centralized state is detrimental to the parallelization of transactions - a feature that is often cited as a key advantage of UTXO-based blockchains over account-based ones. We propose a technique to efficiently execute smart contracts on an extended UTXO blockchain, which allows the contract state to be distributed across multiple UTXOs. In this way, transactions only need to specify the part of the state they need to access, reducing their size (and fees). We show how to exploit our model to parallelize the validation of transactions on multi-core CPUs. We implement our technique and provide an empirical validation of its effectiveness.
