IPFS(Interplanetary File System) aims to replace HTTP and seeks to connect all computing devices with the same system of files. At its core, IPFS is a versioned file system that can take files and manage them and also store them somewhere and then tracks versions over time. IPFS is the synthesis of existing protocols combined into one: SFS, Git, Bittorrent, DHT.

# Hashing

Instead of referring to objects (pics, articles, videos) by which server they are stored on, IPFS refers to everything by the hash on the file. Every file gets hashed. The long string that gets created is unique for every file and if the content of the file gets edited, the string changes completely. It is impossible to reverse engineer a file from the hash string. If you want to access a file from your browser, a signal will be sent across the network asking for a file that corresponds to the specific hash.

# Merkle trees

The idea of merkle trees it to create a map of all files which correspond to each other. In IPFS the hash of the file determines it’s link. If you change the file, the hash changes and the link will be different. Let’s take for example Bitcoin. Bitcoin is one huge merkle tree, where every block points to a previous one. But Bitcoin is immutable and in IPFS people will need to change the contents of files over time. That’s why IPFS will distinguish between mutable and immutable links.