Understanding UTXOs

How Bitcoin and other cryptocurrency networks keep track of funds and process transactions

Bitcoin and many other cryptocurrencies are different from fiat money when it comes to counting the amounts precisely because they measure all sums in the smallest equivalents of the corresponding cryptocurrency. For example, the smallest unit of Bitcoin is Satoshi, which is a one-hundred millionth of a bitcoin. This means that when a person has 1 bitcoin in a wallet, he or she has one hundred million Satoshis.

What cryptocurrencies and fiat currencies have in common is that just like no one would carry around $1,000 in pennies, no software wallet views funds in bitcoin as a large pack of Satoshis. If some software were to try and work with cryptocurrencies in such a way, the size of the data would be too large (compare 100,000,000 Satoshis and 1 BTC), which is why to optimize the size of data, the Bitcoin network uses the concept of UTXO. UTXO is a virtual bag of Satoshis, similarly to how a $1 bill is a representation of 100 one-penny coins.

The difference between how the Bitcoin protocol handles packets of data and how fiat currencies handle large bills is that cryptocurrencies have no preset bill size.

For example, US dollar has the following twelve denominations of its currency: one dollar, two dollars, five dollars, ten dollars, twenty dollars, fifty dollars, and the one hundred dollar bill. There are also five larger denominations that the US government is no longer printing, but that are still valid for legal tender. These denominations are $500, $1,000, $5,000, $10,000 and $100,000.

With a regular currency, someone needed to make decisions about how many bills the currency would have. With cryptocurrency, there is no need to make such decisions because there is no physical paper.

Because of this, the Bitcoin network doesn’t pre-plan the sizes of “bills” or transactions on the network. It can change the sizes of amounts at any time it chooses to do so.

The protocol allows creators of software wallets choose how they want to package the smallest unit of the cryptocurrency into larger amounts, which enables the community to create solutions that optimize the size of the data.

With this being said, this approach has one requirement, which can be also viewed as a limitation: the Bitcoin network and any other cryptocurrency network that uses the same approach to packaging funds into transactions needs to keep track of how it attaches and detaches the data, otherwise users would be able to use the same funds several times.

As of the writing of this article, the only way for the Bitcoin network to do so is to keep this information on the main blockchain. The issue with this approach is that it severely limits the number of transactions per second that the Bitcoin network can process.

Satoshi Nakamoto has created the Bitcoin network in 2009. For several years the network was growing very slowly. In 2009 and 2010, the number of transactions per day on the Bitcoin network fluctuated between 50 and 100. You can see a chart with historic numbers of daily transactions on the Bitcoin network since the inception of the network here: https://blockchain.info/charts/n-transactions?timespan=all

Originally, Satoshi Nakamoto has programmed the network so that it creates a block of the Bitcoin blockchain approximately every 10 minutes, with blocks being up to 1 megabyte in size. When the Satoshi Nakamoto has created the Bitcoin network in 2009. For several years the network was growing very slowly. In 2009 and 2010, the number of transactions per day on the Bitcoin network fluctuated between 50 and 100. You can see a chart with historic numbers of daily transactions on the Bitcoin network since the inception of the network here: https://blockchain.info/charts/n-transactions?timespan=all

Originally, Satoshi Nakamoto has programmed the network so that it creates a block of the Bitcoin blockchain approximately every 10 minutes, with blocks being up to 1 megabyte in size. In practical terms, this means that the network can process between 3 and 7 transactions per second. When the network was having under 100 transactions a day occurring on it, the capacity was not an issue. However, after the network started growing exponentially in the middle of 2012, capacity has eventually become an issue that resulted in the increase of the fees of the Bitcoin network.

On the Bitcoin network, miners choose what transactions to include into the blocks of the Bitcoin blockchain. Users who send funds on the Bitcoin network are also free to include or not include a transaction fee. They also get to decide how big of a fee they want to include. Miners get 100% of the fee. By design, the fee serves as an incentive for miners to include transactions onto the blocks of the Bitcoin blockchain.

The fee is not set at a certain amount because Satoshi Nakamoto wanted the fee to be driven by supply and demand, not by some artificial limitations.

Currently, miners receive a reward from the Bitcoin network for adding blocks to the Bitcoin blockchain, which means that they turn a profit even when they include transactions for free. However, when the popularity of the network increases, the number of transactions also increases, which means that miners would be choosing transactions that come with fees and if you urgently need to send a payment in Bitcoin to someone, you would need to include a fee if you want your transaction to go through. This was the reason why the fee to send funds on the Bitcoin network skyrocketed to over $50 in December of 2017. You can see the average fee users are adding to their transactions on the Bitcoin network as you are reading this article by visiting https://bitinfocharts.com/comparison/bitcoin-transactionfees.html

The problem with the volatility of fees is that it makes it hard for users to transact in Bitcoin on a daily basis, especially for small transactions. For example, if you need to send someone $20 in Bitcoin for your share or a lunch that you had with a friend, paying $40 in transaction fees to send $20 is not your ideal scenario and you will most likely find another way to send money to your friend. This is one of the issues that prevent Bitcoin from gaining mass adoption and the issue that other cryptocurrencies will have to solve if they want to scale worldwide and become the go-to currencies for daily transactions.