Jun 12 , 2018

IPFS is not what you think it is

At Bluzelle, we are often asked how our decentralized database provides an advantage over IPFS, or why one would want to use our service over theirs.
By Isabel Scroggin

Though we can (and will) give answers to those specific questions, I argue that the implied comparison is not really the right way to think about the Bluzelle and about IPFS. Though in principle they provide the same semantics (storing arbitrary data), it would be a mistake to use them to solve the same problems because they are intended for very different settings.

IPFS is as much about efficiently transmitting data as it is about storing it. In their technical writings, they make many comparisons to bittorrent and HTTP — transport protocols that don’t even care where data is resident. IPFS does build upon this, backing the transport with a distributed hash table for long term storage of data, but the storage is nonetheless only one concern.

IPFS lacks a strong economic model, and because of this it cannot by itself provide a large scale database-as-a-service model. It depends on the idea that at least most of its nodes are altruistic, in that they voluntarily want to support the IPFS as a cause. The expectation is that all participants are interested in offering resources and using them i.e. they want to look up data on IPFS and they’re willing to share resources to support IPFS at the same time. The simple economic model that IPFS does support is basically a “bit market”- you can’t keep downloading forever without also uploading some. If everyone wants to be on both sides of the market, this works well.

That assumption holds in a voluntary-collaboration setting (such as p2p networks or academic research), or in the optimistic future in which IPFS replaces HTTP as the protocol that is synonymous with “the Internet” to most of the world. However, it falls flat in the database-as-a-service case: the public cannot be expected to devote lots of storage and bandwidth to hosting huge volumes of business’s private data for free, and IPFS alone gives those businesses no way to pay them for it.

Indeed, IPFS is not really optimized for private data at all. Though of course there’s no reason your can’t store encrypted data on it, doing so bypasses many of the benefits that IPFS seeks to achieve in the first place. Properly encrypted data can’t be de-duplicated and it can’t be intelligently cached, because only its owner knows what it is. The result is that accessing encrypted data on IPFS is not much more efficient than HTTP with some simple caching.

The simple economic model also inhibits the reliability that IPFS can offer. Though durability of data is a first-class goal of IPFS, it lacks strong guarantees on the subject against a powerful adversary. There is no repercussion for nodes that are supposed to store data not doing so, other than not being able to offer it for upload. Indeed, if a powerful adversary knows the details of some application using IPFS, then there doesn’t appear to be a way to prevent that adversary from becoming the nodes responsible for hosting some or all of that application’s data, and then “forgetting” a few carefully chosen pieces of it to sabotage the application.

By comparison, Bluzelle provides strong mathematical guarantees on the durability of data and the faithful performance of the database, in part due to its model. These guarantees hold even against the case where a constant fraction of the network is controlled by an intelligent adversary, and we seek not only to prevent this adversary from corrupting data, but also to prevent them from stopping particular reads and writes against the data. The details are beyond the scope of this post, but the curious reader is invited to read our whitepaper or contact me.

Speaking of comparisons, IPFS also does not offer the richness of a proper database that Bluzelle does. It has no notion of columns, range queries, and so on. This is not a lack of features on the part of IPFS, but because (this is a recurring feature in these comparisons) it is a filesystem, not a database, and it is therefore optimized for storing files, not structured data.

Ultimately, IPFS is an important piece of the distributed internet, and it is promising with respect to the problems it aims to solve. The reason that Bluzelle still has a market is not that we do it better than IPFS does, but because we serve different needs than IPFS does: IPFS is a shared public filesystem, and Bluzelle is a decentralized secure database.

Related Posts


Mar 15 , 2019

Things You Should Know About Database Caching

A database is one of the most common uses of data store technology like Bluzelle. This is what most people commonly think of. Additionally this same technology can be used as a cache. This blog will explain in details what is a cache and why it is important.

Read More

Jan 29 , 2019

How Does Bluzelle Help You With GDPR Compliance?

Europe’s General Data Protection Regulation (GDPR) kicks in on May 25 2018. Most readers should have already heard about it in the news, or seen mention of it in their email inbox, as companies worldwide scramble to be compliant with strict new laws that have an impact not just in Europe but worldwide.

Read More