by Benedikt Herudek
Blockchains are commonly compared to databases, for obvious reasons as they store transactions. However, one could just as well understand them as a middleware connecting endpoints via permanently stored transactions. Bitcoin works as a technology to exchange currency, which is a specific and simple form of parties exchanging information. If we could generalise and extend this notion of information, we would be able to build a decentralized middleware.
One hope one could connect to such a middleware would be that technologically and organizationally, it would leave no room for one data monopolist (Facebook, Uber, Airbnb et al) to mediate transactions and take too large of a cut. Just like bitcoin takes out banks from the middle – man position, a distributed middleware allowing exchange of any type of information (not just currency), might be able achieving something similar.
This post will not describe how such a Blockchain-ish' distributed middleware could be implemented, one high level attempt can be found here. The attempt goes at great length attempting to avoid standards for data exchange formats.
Take Facebook as an example. Arguably, the main service a platform like Facebook offers is that it structures conversation such into one data format, that all on the platform can converse with each other. Imagine, we magically had a ‘machine babelfish’ that would allow applications to seamlessly converse with each other over the internet. A net we could image then would consist of many small to medium to large private Facebook-alikes, which might offer similar or different features but also would allow its members to talk to any other Facebook-alike in the net. If such a ‘machine babelfish’ existed, there would be no need for users to subscribe to Facebook. Users might stick with Facebook, but they might just as well prefer a Facebook-alike , where they might find some desired features, e.g. data protection and privacy or simple the colour of a button on the UI. The same argumentation would go for any trading platform: if small platforms could connect seamlessly, there would be no need for one Uber or Airbnb platform to unify them all to allow them to communicate and trade. We would have many small/ medium / large Ubers talking to each other and allowing members on those platforms to trade with users on another uber like platform. Features for specific user groups could out compete a ‘one size fits all’ approach, as long as these parties would be willing to connect to such a middleware, which all but the 1-2-3 biggest players would be.
We will call such a System a DAM (Distributed Autonomous Middleware), it would need to meet the following features:
- Shared infrastructure, rendered by network members incentivised by System tokens
- Ability to ‘log’ transactions in an immutable Blockchain
- Distributed Autonomous Organization maintaining code and deciding on a.o. fees
- Open Access, allowing anyone can connect.
- Ability to cryptographically secure and obfuscate data
- Economically viable for those providing the infrastructure, Miners in Bitcoin
- Appropriate Services (throughput, performance) to exchange information between Systems for users
- Any Application information can be exchanged
- There are no or hardly no fixed data format exchange standards
Points (1) – (7) can be found in one or other way in Bitcoin or the Bitcoin eco system. Of course, using these features for a real–live middleware requires some serious thoughts, a.o. around throughput and performance.
For a middleware connecting any application for any information exchange obvious (8) is an obvious demand – but complex: there is a myriad of use cases for applications communicating and even for one and the same use case, one can choose all kinds data format, be it an xml standard, a csv file, a binary format or any custom format.
So, shouldn't we just have an industry standard, a consortium or board, where we have all parties discussing and agreeing on data formats ? Maybe we need Linux Foundation to come with some kinds of Blockchain Transaction standard for all these heterogeneous use cases. Possible & proven – but the problem with standards is that they tend to be inflexible, in need of maintenance and sometimes have a tendency to ossify. The moment you have a consortium board you at least have the risk of those getting hi-jacked by large players. This is not a necessity, but ideally a truly decentralised platform would rule out this possibility on the technology layer already (9) and be flexible enough to allow for any data exchange format.
It remains to be seen, if such a System could be built. There don't seem to be reasons in principle, why this wouldn't be possible. But it certainly would be a challenge to avoid standards or at least make the System very resistant against ossifying standards and a potentially resulting undesired power structure. One of the benefits of a decentralised autonomous Middleware would be that it could do to some large data monopolists what bitcoin tries to do the banks.