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?