IPFS: Decentralized Storage That's Not Really Decentralized
Your NFT says 'stored on IPFS.' Sounds decentralized, right? Let me tell you what actually happens to your files.
Dive Deeper with AI
Click → prompt copied → paste in AI chat
"Your file is on IPFS! It's decentralized! It can't be censored!"
This is what they tell you.
Here's reality:
Your file is on IPFS. Nobody is hosting it. It's gone.
The decentralized dream meets the economic reality. Let's talk about it.
What is IPFS?
InterPlanetary File System. A peer-to-peer network for storing and sharing files.
Instead of "get file from this server," it's "get file with this content hash."
When you upload a file to IPFS, it gets a unique identifier based on its content - a CID (Content Identifier).
Anyone with that CID can request the file. Anyone hosting the file can serve it.
In theory: censorship-resistant, distributed, permanent storage.
In practice: it's complicated.
How it actually works
You upload a file to IPFS.
Now what?
The file exists on YOUR node. You're hosting it.
If you turn off your computer? The file disappears from the network.
"But it's decentralized!"
Only if someone else has a copy. IPFS distributes files across nodes that CHOOSE to store them.
Nobody is obligated to store your file. If nobody cares about it, it vanishes.
The pinning problem
To keep files available, you need to "pin" them.
Pinning = telling a node "keep this file, don't delete it."
Options:
Self-hosting. Run your own IPFS node. Keep it online 24/7. Your file stays up as long as you do.
Pinning services. Companies like Pinata, Infura, Web3.Storage that pin files for you. For a fee.
Filecoin. Economic layer for IPFS. Pay miners to store your files. Theoretically permanent.
Notice anything? All of these involve paying someone or running infrastructure yourself.
"Decentralized" storage that relies on paid services or your own server isn't that different from AWS.
The NFT problem
Most NFTs store images on IPFS.
Sounds good until you realize:
- The NFT project pins the images initially
- Project runs out of money or abandons ship
- Pinning service stops being paid
- Images disappear
- Your NFT now points to nothing
This has happened. It will continue to happen.
"But CID is immutable! The link never changes!"
True. The LINK is permanent. The FILE might not be.
A permanent pointer to a 404 is still a 404.
Gateway centralization
Even when files exist, how do you access them?
IPFS content is accessed through "gateways." Web servers that fetch IPFS content and serve it over HTTP.
Guess what the most popular gateways are?
- ipfs.io (run by Protocol Labs)
- cloudflare-ipfs.com (run by Cloudflare)
- pinata.cloud (run by Pinata)
Most IPFS traffic goes through a handful of centralized gateways.
If Cloudflare decides to block certain content? That content becomes hard to access for most users.
"Just run your own gateway!"
Sure. And most people can't or won't.
Arweave: The alternative
Arweave takes a different approach.
You pay once. Your file is stored "forever."
How?
- You pay an upfront fee based on file size
- That fee goes to miners who store data
- Economic incentives (supposedly) keep data available long-term
It's not perfect:
- "Forever" depends on Arweave existing forever
- Storage economics might break down
- Less decentralized than pure IPFS
But for NFT metadata, it's arguably better than IPFS pinning services.
At least your payment model is clear.
The content moderation question
"IPFS is censorship-resistant!"
Sort of.
True: Content exists on a hash. Anyone who has it can share it.
Also true: Gateways can block content. Pinning services can refuse to pin content. Node operators can choose what they host.
Child abuse material? Gateway operators and pinning services remove it.
This is... probably good? But it also means IPFS isn't truly censorship-resistant. It's "you can always run your own infrastructure" resistant.
For most users, if major gateways block something, it's effectively gone.
What this means for you
If you're using IPFS:
For NFTs - Verify the pinning strategy. Who is paying? What happens if they stop?
For dApps - Is the frontend actually on IPFS? Or just a marketing claim? Many "decentralized" apps run frontends on AWS.
For storage - Understand the economics. Free doesn't last. Paid services are fine but that's just renting servers with extra steps.
For permanence - Consider Arweave for things that MUST survive. IPFS alone doesn't guarantee permanence.
The uncomfortable truth
IPFS is useful technology. It's not magic.
The decentralization spectrum:
- AWS - One company stores your stuff
- IPFS with Pinata - One company stores your stuff (but with content addressing)
- IPFS with multiple pinning services - A few companies store your stuff
- IPFS with Filecoin - Distributed miners store your stuff (for payment)
- Self-hosted IPFS - You store your stuff
Only the last one is truly "decentralized." And it requires running infrastructure.
This isn't a criticism of IPFS. It's a reality check on what "decentralized storage" actually means in practice.
The future
Interesting developments:
Filecoin deals - Getting cheaper and more accessible.
Storage DAOs - Collectives that pool resources to maintain important data.
Farcaster approach - Protocol owns critical data, other data can disappear.
Layer 2 storage - Store availability proofs on-chain, data off-chain.
The tech is evolving. But the fundamental problem remains:
Storing data costs money. Someone has to pay. If nobody pays, data disappears.
"Decentralized" doesn't change economics.
Bottom line
IPFS is a tool, not a guarantee.
Before trusting it:
- Who is pinning this content?
- What's the business model for continued hosting?
- Is there a backup plan?
"Stored on IPFS" without context is marketing.
"Stored on IPFS, pinned by X, with Filecoin backup" is information.
Know the difference.
Next: Layer 2s and bridges - scaling solutions that create new risks.