<p>Bitcoin doesn't work on balances, it works on transaction inputs and outputs. A transaction's inputs must specify unspent transaction outputs (UTXO) of previous transactions. And clients maintain an index of UTXO to easily find the referenced outputs.</p>

CC BY-SA 3.0
2014-03-20T00:09:06.997Z
Other than for ease of computation, is there a reason for this? Also, I'm finding [this question](http://bitcoin.stackexchange.com/questions/22997/how-is-a-wallets-balance-computed) illuminating
Earlz
CC BY-SA 3.0
2014-03-20T00:22:14.337Z
@Earlz: I guess it boils down to ease of computation.
Meni Rosenfeld
CC BY-SA 3.0
2014-03-20T00:07:46.170Z
2014-03-20T00:07:46.170Z
Meni Rosenfeld
<p>To prove a transaction is valid, you must prove that the source address has a balance at least as much as the transaction. How does one prove this in a performant manner? The block chain of bitcoin last I checked is 16G. Surely miners don't scan through 16G of data to check every block to track all transactions that address has ever had. </p>

<p>How do miners and clients speed this up to a fast and cheap operation? </p>

CC BY-SA 3.0
2014-03-21T03:57:15.667Z
In essence, they do scan the whole block chain. But they do most of the work up front, when they initially download the chain. Everything that will be needed for verifying future transactions is indexed or cached at that time.
Nate Eldredge
<transaction-verification><utxo>
How do miners/clients prove a transaction is valid?
Earlz
# How do miners/clients prove a transaction is valid?

(Asked by: username_0 on 2014-03-20)

To prove a transaction is valid, you must prove that the source address has a balance at least as much as the transaction. How does one prove this in a performant manner? The block chain of bitcoin last I checked is 16G. Surely miners don't scan through 16G of data to check every block to track all transactions that address has ever had.

How do miners and clients speed this up to a fast and cheap operation?

**Tags:** transaction-verification, utxo

> **Comments:**
> **username_1**: In essence, they do scan the whole block chain. But they do most of the work up front, when they initially download the chain. Everything that will be needed for verifying future transactions is indexed or cached at that time.  

---

## 1 answers

### Answer by username_2 on 2014-03-20. Score: 3

Bitcoin doesn't work on balances, it works on transaction inputs and outputs. A transaction's inputs must specify unspent transaction outputs (UTXO) of previous transactions. And clients maintain an index of UTXO to easily find the referenced outputs.

> **Comments:**
> **username_0**: Other than for ease of computation, is there a reason for this? Also, I'm finding [this question](http://bitcoin.stackexchange.com/questions/22997/how-is-a-wallets-balance-computed) illuminating  
> **username_2**: @username_0: I guess it boils down to ease of computation.  

---

