Double Spending is a problem from digital cash
- due to the ease of copying bits (as opposed to physical bills or coins), it is easy to spend a digital coin twice. (Actually, spending a coin more than once is sometimes OK - there are digital cash systems that allow you to spend a note N times. However, it is still called 'double spending' when you spend the note N+1 times.)
There are two ways to avoid the double spending problem with digital cash:
- Verify that the note is valid with the bank at the time of spending.
This requires the merchant to contact the bank when a coin is spent, checking if it is valid. For small transactions, this is sometimes done propabalistically - the merchant checks sometimes, but not always. This requires that the merchant knows who the spender is (so double spending can be punished.)
Systems that depend on this is called 'online systems', and are considered primitive. They usually have the defect that the digital cash can only travel a single step, making it more likely that the bank can use propabalistic analysis to find the spender's identity.
- Make spending a note too many times reveal the identity of the double spender.
The most common way to do this is through cut and choose protocols. However, this isn't the only way to do this - for instance, Stefan Brands has developed a system called Choiceless Digital Cash which reveals half a spender's identity in the spending process, without needing to go through the cut and choose process during note creation or spending. A writeup on this is coming shortly; my references contains some errors I just need to sort out first.