Difference between revisions of "Change"

Line 2: Line 2:
 
When a UTXO is spent, it must be consumed entirely. If the value of the UTXO is greater than the amount being spent, then the difference in the amount must be allocated to a new address that the spender owns; this is a change address.
 
When a UTXO is spent, it must be consumed entirely. If the value of the UTXO is greater than the amount being spent, then the difference in the amount must be allocated to a new address that the spender owns; this is a change address.
  
For example if a customer would like to buy a candy bar from a store for $1 but they only have a $20 bill. The customer cannot pay a partial denomination of the $20 bill; they must pay with the full bill and the merchant must give the customer change back. The merchant owes the customer $19 in this case. Bitcoin works in this same manner.
+
Bitcoin transactions are analogous to a real-life cash transactions. If a customer would like to purchase a video game for $50 but only has a $100 bill, the customer must give the entire $100 bill to the merchant; they cannot cut the bill in half and hand it over. Bitcoin operates in the same manner.
  
 
===Typical example===
 
===Typical example===
Line 10: Line 10:
  
 
=== Change back to spending address ===
 
=== Change back to spending address ===
In a naive implementation, the sender consumes a single UTXO as in the previous example, with the only difference being to receive the change into the same spending address. This means of transacting is not recommended as it does not take advantage of Bitcoin's privacy model.
+
In a naive implementation, the sender consumes a single UTXO as in the previous example, with the only difference being to receive the change into the same spending address. This means of transacting is not recommended as it does not take advantage of Bitcoin's privacy model.  
  
An example of this is [https://whatsonchain.com/tx/defaaec6d8687a27da68d2bd445dac9c1333c4460246309070a5a3cf40f3d6f0 here].
+
[https://whatsonchain.com/tx/defaaec6d8687a27da68d2bd445dac9c1333c4460246309070a5a3cf40f3d6f0 This example] also demonstrates where the difference between the input and output is only the mining fee since a message is being written to the blockchain.
  
 
=== Consolidating UTXOs ===
 
=== Consolidating UTXOs ===

Revision as of 11:43, 15 January 2020

Introduction

When a UTXO is spent, it must be consumed entirely. If the value of the UTXO is greater than the amount being spent, then the difference in the amount must be allocated to a new address that the spender owns; this is a change address.

Bitcoin transactions are analogous to a real-life cash transactions. If a customer would like to purchase a video game for $50 but only has a $100 bill, the customer must give the entire $100 bill to the merchant; they cannot cut the bill in half and hand it over. Bitcoin operates in the same manner.

Typical example

In a standard payment scenario, the sender consumes a single UTXO, paying the spending amount to the receiver's address, then receiving the change into a new address that they control to take advantage of privacy.

An example of this type of transaction can be viewed here.

Change back to spending address

In a naive implementation, the sender consumes a single UTXO as in the previous example, with the only difference being to receive the change into the same spending address. This means of transacting is not recommended as it does not take advantage of Bitcoin's privacy model.

This example also demonstrates where the difference between the input and output is only the mining fee since a message is being written to the blockchain.

Consolidating UTXOs

In some cases, the spender may have many UTXOs that they would like to consolidate. This has the added benefit of reducing the network's total UTXOs, thus shrinking the database that all nodes must maintain. On the other hand the computation for processing these inputs could be high. Potentially miners could process these types of transactions at a lower rate.

An example can be found here.

See Also