Skip to main content
added 239 characters in body
Source Link
Murch
  • 77.8k
  • 35
  • 190
  • 641

Outputs cannot be changed. They can only be created and spent. Since it is unlikely that you'll have the exact matching amount available when sending funds to a recipient, most transactions therefore need to send back change to the sender.
This ties into how transaction fees work: Miners can collect the difference between the input value and the output value as transaction fees. Thus, any funds not explicitly sent back to the sender become transaction fees.

Outputs are explicitly created by transactions and can then be uniquely tracked by means of their outpoint. The outpoint consists of txid:vout, i.e. the transaction hash of the transaction that created an output, concatenated by a colon with the position of the output in that transaction's output list.
Tracking outputs explicitly mitigates replay attacks, makes it possible for transactions to confirm in various orders, allows updating of transactions, facilitates chaining transactions explicitly to each other (ee.g. used for Lightning Network), and supports use of many addresses for better privacy.

  • mitigates replay attacks and double-spend attacks (after confirmation)
  • makes it possible for multiple transactions from the same wallet to confirm in various orders, allowing for transactions to signal different priorities
  • allows updating of transactions
  • facilitates chaining transactions explicitly to each other (e.g. used for Lightning Network)
  • require little information for thin-clients to know about spendable funds
  • supports use of many unrelated addresses for better privacy

The main disadvantages of the UTXO-based design are that it is somewhat counter-intuitive compared to account-based designs, and that it requires more data to identify the spent funds.

Outputs cannot be changed. They can only be created and spent. Since it is unlikely that you'll have the exact matching amount available when sending funds to a recipient, most transactions therefore need to send back change to the sender.
This ties into how transaction fees work: Miners can collect the difference between the input value and the output value as transaction fees. Thus, any funds not explicitly sent back to the sender become transaction fees.

Outputs are explicitly created by transactions and can then be uniquely tracked by means of their outpoint. The outpoint consists of txid:vout, i.e. the transaction hash of the transaction that created an output, concatenated by a colon with the position of the output in that transaction's output list.
Tracking outputs explicitly mitigates replay attacks, makes it possible for transactions to confirm in various orders, allows updating of transactions, facilitates chaining transactions explicitly to each other (e.g. used for Lightning Network), and supports use of many addresses for better privacy. The main disadvantages of the UTXO-based design are that it is somewhat counter-intuitive compared to account-based designs, and that it requires more data to identify the spent funds.

Outputs cannot be changed. They can only be created and spent. Since it is unlikely that you'll have the exact matching amount available when sending funds to a recipient, most transactions therefore need to send back change to the sender.
This ties into how transaction fees work: Miners can collect the difference between the input value and the output value as transaction fees. Thus, any funds not explicitly sent back to the sender become transaction fees.

Outputs are explicitly created by transactions and can then be uniquely tracked by means of their outpoint. The outpoint consists of txid:vout, i.e. the transaction hash of the transaction that created an output, concatenated by a colon with the position of the output in that transaction's output list.
Tracking outputs explicitly, e.g.

  • mitigates replay attacks and double-spend attacks (after confirmation)
  • makes it possible for multiple transactions from the same wallet to confirm in various orders, allowing for transactions to signal different priorities
  • allows updating of transactions
  • facilitates chaining transactions explicitly to each other (e.g. used for Lightning Network)
  • require little information for thin-clients to know about spendable funds
  • supports use of many unrelated addresses for better privacy

The main disadvantages of the UTXO-based design are that it is somewhat counter-intuitive compared to account-based designs, and that it requires more data to identify the spent funds.

added 422 characters in body
Source Link
Murch
  • 77.8k
  • 35
  • 190
  • 641

Right to the point: It is by design of the protocol that outputs can only be spent in their entirety. Outputs cannot be changed. They can only be created and spent. Since it is unlikely that you'll have the exact matching amount available when sending funds to a recipient, most transactions therefore need to send back change to the sender.
This ties into how transaction fees work: Miners can collect the difference between the input value and the output value as transaction fees. Thus, any funds not explicitly sent back to the sender become transaction fees.

Outputs are explicitly created by transactions. Transactions essentially are an order to the network to redistribute some funds. There is a list and can then be uniquely tracked by means of inputstheir (aka outputsoutpoint. The outpoint consists of previous transactions) to be destroyed and a listtxid:vout, i.e. the transaction hash of new outputs to bethe transaction that created.

The sum an output, concatenated by a colon with the position of the output in that transaction's output list.
Tracking outputs must be smaller than or equalexplicitly mitigates replay attacks, makes it possible for transactions to the sumconfirm in various orders, allows updating of inputstransactions, facilitates chaining transactions explicitly to each other (excepte.g. used for the block reward transactions where new coins are createdLightning Network), and supports use of many addresses for better privacy.

  The differencemain disadvantages of inputs and outputs can be collected as transaction fee. I.e. transaction fee = inputs - outputs.

It seemsthe UTXO-based design are that it is somewhat counter-intuitive compared to meaccount-based designs, and that it would berequires more complicateddata to synchronize the status ofidentify the network when outputs could also be changedspent funds.

Right to the point: It is by design of the protocol that outputs can only be spent in their entirety. Outputs cannot be changed. They can only be created and spent.

Outputs are created by transactions. Transactions essentially are an order to the network to redistribute some funds. There is a list of inputs (aka outputs of previous transactions) to be destroyed and a list of new outputs to be created.

The sum of the outputs must be smaller than or equal to the sum of inputs (except for the block reward transactions where new coins are created).

  The difference of inputs and outputs can be collected as transaction fee. I.e. transaction fee = inputs - outputs.

It seems to me that it would be more complicated to synchronize the status of the network when outputs could also be changed.

Outputs cannot be changed. They can only be created and spent. Since it is unlikely that you'll have the exact matching amount available when sending funds to a recipient, most transactions therefore need to send back change to the sender.
This ties into how transaction fees work: Miners can collect the difference between the input value and the output value as transaction fees. Thus, any funds not explicitly sent back to the sender become transaction fees.

Outputs are explicitly created by transactions and can then be uniquely tracked by means of their outpoint. The outpoint consists of txid:vout, i.e. the transaction hash of the transaction that created an output, concatenated by a colon with the position of the output in that transaction's output list.
Tracking outputs explicitly mitigates replay attacks, makes it possible for transactions to confirm in various orders, allows updating of transactions, facilitates chaining transactions explicitly to each other (e.g. used for Lightning Network), and supports use of many addresses for better privacy. The main disadvantages of the UTXO-based design are that it is somewhat counter-intuitive compared to account-based designs, and that it requires more data to identify the spent funds.

Post Undeleted by Murch
Post Deleted by Murch
Source Link
Murch
  • 77.8k
  • 35
  • 190
  • 641

Right to the point: It is by design of the protocol that outputs can only be spent in their entirety. Outputs cannot be changed. They can only be created and spent.

Outputs are created by transactions. Transactions essentially are an order to the network to redistribute some funds. There is a list of inputs (aka outputs of previous transactions) to be destroyed and a list of new outputs to be created.

The sum of the outputs must be smaller than or equal to the sum of inputs (except for the block reward transactions where new coins are created).

The difference of inputs and outputs can be collected as transaction fee. I.e. transaction fee = inputs - outputs.

It seems to me that it would be more complicated to synchronize the status of the network when outputs could also be changed.