Digital currencies are often discussed in the context of finance, technology and economics. The Blockchain - the technology which applications like Bitcoin are built on - is significant because it removes the need for trust or an intermediary between unrelated parties transacting with each other. So far, the most influential and famous digital currency is Bitcoin.
This post is intended to introduce the basic concepts of digital currencies and the problems a distributed ledger system needs to overcome.
A digital currency is an internet based medium of exchange. Units of digital currency are not printed, are not physical, and represent nothing. A unit of currency is produced by running algorithms to solve complex mathematical problems. When a solution is found, a unit of currency (for example, 1 Bitcoin) is generated.
Because people believe that in future, other people will believe it does, and because people are willing to trade real goods and services in exchange for it.
This is the same as for dollars, sterling and euros (fiat currencies) which also don’t represent anything physical. (Although these examples are supported by laws or regulation).
In the past, creating a new currency without the support of government hasn’t been practical because:
The technological breakthrough was preventing double spending without requiring an intermediary. This is made possible by using cryptographic techniques developed over the last few decades, and cheap, powerful computers which have only recently become available.
With conventional currencies everyone’s balance and transactions are recorded in one central ledger (a list showing how much money each account has) and each account holder only has access to their own balance and transactions. With digital currencies, a copy of the entire ledger (every transaction ever made by everyone) is held on each computer (or node), and anyone can see everyone’s transactions.
Conventionally, if two parties wish to make a remote transaction then they need a bank to be the intermediary. The bank mediates by updating the central ledger to record the change in each parties funds as a result of the transaction. This is how one party knows if the counter-party is able to pay, and how payment is confirmed. If there is only one copy of the ledger, maintained by the bank, then the bank must be involved in every transaction between its account holders. This need for an intermediary increases the complexity and cost of doing business.
To send money, a message is broadcast to the network that the amount in your account should decrease and the amount in another account should increase. Each computer in the network (a node) which receives this message will check its authenticity, make the changes, and pass the message along to other nodes.
For a transaction to be accepted and entered into the distributed ledger, its authenticity needs to be verified. Because the ledger is distributed, everyone can see everyone else’s transactions. Therefore user authentication and transaction authorisation needs to be possible without compromising a user’s ability to send secure payments in future.
There is also the problem of double spending - because the currency is neither physical, printed or representative of anything, how do you prevent a user from spending their currency more than once, or simply creating as much new currency as they want?
Another problem is the addition of new transactions to the ledger from many unrelated users. If each party has their own copy of the ledger, updating (or changing) it as they want, how would the ledgers completeness and accuracy be assured? How would you update your ledger to take account of transactions between third parties, and how would you know the order in which they occurred?1 The blockchain is remarkable because it is the first technology to solve all of these problems. Future posts will consider each of these problems are overcome.