Hey Chewxy, what do you think will happen if one day everyone decides to move their money onto a blockchain and no longer need banks?
That was a question that a friend asked me last week. I thought about the situation, gave some answers based on my what I understood of the world and the economy, while sketching out in broad strokes, what would happen. Essentially the conclusion was “civil unrest and war breaks out"* There were other conclusions too, I give the alternatives at the end of the blog post .
Then came time to organize Sydney Python. Due to clashing meetup dates with Data Science Sydney, Girl Geek Sydney and other groups, there was a dearth of speakers. So I stepped up and gave a talk based on the hypothetical question. Here are the slides:
The code can be found in this the economics simulation github repository.
A Basic Introduction
A core concept that was quite missing in my friend’s (and many people’s) understanding was the concept of money. Money isn’t a real thing, it’s abstract, and one can often get quite lost in thinking about money in general. So I wrote my code around the idea of how money is created in the economy. While it’s not quite the way you’d be taught in Macroeconomics 101* Which I must add, is an extremely stupid way to teach people economics. I myself struggled throughout uni trying to reconcile micro and macro. IMO, the best way to teach is from first principles: start from micro econs and then move to macro econs, instead of teaching them as two separate subjects that can be taken simultaneously , it certainly holds true to the spirit of the money creation process in the economy.
After years of reading, I finally settled on the Schumpeterian approach to money as the most intuitive idea of money. The general theory that underpins this simulation is that theory of money. To round things up, I find metallism weird and arbitrary, and I find chartalism somewhat plausible though not as convincing as the credit theory of money. Also, I would like to point out that I’m no longer a professional economist, and though I have been keeping abreast somewhat on the latest theories, I’m not the best at them. I would really prefer it if you read this blog post with an open mind and a pinch of salt.
Basic Assumptions
It was quite fun to write a simulation of the economy, starting from first principles* well first-ish, because it's close to a decade since I left uni . Obviously being a simple simulation, there are a lot of assumptions taken to be implicit. Here are some of them:
- The market participants are homo economicus and are driven solely by their utilities and preferences.
- There is a finite preference list* No longer remember my stuff, but I believe this means that the preferences form a closed set .
- Preferences are (weakly) monotonic, complete, convex and transitive.* Someone will actually need to check on whether all three criterias fit, but I'm quite sure it does. Completeness is easy to check, convexness and transitivity are harder to check due to the nondeterministic nature of the simulation .
- There are no financial services in the economy. The reason is to keep this simple. Investment and savings preferences are listed as two extra items in the preferences list for a Person to consider and are generally treated as goods.
- Goods are instantly consumed. There are no storage of goods. Again this is to aid with the simplicity of the model.
- Resources are assumed to be infinite. Again, simplicity's sake
<li>The choices available to a participant in the economy is limited, hence there is no need for elaborate rational choice theory and lottery simulations* An earlier version did have it but it turned out slowing my macbook down a lot .</li>
<li>The market is efficient in reallocation of goods* It most certainly is in this idealized simulation, as longrun equilibrium will often be reached .</li>
Any criticism based on the assumptions listed here are certainly valid (a key criticism people like to jump to when talking about economics is “but humans are not rational!”). Nonetheless, the point is to simulate a simple economy. We can always loosen the assumptions later.
And despite its simplicities, some complex behaviours were exhibited.
Simulation Caveats
There are some tweaks made to the simulation that may slightly differ from orthodox microeconomics. These were made for the purpose of making the simulation run faster, and I don’t believe they affect the outcome much:
Equilibrium Prices
Equilibrium prices in the marketplace is calculated by taking the minimum surplus between supply and demand, instead of finding an actual cross-point between supply and demand. Turns out the function to find the cross point would take way too long to run because there are a lot of loops
Supply
Supply is a linear mapping of the productivity of a person, without taking into account budget. This has the effect of pushing the equilibrium prices a bit higher, but not by much.
Here’s a pseudo-code-ish version of how supply should really look like:
def supply(self, priceMatrix):
quantities = np.zeros((priceMatrix.shape[0], priceMatrix.shape[1]))
for participant in self.participants:
qc = participant.consume(priceMatrix, self.current)
pd = participant.produce(priceMatrix, self.current)
for i, p in enumerate(pd):
if p > qc[i]:
quantities[i] += qc[i]
return quantities
Naturally, the looping bits just made the code exceedingly slow, so I removed it. Likewise, the demand
code is has also a similar comparison with the things a Person has produced.
I found though, it made no difference to the overall simulation.
Price Ceiling
There is a price ceiling on goods. In-universe, the narrative is the Eternal Supreme Leader, Kimberly Il-Smith doesn’t want things to get out of control. In reality, this constraint is added due to computational effectiveness - sure you can set a max price of $100000000000, but it will take half a day to calculate one time period.
Cartesian Product
The allocation of goods is dependent on the consumption of goods given a price matrix. This price matrix should be the cartesian product of all the possible prices for all the possible goods, like this:
Good 0 | Good 1 | Good 2 | Good 3 |
---|---|---|---|
1 | 1 | 1 | 1 |
1 | 1 | 1 | 2 |
1 | 1 | 1 | 3 |
1 | 1 | 2 | 1 |
1 | 1 | 2 | 2 |
1 | 1 | 2 | 3 |
1 | 1 | 3 | 1 |
And so on and so forth... |
This turns out to be super computationally intensive, and a simpler version is used instead:
Good 0 | Good 1 | Good 2 | Good 3 |
---|---|---|---|
1 | 1 | 1 | 1 |
2 | 2 | 2 | 2 |
3 | 3 | 3 | 3 |
And so on and so forth... |
Again, I have found that this had no significant impact on the simulation, except that the equilibrium prices are often a bit higher than the proper version.
A More Complex Simulation
The simulation I wrote provided a very simple basis of how the economy works in the most bare-bones idealized world. One can obviously make it more complex, but all that does is add to the noise of the data generated - making it look more realistic. Please DO try to make it more complicated and tell me what happens. I’d love to have a variant of the simulation where it doesn’t end up in perfect equilibrium. Perhaps there is some variables that can be added that adds multiple attractors to the system* Actually such a thing is quite easy to do - just make the system refer to its past state and bam! Instant dynamical system ?
Heck, throw in some nonlinearities into the equations (with good rationale of course, you shouldn’t just add a non-linearity for no reason), and sample the starting values from a scale free distro! I am curious to see what people can make out of these simulations (though I am confident nobody really bothers)
Takeaway Points
If you clicked into the simple simulation of the economy, you will find some notes I have left, as well as some narrative regarding how the market in this simulated economy works.
What I didn’t really cover in the iPython notebook however, is the takeaway points (it’s somewhat covered in the slides, but I’d like to reiterate them here).
The key takeaway point are these:
- Real economic growth depends on debt
- If there are no debts allowed, investment opportunities dry out
- With lack of investment (or small investments), productivity stalls
- When productivity stalls, the economy stagnates
How did It All Come to War?
Every century, there is great civil unrest which is triggered by a debt crisis a couple of decades before. In the 1920s, the stagnation of world economies led to the rise of Hitler and World War 2. In the 1840s, the stagnation of economies around the world led to new theories and new people regarding the theories of economy - people like Marx, and over in the United States, Civil War broke out* the American Civil War was as much about states rights, abolishment of slavery as it was about dealing with a debt crisis and a stagnating economy (mainly driven by labour shortage), but I'm not the most well read on this topic, only on the economic issues surrounding this topic, so take my words with a huge pinch of salt. . In the 1780s, due to a burgeoning government debt and a stagnating economy (thanks to the support that the French enthusiastically gave the United States), the French Revolution broke out.
All those were really ugly and bloody periods in human history. Sure, there were all the other issues (states rights, slavery, taxation, social inequity, a perceived unfairness against the Germans, etc), but economic stagnation has a capacity to act as a lens to focus those sentiments, leading to civil unrest to break out.
Hence the surprising conclusion that if banks were done away with, we’d end up at war. To recap how we got there in broad strokes: no banks → no money is created → no growth → economic stagnation → civil unrest → war.
Can War Be Prevented?
The war scenario is a super drama-queen scenario, if it weren’t already immediately obvious. I don’t want a war to happen. I fear that very much. Cliometrics isn’t Psychohistory. What would realistically happen if everyone moved their money to the blockchain (and to address the money creation part: P2P loans were to take place instead of bank-loans, and the blockchain were infinite-growth blockchains) would be quite simple.
With the hypothetical assumption that interest rates are set individually, there would either be a race to the bottom of the barrel for interest rates, which would lead to the no-growth situation; or the interest rates would skyrocket. And the rich get richer, while the poor get poorer. Eventually the market will crash, at which we would go back to the no-growth situation, leading once again to social unrest.
Let’s then imagine a possible third solution - a middle ground. So far we have only involved two institutions: the private citizen, and banks. There is one more institution that may solve this problem: governments. Based on the hypothetical scenario above, government bodies will rapidly step in and enforce an interest rate that everyone will have to keep by. This would make managing P2P deals a bit harder* You can argue that Etherum smart contracts would make it easier, but I'd say not , but eventually, the rules will get so complicated that it would be cheaper to outsource the work to an agent to handle these things.
And so, you have come back to the idea of banks. Banks are essentially just that. They’re agents to the principals that we are to manage our money for us. So in fighting the Man, one has become, the Man.
¯\(ツ)/¯
Highly Opinionated
I think by far this is the most highly opinionated talk I have EVER given, and I was quite flustered by it. Most of my talks are fairly straightforward “this is how you do X, Y Z” talks - I try to keep my talks as politically correct as possible.
I anticipated questions from people who do not share my opinion, and strangely enough, none came* I had one comment saying that I shouldn't refer to the τράπεζαι as "Ancient Greek", because "Greece" didn't really exist until the 1800s and we don't call the Ancient Romans "Ancient Italians", so why should we do the same? .
What do you think? Tell me.