- Distributed - IPFS is made of multiple IPFS nodes, so not one entity can control what is shared on the network.
- Immutability - Content that is shared on IPFS cannot be changed or altered.
- Addressability - Content that is shared on IPFS uses unique addresses to locate content on the network.
- Portability - Data that is pinned to IPFS can be re-pinned or transferred to other nodes, helping valued content persevere on the network.
- Garbage Collection - The way IPFS handles data works in such a way that any content that is not pinned by a node will eventually fall off the network, keeping it clean from unwanted data and clutter.
How Does IPFS Work?
The best way to understand IPFS is to see it as an alternative to HTTP. With HTTP server model the end user has a computer which makes a request to see content from a server, then that server sends back the requested content. This is a simple two way communication, and while there are more complex instances, the key is that the data is stored on the server and has ultimate control of that content.Why IPFS?
Blockchains have an incredible ability to keep a long ledger of transactions and who sends or signs them, however blockchains are terrible at storing data. Since blockchains require gas fees to be paid anytime data is stored on the blockchain, larger forms of data can cause astronomical prices. As of 2023, storing 1GB of data on Ethereum would cost around $250,000,000! This caused a problem in particular for NFTs as they were first taking off. NFTs, or really anything being used on the blockchain, will usually have a token element that is on chain that has a pointer to data off-chain (referred to as the token URI). This pointer is usually a link to a metadata file in the form of JSON, which has information like the name of the NFT, a description, and usually another link to an image that is also off-chain. Back in the earlier days of NFTs these pointers or token URIs were centralized servers, and that caused a problem. There was nothing stopping the owner of that server from changing the data to be something completely different. A link likehttps://drive.google.com/nft/pinnie.png
could be dynamic; at any time the owner of that file could upload a picture of something else and name it pinnie.png
and the link would still be the same. What was the point of buying a piece of art on the blockchain if it could change and be worthless?
pinnie.png
being replaced with something else since you couldn’t simply just change the name. Due to the cryptographic nature of IPFS, anything shared on IPFS is immutable and cannot be changed.