Finally had some time to bring myself up to speed on UTXOs. Still quite confused about them actually, so I’m sure my DYOR notes are fallible. Please point out my mistakes and lapses in my thinking:
About UTXO
-
UTXO refers to Unspent Transaction Outputs. It is an accounting method aimed to calculate the total balance in one’s wallet. In other words, your account balance is the sum of your UTXOs.
-
It represents the amount of the Bitcoin that is left over after a transaction has been finalised.
-
Operating on inputs and outputs, UTXO allows transactions to happen trustlessly. For instance, people can exchange non-fungible Ordinals for fungible Cardinals.
-
Every transaction has a script - which denotes the conditions that must be met in order for a transaction to be validated - attached to it. Three factors are typically considered, namely privacy, computational efficiency and size.
-
It is important to note that UTXOs are not divisible. This means that you send your entire UTXO to your recipient and receive your change back in the form of a new UTXO.
-
The more UTXOs you have to send, the larger your transaction becomes and the more costly it consequently becomes to send.
-
If you wish to carry out a CoinJoin so that your Bitcoin becomes untraceable, you have to move each UTXO you end up with individually - without mixing them - to a new unique address from your cold wallet.
-
UTXO Dealership is a recent privacy tool that allows Bitcoin buyers who wish to safeguard their privacy an opportunity to buy history-free UTXOs from Bitcoin miners. (supertestnet.github.io/utxo-dealership/ ) Bitcoin miners consequently get higher returns for their newly mined UTXOs. It’s a win-win situation.
transaction fees = Σ(input amounts) – Σ(output amounts)
.account-based model
used by Ethereum) makes the transaction outcome immutable. While in an account-based model, you still need to check whether the account still has sufficient balance, directly declaring which exact UTXOs you are spending make it possible for transactions from the wallet to be processed in any order. The UTXO model further allows you to spend funds encumbered with many different output scripts (i.e. different addresses) and pay many different recipients in a single transaction. This allows Bitcoin users to use a new address on every invoice (and in fact, use the address as an invoice identifier), while in the account-based model, you usually can only spend from one account to one other account, which causes extreme address-reuse and undermines financial privacy.