<p>No, since transactions can have multiple inputs just as they can have multiple outputs, it’s trivially possible for a transaction to spend more UTXO than it creates and thus reduce the global UTXO count.</p>
<p>Beside that:</p>
<ul>
<li>Change outputs are not mandatory. Some wallets deliberately try to craft transactions that avoid creating change outputs when possible.</li>
<li>Transaction fees contribute to what miners may collect in their block reward. Generally, the entire reward is awarded to a single new transaction output.</li>
</ul>

CC BY-SA 4.0
2023-12-28T15:58:33.127Z
2023-12-28T16:13:27.057Z
2023-12-28T16:13:27.057Z
Murch
<p>No, transactions can also consolidate UTXOs. A transaction can have multiple inputs and multiple outputs. It is (currently) not possible for the inputs to restrict what and how many outputs there are, nor is it possible for outputs to restrict what and how many inputs there are. So a transaction can have more input than outputs, thereby having a reducing effect on the UTXO set size.</p>
<p>Also, transaction fees do not produce a UTXO. They are the difference between the sum of the outputs and the sum of the inputs. Miners are allowed to increase their block reward by that difference, so each transaction does not create a UTXO for its fee.</p>

CC BY-SA 4.0
2023-12-28T16:15:07.057Z
"It is (currently) not possible for the inputs to restrict what and how many outputs there are" threw me off a bit, since most transactions use "SIGHASH_ALL" and therefore whoever contributes inputs has inputs on the outputs that are being created.
Murch
CC BY-SA 4.0
2023-12-28T15:55:11.167Z
2023-12-28T15:55:11.167Z
Ava Chow
<p>Every Bitcoin transaction results in a transaction split, as we know: a) receiving amount and b) transaction fee. Transaction fees are usually a few thousand satoshis. Then there's c) the 'change' that I can control with my private key and that remains in my own wallet.</p>
<p>Isn't all of this resulting in an ever-increasing fragmentation of UTXO's?
One that could eventually make payments impossible?</p>

<bitcoin-core><transaction-fees><utxo><utxo-set><utxo-management>
Fragmentation of UTXOs?
richey
# Fragmentation of UTXOs?

(Asked by: username_0 on 2023-12-28)

Every Bitcoin transaction results in a transaction split, as we know: a) receiving amount and b) transaction fee. Transaction fees are usually a few thousand satoshis. Then there's c) the 'change' that I can control with my private key and that remains in my own wallet.

Isn't all of this resulting in an ever-increasing fragmentation of UTXO's?
One that could eventually make payments impossible?

**Tags:** bitcoin-core, transaction-fees, utxo, utxo-set, utxo-management


---

## 2 answers

### Answer by username_1 on 2023-12-28. Score: 1 | Accepted answer

No, since transactions can have multiple inputs just as they can have multiple outputs, it’s trivially possible for a transaction to spend more UTXO than it creates and thus reduce the global UTXO count.

Beside that:

* Change outputs are not mandatory. Some wallets deliberately try to craft transactions that avoid creating change outputs when possible.
* Transaction fees contribute to what miners may collect in their block reward. Generally, the entire reward is awarded to a single new transaction output.


---

### Answer by username_2 on 2023-12-28. Score: 1

No, transactions can also consolidate UTXOs. A transaction can have multiple inputs and multiple outputs. It is (currently) not possible for the inputs to restrict what and how many outputs there are, nor is it possible for outputs to restrict what and how many inputs there are. So a transaction can have more input than outputs, thereby having a reducing effect on the UTXO set size.

Also, transaction fees do not produce a UTXO. They are the difference between the sum of the outputs and the sum of the inputs. Miners are allowed to increase their block reward by that difference, so each transaction does not create a UTXO for its fee.

> **Comments:**
> **username_1**: "It is (currently) not possible for the inputs to restrict what and how many outputs there are" threw me off a bit, since most transactions use "SIGHASH_ALL" and therefore whoever contributes inputs has inputs on the outputs that are being created.  

---

