I am a big fan of decentralization. I believe that this is the best model for human interaction and it applies to so many things. Recently I discovered decentralized applications and now I’m trying to learn everything I can about them because I think they have tremendous potential.
What is decentralization?
When I talk about decentralization, I’m referring to taking decision making power and authority from one central source, or collection of sources, and spreading it out to much smaller and less powerful units, eventually spreading all the way out to the individual.
This applies to the business world in the form of taking old management structures and throwing them out of the window, and having as flat of a management structure as possible so that each individual is capable of making impactful decisions.
This applies to the state in the form of reducing the size and scope of government and even in breaking up governments. I believe the world would be a better place if the responsibility of actions and consequences was moved as close to the individual as possible.
This applies to the internet in the form of taking centralized applications that run on centralized servers - which contain user data in one single source, and and act as one single source of failure - and transforming them into decentralized applications that run on distributed networks where no one single source has full control over the application, it has no single point of failure, and the user retains control of their data. Basically this concept is to take the power away from the internet giants and put it back into the hands of the indivudal internet users.
I’m not going to dive into the morality and economics of my general support for decentralization, but if you’re interested I’d recommend you check out the work of Ludwig Von Mises and read about the Economic Calculation Problem
As for the internet, well the answer is simple: resilience. The more decentralized your internet application is, the better it can handle attacks, censorship, hardware failures, network failures, and so on. The way the internet works today, there is a little bit of decentralization with content delivery networks, but the core state, or the source of truth for the application, is centralized to one data source. Now they have protections for this server, or rack of servers, or cloud of virtual servers, etc, such as backups, clusters, geo-redundancy, etc. But ultimately it comes down to one central source of truth which can be taken down by hackers, governments, etc. When you use web applications, you are entrusting them to store your data, and you are creating a massive target that is very attractive for people who are up to no good.
Well that’s what I’m trying to figure out. Blockchain technology seems to hold the key for making truly decentralized applications, but I’m not sure yet as to which actual implementation is best. Also, it may be that there is no single answer but that the truly decentralized apps will make use of multiple blockchain technologies as well as a mixture of supplemental technologies, such as torrent-based data distribution.
Right now I’m looking into many different technologies. Neo and Ethereum are blockchain technologies that have smart contracts - which are basically like automatically funcitoning escrow accounts that will accept and distribute funds based on a set of rules implemented in code; the code is actually published on the blockchain itself. Another interesting tech is Blockstack, which uses the Bitcoin blockchain to tie a person’s ID to a wallet address taht can be used to unlock their data. The data is stored on a file sharing site, or in a torrent, etc and can only be viewed by the owner or users they authorize for viewing. Another technology is IPFS: The InterPlanetary File System. Rather than simply being a torrent for file sharing, IPFS creates an entire filesystem that is distributed and peer-to-peer.
There are others out there of course, and I haven’t had the time to investigate them all thoroughly. But these are exciting times. One way or another we are going to see a paradigm shift in how internet applications are delivered, and I think this is going to be a good thing for consumer satisfaction, privacy, and resistance to censorship. In addition, if blockchain technology can revolutionize the financial industry in the way that the smart contracts crowd seems to think it will, then we are going to see a complete disruption in basically every industry out there. The entire idea of paying people to facilitate a transaction might become ancient history (think zero closing costs when buying a house.) The whole idea of paying for something up-front might be replaced with automatic payments upon completion of the job/service/whatever. Think about paying UPS for a delivery but only after the package has actually arrived safely.
Anyway, this got a lot longer than I wanted. Long story short: decentralization is good. Individuals are the best representatives of themselves. Tecnology is outpacing the institutions of control, and it’s a great thing.