At KZen we strive to be up to date not only on the concrete technical advancements in the cryptocurrency field, but also on the broader landscape and trends in relevant domains. As part of that effort, we have learned about an interesting implementation of a hybrid approach, which may provide the community with some interesting general lessons.
One of the greatest promises of Web3 is to release Internet users from the so-called “tyranny” of the monarchic Client-Server paradigm introduced by the cloud and move them to the freedom offered by decentralized or even fully-distributed services.
Applying the terms of political science into the field of technology may explain the zealous mindset of the decentralization supporters. However, it could be that a more pragmatic approach would be more beneficial and constructive.
Last month (September 2018), Cloudflare (a company, and hence centralized) had announced their support for the IPFS decentralized project. Watching how this interesting real-world experiment unfolds may help the community to explore and assess the virtues of hybrid approach.
IPFS (The InterPlanetary File System) mission is to improve our current system of storing and retrieving data. In the words of the Cloudflare blog:
“Usually, when you access a website from your browser, your browser tracks down the origin server (or servers) that are the ultimate, centralized repository for the website’s content. It then sends a request from your computer to that origin server, wherever it is in the world, and that server sends the content back to your computer. This system has served the Internet well for decades, but there’s a pretty big downside: centralization makes it impossible to keep content online any longer than the origin servers that host it. If that origin server is hacked or taken out by a natural disaster, the content is unavailable. If the site owner decides to take it down, the content is gone. In short, mirroring is not a first-class concept in most platforms...
The InterPlanetary File System aims to change that. IPFS is a peer-to-peer file system composed of thousands of computers around the world, each of which stores files on behalf of the network.”
By making the web less centralized, IPFS aims to solve several architectural problems and make data delivery on the web more efficient and more resilient to attacks on its availability (DDoS attacks and censorship) and integrity (unauthorized changes to content).
(For a more detailed explanation, please see the full IPFS paper)
Despite its inherent architectural advantages, the IPFS creator himself in his seminal paper acknowledges that replacing the current protocol stack is a tall order:
“...This is because a “good enough” system for most use cases already exists: HTTP. By far, HTTP is the most successful “distributed system of files” ever deployed. Coupled with the browser, HTTP has had enormous technical and social impact. It has become the de facto way to transmit files across the internet.”
Over the years, the centralized HTTP eco-sphere has found all kinds of solutions to handle some of its inherent centralized shortcomings. Content is distributed through CDN (Content Distribution Networks), some aspects of content integrity are protected through TLS, and some aspects of availability are protected through CDNs and anti-DDoS solutions.
On the other hand, the IPFS solution, although technically promising, is still immature. For example, the tools are not as slick as their HTTP counterparts, IPFS p2p community is not that big, and the incentivization mechanism required to persuade users to host other users’ content on their machines is not yet in place.
To bridge the gaps between IPFS current maturity level and its futuristic promise, Cloudflare has built a bridge to connect the current HTTP world to the IPFS world.
Technically the solution is implemented as a Gateway hosted on https://cloudflare-ipfs.com/ipfs that translates HTTP requests to IPFS requests. This means that anyone can reach or publish IPFS resources on the same infrastructure that they are using for HTTP.
For example, you can read Filecoin White Paper hosted on IPFS with this HTTPS link, https://cloudflare-ipfs.com/ipfs/QmWimYyZHzChb35EYojGduWHBdhf9SD5NHqf8MjZ4n3Qrr/Filecoin-Primer.7-25.pdf, without installing any additional programs on your end.
As a result, many more people are exposed to IPFS and can start using it right away, enjoying some of its benefits and allowing developers to grow the project at scale.
There is some downside to that, as some decentralized promises of IPFS will not be realized in this model. For example, theoretically, Cloudflare can censor (but not change) the content hosted on IPFS for users that use its central gateway.
Many new protocols and solutions are currently being offered in order to get rid of problematic centralized solutions and move to decentralized ones instead.
However, we have to acknowledge that the existing centralized solutions are already very mature and users have gotten used to them, despite their disadvantages. Replacing them in a revolution might not be the best approach. Instead, an evolutionary approach that builds bridges between the old, centralized world and the brave new decentralized world should be taken, even at the expense of hurting some aspects of decentralization.
These bridges can be viewed as “training wheels” for the decentralized bikes that will be eventually removed when the solution has matured enough, or maybe experience will show that some amount of centralization is relevant for certain use cases.
That is why the IPFS experiment is noteworthy, not only for itself, but for the bigger implications on decentralized solutions.