Imagine an application that could do it all… Something between reddit, instagram, telegram and eBay. Now imagine everyone on this platform can be anonymous - no IP log, no nothing. The application would not be served from a single server, instead it would be decentralised and accessible through a regular browser. This means, that anyone can participate and communicate / buy / sell anything they want. Because of its decentralised nature, the application could not be stopped or shut down by a government entities. That’s going to allow everyone on this planet to begin engaging directly with each other on the regular Internet and bypassing a lot of middle man that kept us away from each other for so long. We can have direct engagement now. This is the revolution! It evens the playing field…
Without questioning why you would build something like that, let’s talk about how you would build it.
Of course you need a database for this app. But it can not be a traditional database hosted on a server. Instead it has to be a database hosted on multiple nodes and the participating clients. A decentralised database with conflict-free replicated data types, so that replicas can be updated independently and concurrently without coordination between the replicas. This specification narrows it down to two possible peer to peer databases: OrbitDB and GUN. The former uses IPFS and the latter uses WebSockets as a way to store the data. The problem with these two (in fact probably any p2p database) is, that they require in the case of IPFS a bootstrapping and GUN a signaling server. The IP addresses of these servers would be known publicly and can therefore be blocked by the authorities. But maybe we found a solution to this…
Removing the achilles heel
Finally we need a way to authenticate the users. The W3C published a decentralised identity standard and iota picked it up and is working on making a SDK based on iota called identity.ts.
Sooner or later our vision will come true. We are discussing and probably soon actually starting to build a completely decentralised, easy accessible web 3.0 application. If you want to be a part, please contact me.