IPFS: What It Is, How It Works, and Who Uses It.

Paolo Gava
Zimrii
Published in
4 min readJul 23, 2018
Hubble Telescope 25th anniversary image: Cluster Westerlund 2 and surroundings.

Hypertext Transfer Protocol (HTTP) utilizing client-server relationships for the first few decades of the internet has proven to be pretty effective for moving around the relatively small files containing text and images that used to be the lion-share of web traffic. Back in the day these files might be a mere 2 kilobytes.

Today the volume of data as well as the sizes of files has increased dramatically. The average web page being requested for viewing averages over 1600 KB and may contain well over 100 objects. When you then consider HD video that is being streamed on demand the numbers get even larger. Our computing speeds and capabilities continue to grow according to Moore’s Law, but we also continue to find new ways to red-line this newfound bandwidth as well.

The promise of the potential of blockchain and distributed ledger technologies is unfolding right before our eyes as new technological advances continue to create amazing new opportunities to improve and reinvent how the internet will handle the ever growing size and volume of data in the world.

What is IPFS?

Interplanetary File System (IPFS) is one such innovation that is being developed by Protocol Labs in an open-source project that is being worked on by hundreds of developers around the world. The result is a peer-to-peer (p2p) file sharing system that seeks to address the shortcomings of the client-server model and HTTP.

Source: IPFS.io

IPFS has the potential for high throughput rates with low latency for distribution of data, but in a decentralized and more secure manner than HTTP and all the annoying 404 messages and broken links experienced on a daily basis.

How does IPFS work?

Here is an oversimplified description of how IPFS functions: If a user wants to retrieve a file on the web that has been saved using IPFS they would ask peers on the network to give you a path to the file instead of making the request to central server as in HTTP. The user would then receive a cryptographic hash of that file that has unique fingerprint of the file.

Here are the primary components that make IPFS possible:

Distributed Hash Tables

Information is stored as key/value pairs in hash tables that are decentralized across the entire network. Scalability is easily achieved as millions of nodes can operate without central coordination. This also provides greater reliability as the entire network does not see any performance fallout when individual nodes leave the network or fail.

Block Exchanges

IPFS utilizes a more general version of BitTorrent between all the millions of potential nodes on the network. Filecoin created a p2p marketplace utilizing IPFS that uses a simplified version of the BitTorrent protocol called BitSwap that can handle any type of data.

An example of a binary hash tree. Hashes 0–0 and 0–1 are the hash values of data blocks L1 and L2, respectively, and hash 0 is the hash of the concatenation of hashes 0–0 and 0–1. Source: Wikipedia

Merkle DAG

This refers to to combination of a Merkle Tree and a Directed Acyclic Graph (DAG). Ralph Merkle is one of the most brilliant public cryptography minds of our time. Here is a great article that summarizes the Merkle Tree in detail. A family tree is a simple example of a DAG. When combined, a Merkle DAG creates a structure of hashes to reference the objects and blocks of data. This makes the data immutable because any tampering would result in a very obvious change to the hash. THE central element of IPFS that makes it all work is the use of a generalized Merkle DAG.

Version Control Systems

Github is the most well-known example of a version control system. This allows contributors all around the world to collaborate on a project and easily duplicated and edit multiple versions of file and later have more updated versions of a file merge with the original file.

Who is using IPFS?

There are a wide range of use cases that are being developed that showcase the versatility of IFPS. This is especially true with projects or applications that utilize Ethereum smart contracts. Presently it can be cost prohibitive to store volumes of data in this manner and without an innovation such as IPFS could inhibit the growth in decentralized apps (DApps) across the entire ecosystem.

Notable IPFS Projects:

Social Media: Akasha

Live Stream Video: Livepeer

Sharing Economy Marketplace: Origin

DApp Infrastructure Provider: Infura

Here is a more exhaustive list of IPFS projects.

--

--