Bitcoin and preventing double spending in decentralized digital currencies
There has been a lot of work done in this area. A good survey is the first chapter of "Handbook of Financial Cryptography and Security" (for the crypto) and the seventh chapter (for a survey of technologies). 

The first scheme to prevent double spending and not require a public global transcript is, to my knowledge, by Chaum, Fiat and Naor [Crypto 88]. In their model, users obtain digital cash that is unlinkable to their identity but if they double spend the coin, then with high probability it will reveal their identity when the coins are eventually returned to the bank. CFN is very inefficient and there has been much work on improving it.