Difference between revisions of "VOUT"

(Created page with "A VOUT is a transaction outpoint. Each VOUT contains a piece of script which can be used to contain a piece of data, hold a token or lock a quantity of Satoshis. If a VOUT has...")
 
 
(30 intermediate revisions by 4 users not shown)
Line 1: Line 1:
A VOUT is a transaction outpoint. Each VOUT contains a piece of script which can be used to contain a piece of data, hold a token or lock a quantity of Satoshis. If a VOUT has not been spent, it is referred to as an [[Unspent Transaction Output|UTXO]] and can be used in the creation of a new transaction. Once a VOUT has been used as an input to a [[transaction|Bitcoin Transactions]] it is considered spent and may be pruned from blockchain records.
+
A '''transaction outpoint''' or '''transaction output number''' is (most often used to refer to) a 4-byte [[index]] indicating the position of a [[Bitcoin Transactions|transaction]] output.  
  
==Zero value outptuts==
+
==Technical Details==
VOUTS that do not contain a value in Satoshis are often used to hold scripts that carry large data items or tokens. Predominantly these are used in [[False Return]] outputs as a means to attach data to bitcoin transactions
+
In the technical specification of Bitcoin SV "vout" has two interpretations. When it appears in an input of a transaction, it is a 4 byte index value. This index is concatenated with a [[TXID|transaction ID]] (TxID || vout) to form an outpoint, uniquely identifying an output of the (previous) transaction output being spent. As the index is a 4-byte integer, this gives users the ability to include up to 2<sup>32</sup> outputs in a single Bitcoin transaction.
These outputs are still valid UTXOs and can be used as inputs in a transaction, with locking conditions being applied as normal. The [[dust]] rules implemented early on in Bitcoin's history mean that it will not be possible to create complicated scripts using zero value outputs until miners remove the limits on minimum output values.
+
 
 +
When it is not part of the input, it refers to a vector of outputs in a transaction. That is, "vout" is the keyword identifying the list of all outputs of a transaction [1], where each output contains output value (the amount of BSV) and scriptPubKey (a script that locks the output value). Note that the order within the set matters.
 +
 
 +
==Unspent Transaction Outputs==
 +
If an outpoint has not been spent, it is referred to as an Unspent Transaction Output or [[UTXO]], and can be used in the creation of a new transaction by a user that is able to satisfy the spending conditions defined by the output script. Once an outpoint has been used as an input to a [[Bitcoin Transactions|transaction]] that has been validated by the mining network it is considered spent and can no longer be used in a new transaction (see [[Double-spending]]).
 +
 
 +
==Zero value outputs==
 +
Outputs that do not contain a value in [[Satoshis]] are often used to hold scripts that carry large data items or tokens. Provably unspendable zero-value [[false return]] outputs have been predominantly used as a means to attach data to Bitcoin transactions. False return transaction outputs are not stored in the UTXO set derived by Miners. It should be noted that this is not the only mechanism for data storage, it is just the one that was easiest to use prior to the Genesis protocol restoration.
 +
 
 +
Non-[[False Return|false return]] zero value outputs are still valid UTXOs and can be used as inputs in a transaction, with locking conditions being applied as normal.
 +
 
 +
==See Also==
 +
* - [[TXID]]
 +
* - [[Bitcoin Transactions]]
 +
 
 +
==References==
 +
[1] - https://github.com/bitcoin-sv/bitcoin-sv/blob/7fd177c7c443ff7723d88c5465fbf39285388e30/src/primitives/transaction.h

Latest revision as of 03:25, 22 April 2022

A transaction outpoint or transaction output number is (most often used to refer to) a 4-byte index indicating the position of a transaction output.

Technical Details

In the technical specification of Bitcoin SV "vout" has two interpretations. When it appears in an input of a transaction, it is a 4 byte index value. This index is concatenated with a transaction ID (TxID || vout) to form an outpoint, uniquely identifying an output of the (previous) transaction output being spent. As the index is a 4-byte integer, this gives users the ability to include up to 232 outputs in a single Bitcoin transaction.

When it is not part of the input, it refers to a vector of outputs in a transaction. That is, "vout" is the keyword identifying the list of all outputs of a transaction [1], where each output contains output value (the amount of BSV) and scriptPubKey (a script that locks the output value). Note that the order within the set matters.

Unspent Transaction Outputs

If an outpoint has not been spent, it is referred to as an Unspent Transaction Output or UTXO, and can be used in the creation of a new transaction by a user that is able to satisfy the spending conditions defined by the output script. Once an outpoint has been used as an input to a transaction that has been validated by the mining network it is considered spent and can no longer be used in a new transaction (see Double-spending).

Zero value outputs

Outputs that do not contain a value in Satoshis are often used to hold scripts that carry large data items or tokens. Provably unspendable zero-value false return outputs have been predominantly used as a means to attach data to Bitcoin transactions. False return transaction outputs are not stored in the UTXO set derived by Miners. It should be noted that this is not the only mechanism for data storage, it is just the one that was easiest to use prior to the Genesis protocol restoration.

Non-false return zero value outputs are still valid UTXOs and can be used as inputs in a transaction, with locking conditions being applied as normal.

See Also

References

[1] - https://github.com/bitcoin-sv/bitcoin-sv/blob/7fd177c7c443ff7723d88c5465fbf39285388e30/src/primitives/transaction.h