I’ve always been a fan of the free and open web. The practically zero barrier to entry It’s the biggest reason I could get into web development, and I use free and open source software (FOSS) wherever I can.
This past weekend I took a look through some of the talks from the Distributed Web Summit. Some of the greatest minds gathered to try and fix the problem of centralisation that the open web is currently facing. Watching these talks got me inspired again, took me back to a more idealist version of myself, and led to me reworking some fundamental ideas of the banking project.
The banking project is currently aimed at a specific use case: core banking infrastructure for both upstarts and incumbents in the financial industry. The goal is for this code to be open source, have accessible and documented APIs, a sandbox environment, and encourage open development in the notoriously closed financial sector.
After thinking more about what a decentralised web would like like, and reading as much as I could on the topic, I came to realise something. Whenever I, or my peers, develop an application it is by default, in some way, centralised. This is not to say it is bad - this is the environment we learned our trade in. What the decentralised web suggests is a fundamental shift in philosophy: products should look less like current applications and more like the internet.
Applications ~ internet
Applications built like the internet would have the following traits at a minimum:
- No sole owner
- Strong security
- Open code base
- Permissive license
Applications would move from being on the N servers I own, to be on anyone’s servers. As a result, if these applications hold or transmit data, they should employ strong cryptography to prevent bad actors from breaking the system or getting sensitive information.
Product vs Utility
Applying this to applications would change the application dynamic. Instead of a product owned and operated by a single entity, the application would now look a lot more like a utility and public good. If the application is “owned” and managed by the users of said application, this would be the natural result.
Centralisation in the financial sector
The financial sector is currently, and for reason, centralised in various aspects. Each bank is it’s own product, which speaks to other banks, which all speak to separate service providers for payments, foreign exchange, or other services. These banks all then speak to the central bank of their territory and get clearance on their actions. In the financial sector, centralisation is in place to protect customers, manage the relationship between money supply and demand, and provide a non-failing service to customers.
This has shown to be inaccurate over the last decade, time and again. The financial crisis brought to light the dangers of centralisation and how it can actively harm consumers due to the very protections put in place for them. This is a deeper discussion for another time.
There is little differentiating banks with the defining factor being, more often than not, how much they will pay customers to switch their accounts. In the UK some banks will pay over £100 for a new account opening. With the advance of technology banks are becoming more customer service oriented and trying to push debt to increase revenue. These factors will continue to lose relevance as technology pushes onward and more services spring up.
I believe cryptocurrencies will be the inevitable end result of the banking sector. Currently, however, I don’t think there is quite enough momentum for mass adoption (when I refer to mass adoption I mean most of a country). Central banks are going to be around for a while, and arguably serve a valid purpose in the economic policies of most countries.
Having said this, I think we can use some aspects of cryptocurrencies right now while still serving the need of central banks.
The ideal would be to combine the new and the old, creating a solid and capable middle ground effort. One solution could look like the following.
- A bank where there are N nodes running banking software.
- Each node will have a full or partial replicated and encrypted copy of the database.
- Each node would serve as an endpoint for accessibility into the network.
- Banks in different territories would run the same code and be a part of the same network
- The network would have connectivity into payment systems and other services
- Different end points would speak to different central banks
The biggest difference between the above implementation and current distributed systems is that the network is completely decentralized including data. Data will be secured using strong and industry standard cryptography. There are several serious issues to tackle with the implementation of a system above while taking into consideration the reality of bad actors. The blockchain is a great place to draw inspiration from when trying to find solutions to these problems.
I am currently working on a white paper for an implementation of this product. I believe using public key cryptography, network consensus and threshold cryptography this system can be safely implemented. If you want to contribute please get in touch with me.
If a system is to talk to a country’s central bank it has to effectively be licensed as a bank in every territory it wants to operate in. As such, there needs to be a body which acts as the legal entity. There also needs to be normal banking functions integrated, such as:
- Account validation
- Regulatory guidance
- Help desk
- Legal advice
Moving from the idea of a product to one of a utility, it makes sense for this organisation to be global, a non-profit and transparent. With this in mind, I have reached out to contacts in the following institutions to start a conversation:
If you are part of any of the above institutions, or believe there is another one well suited to this project’s mission, please reach out to me.
The financial sector is moving towards to that of a utility. We have the technology to build a system which caters to the demands of central banks, governments and customers - so let’s build it.