Continuing on my series about currencies, I thought it would be useful to talk about some of the fundamental properties that currencies have. Feel free to ready the previous articles see On currencies, virtual or otherwise and 4 flavors of the mighty dollar after this one or in order.
My main audience for this article are people who know at least some computer programming, so I will try to explain it with code.
In the beginning there was trade
Commerce used to mean trading 5 bear skins for 8 amphoras of wine. While this is the fundamentally basic form of trade, we now know this as barter and it is looked at in slightly a strange way or as if it was some sort of novel hack.
Trade is the core operation we are interested in solving
Hides for kebabs?
Barter worked for most of our prehistory, but the moment civilizations started appearing it became obvious that this wasn’t particularly scalable. It is very hard to get out from a subsistence economy with barter. The reason being that different things had different value. How many kebabs can I buy with one cow hide? How many bottles of wine?
Lets say I have a cow hide and I want to buy a kebab. It’s not very practical for me to cut off a small piece of it to get my kebab and a cup of wine. I’d first have to find someone who would be willing to trade it for a bunch of smaller items that I can use to trade something for my kebab.
The other problem is, what if the kebab seller already has bought all the cow hides he could possible need this year? Solving this would be finding out what the kebab guy needs selling my cow hide to someone else for that. This could be quite a long complex change of exchange.
On the second day we had money
Money has several properties that solves the above situation. It minimizes the problems of trading.
I simply sell the cow hide for money. With that money I can now buy any number of things, including a kebab. So there is no longer a need to find a chain of trading partners to be able to finally trade my hide for a kebab.
So money is really an abstraction on top of barter.
Fungibility
Fungibility is the most fundamental property of a currency. Essentially one unit of an asset has exactly the same properties as the next one.
Gold is good example. A gram of gold of has the same properties and value as any other of the same purity. Cow hides and Diamonds are not fungible as each one is different.
In Ruby:
As I said in On currencies, virtual or otherwise my definition of a currency is:
A currency is a fungible asset that can be transferred from one person to the other.
So essentially a Currency is a sub class of Money that is fungible between each other.
Intrinsic or Extrinsic Value
A coin made out of gold is literally worth it’s weight in gold. Many national currency names come from that.
The name Dollar comes from the German word Thaler, which itself is short for Joachimsthaler which means “From Joachim Valley”. This valley produced much of Europe’s silver until the Spanish discovered Peru.
Likewise the British Pound has it’s name from originally literally being worth a pound of sterling silver.
Trade flourished with the introduction of money. Much wealth was created and the logistics of transporting large amounts of it around became an issue. Other people who wanted part of your money, pirated your ships and just plain took it away from you.
The solution was to leave it were it was, in your safe where your army could guard it.
One way of transferring it around was to create a piece of paper giving the bearer of said piece of paper the right to exchange it for an equivalent gold coin. Our paper currency today is a distant cousin of this type of currency.
The second way of transferring it was to keep a book of who owned how much of the gold you held in your safe. In the City of London goldsmiths would perform this service. A transfer was done by instructing the goldsmith to transfer ownership of part of it to someone else. Thats pretty much became what a check is today. Nowadays the bulk of all transactions and currencies are book entry, including almost all electronic currencies. Of course rather than having a guy on a tall chair with a funny hat writing entries in the book, servers perform that same job.
With a few exceptions our money nowadays has no intrinsic value, as the metal alloy used in a modern coin or the cost of the paper has little to do with the value. It still does have value which is called extrinsic value.
This abstraction from intrinsic to extrinsic money is pretty much exactly the same as what happened in programming. Early programmers copied values from memory into registers where operations could be performed on them. Programming was revolutionized by the introduction of pointers.
Modern programming languages like Ruby also hide the concept of intrinsic value as everything is abstracted away into an object which by definition is implemented with extrinsic value. But old C programmers would understand it clearly as the difference between primitive and a pointer variables.
The abstraction away from dealing with values in individual CPU registers and memory registers to use pointers, caused a revolution in programming and made it possible for all the data structures we use today such as arrays, hashes etc. Without these we would never have reached the point where you can sit and read this article on your screen.
A bank note is essentially a pointer to some value stored in a vault somewhere.
Any C programmer knows that memory management is one of the hardest issues to deal with. It is very easy to create memory leaks and allow buffer overflow attacks. This is true as well with currencies.
I will cover promises, the breaking of such and other security issues in the next article in the series.
For the previous articles in the series see On currencies, virtual or otherwise and 4 flavors of the mighty dollar. You might also be interested in Benches, Coffee and Bubbles – The origins of Agile Banking which provides more history.