[ad_1]
What is arbitrary witness data and unspent transaction output? […] I’m confused what they mean by UTXO
Arbitrary
Arbitrary means what you think it does – “the data can be anything you choose”. It has to be packaged in an acceptable way and there are limits on size. Part of a Bitcoin transaction input is an unlocking script, these scripts are created by the transaction creator who is spending money. There are various ways they can insert extra data into scripts that have no effect on script execution.
Witness Data
An improvement to Bitcoin called Segwit allowed some parts of transactions to be separated (segregated) into a new part called a transaction witness. This allowed the block size in Bitcoin to be increased without affecting older software and prepared for other improvements. The witness data can include scripts and those scripts can contain arbitrary data chosen by the transaction creator. This includes data that has no effect on the Bitcoin transaction itself, other than increasing its size. Some people use this to embed foreign data into the Bitcoin blockchain. This is controversial.
UTXO
Bitcoin transactions have inputs and outputs, inputs are references to outputs of earlier transactions. Inputs are thus spending older outputs. An unspent transaction output is abbreviated UTXO.
These UTXOs represent units of spendable money, like coins. When you spend a UTXO it becomes a spent TXO and is no longer an unspent TXO. So every transaction effectively destroys the UTXOs in its inputs and creates new UTXOs in its outputs. The total value of outputs cannot exceed total value of inputs. Bitcoin nodes keep track of the set of all UTXOs so that they cant be spent twice.
[ad_2]
Source link