Protocol Labs is spearheading the efforts of building the next generation of the internet. Modelled on the Bell Labs (research company credited with revolutionary technologies, including radio astronomy, the transistor, the laser, Unix, C and C++), Protocol Labs starts, supports and grows breakthrough computing projects in Web 3.0.
Founder Juan Benet created the InterPlanetary File System or IPFS – a new standard in the decentralized web world for internet access.
The internet is a result of the design decisions made a few decades ago.
We use a mechanism called location addressing to access webpages (Identifying content by its location). So when you type out http://www.athoughtpot.com, the domain name basically points to the server where the blog content is hosted and retrieves it from there.
So Why is this problematic?
The best analogy to understand is imagining accessing a web page as getting a book from a library.
You see why this is problematic? The entire responsibility of anyone in the world reading a particular book is on the library storing it. The library needs to be open 24/7, can’t move the book to another location without informing the whole world, needs to ensure no one tears of a page of the book, all the while making sure, anyone who locates the book gets a copy.
And what happens if the proprietors of the library turn malicious. They can restrict access to readers they don’t like, they can make readers jump through many ads to access it, or they can simply choose to manipulate the book contents with their agenda to unsuspecting readers!
As utopian as it may sound right now - Servers are being run by a handful of tech companies who we have no reason to trust for maintaining the entire backbone of the internet – Servers have been subjects to hacking, servers have had outages, server access is being blocked all the time by governments per their convenience, and it is likely to get worse if we continue to rely on web 2.0
The key innovation of a decentralized protocol like IPFS is to use content addressing rather than location addressing.
Content Addressing uses a fingerprint like identifier for each content (image/video/audio) generated via a hash function.
IPFS works by asking any host/node if they have the CID fingerprint of the content and then using the closest node to deliver the content.
While Location addressing tells us where to find a file, Content addressing tell us what to find and how to find it. The CID verifies the content of the data resource and then provides the means to retrieve the data.
In the IPFS system, files are broken down into smaller chunks, converted into CIDs using a hash function and then linked together using ILPD (which uses Merkle DAG structure) to the base CID of the file. Obviously, this is gross abstraction.
Merkle DAGs or Merkle Directed Acyclic Graphs is a data structure linking the various chunks together. One of the key defining features is that each node in this Merkle DAG is addressed and can be accessed independently, making it an entity of its own. (This is a whole subject in its own and I will try to deep dive into it in a later post)