Web3 Is Mostly Nonsense, and That’s Okay

“Web3” has become a branding incantation: sprinkle “decentralized” on your slide deck, bolt on a token, and somehow everyone forgets to ask whether the product needs a blockchain. The result is a grifter ecosystem so loud it drowns out the genuinely interesting work. The twist is that you don’t need to hate Web3 to see through it—you need to be able to separate hype from primitives.
Here’s my take: most Web3 projects are unnecessary, and many are actively harmful. But the underlying cryptographic ideas are real, useful, and worth learning. If you focus on the primitives—content addressing, verifiable computation, and programmable money—you can ignore the token casino without throwing away the baby with the bathwater.
Why “Blockchain” Is Often Just a UI Feature⌗
Let’s start with the uncomfortable truth: a lot of Web3 is only “decentralized” in the same way a spreadsheet is “database-backed.” In practice, many systems behave like centralized services with extra steps:
- Users trust a front-end server to validate data.
- The “smart contract” is a billing wrapper around an off-chain database.
- The token doesn’t improve anything technically—it just finances the growth stage.
- Governance is a forum, not a decision mechanism.
A simple litmus test: if your application can be implemented with normal HTTPS, a relational database, and a queue, then adding a blockchain doesn’t magically make it better. It usually makes it slower, harder to update, and more expensive to operate.
Example: consider a SaaS dashboard that shows user analytics. If the analytics are produced off-chain and merely recorded on-chain for “auditability,” you’ve added cost without improving correctness. If you can’t explain why you need an append-only, globally replicated ledger, you probably don’t need one.
My rule of thumb is brutally practical: use a blockchain when you need a shared, tamper-evident history among parties that don’t fully trust each other. Everything else is usually a marketing problem.
The Interesting Part: Content-Addressed Storage⌗
One of the most useful primitives coming out of the broader ecosystem is content-addressing: the idea that data is identified by a cryptographic hash of its contents, not by a mutable filename. This is conceptually simple, technically powerful, and—crucially—doesn’t require a token.
When you content-address data, you get properties that centralized systems struggle to guarantee:
- Integrity: if the content changes, the address changes.
- Immutability by reference: you can’t silently swap the underlying bytes while keeping the same address.
- Deduplication: identical content naturally maps to the same identifier.
Think about what this enables in real systems:
- Verifiable document publishing: publish a document and reference its hash. Anyone can later verify they’re seeing the exact version you claimed.
- Reproducible artifacts: build outputs (like model weights or compiled binaries) can be pinned by hash so deployments are auditable.
- Portable caching: distributed nodes can fetch content by address without negotiating “which version do you mean?”
If you’ve used Git, you already understand the mental model. Git commit hashes are content-addressed fingerprints of trees and files. Web3 storage systems essentially extend that idea to the wider world, with networks designed to serve data by hash.
Practical advice: if you’re building something that involves long-lived artifacts—images, proofs, bundles, datasets—consider hash-first design. Store content where you want, but treat the hash as the source of truth. The blockchain, if used at all, can reference these hashes—not the other way around.
Verifiable Computation: When “Trust Me” Isn’t Good Enough⌗
Another genuinely interesting primitive is verifiable computation: the ability for one party to produce a computational result and a proof that the result is correct, without requiring the verifier to redo the entire computation.
This category includes a range of techniques—proof systems, zero-knowledge proofs, succinct verification—that aim to make verification fast while keeping the proof itself compact.
Why do people care? Because “trust me” is a weakness you can’t afford in adversarial environments.
Concrete example: Suppose you run a large off-chain computation—say, processing trades, generating game state, or computing eligibility for a reward. A centralized operator could publish the result. But if users don’t trust the operator (or you don’t fully control what users trust), they need assurance that the result is computed correctly from the inputs.
With verifiable computation, the workflow looks like this:
- Inputs are committed (often via hashes).
- The prover performs computation off-chain.
- A proof is generated that the computation followed the rules.
- Verifiers check the proof quickly, without re-running the whole process.
Is this trivial? No. It’s engineering-heavy, and the tooling ecosystem is still maturing. But the direction is right: rather than replicating everything on-chain, you prove correctness of what happened somewhere else.
Practical advice for builders: start by asking where verification matters. If your computation directly affects money, permissions, or scarce resources, that’s where proofs can replace brittle trust assumptions. If you can tolerate trusting one party, you probably don’t need proofs yet—build the app first, then harden only the parts that truly require verification.
And yes, this is one area where blockchain can be a useful substrate: smart contracts can act as verifiers, recording proofs and mediating dispute resolution. But the proof system is the primitive, not the chain.
Programmable Money: What Smart Contracts Actually Do⌗
“Programmable money” is often used as a synonym for “token.” That’s marketing. Smart contracts are better understood as deterministic state machines: given inputs, they transition state according to code rules, with transparent execution and a verifiable history.
When programmable money is valuable, it’s usually because you need these properties:
- Atomicity: multiple actions either happen together or not at all.
- Enforceable rules: parties can rely on code-based constraints rather than bilateral agreements.
- Shared settlement: the state lives where multiple parties can consult it.
Classic examples include escrow, royalties, and automated market mechanisms. But the more interesting lesson is this: the contract isn’t magic; it’s a coordination mechanism for parties that don’t want to negotiate everything from scratch.
Here’s the concrete gotcha: smart contracts are only as good as their interfaces. If your contract depends on off-chain data supplied by a trusted party, you’ve introduced a central point of failure. “On-chain” doesn’t automatically mean “trustless.” It means “verifiable where the contract can verify.”
Practical advice:
- Prefer designs that are self-contained or that can validate inputs on-chain.
- Be suspicious of projects that say “we use decentralization” while quietly relying on centralized operators for the critical data path.
- If you must use off-chain data, think hard about incentives, replay protection, and how disputes are resolved.
The Token Casino Problem (and How to Avoid It)⌗
Now for the part almost everyone gets wrong: tokens. Tokens are not inherently evil, but they are frequently used as a substitute for product-market fit.
In a healthy system, a token is typically aligned with a real technical purpose—governance, access control, staking for security, fee markets, or incentives that are actually necessary for the mechanism to work.
In the grifter ecosystem, tokens are a fundraising layer. They fund marketing. They motivate influencers. They provide a distraction from the fact that the app either doesn’t require decentralization or fails at the decentralization part.
How to detect token-first nonsense quickly:
- The token can be removed without changing the user experience. If yes, it’s probably not integral.
- The “decentralization” is cosmetic. If everything important is controlled by one company, the blockchain is a logging system.
- Upgrades are centralized. If governance is hand-wavy and emergencies are single-signer, users are trusting people, not code.
- The roadmap is vibes. If there’s no clear technical path to the stated capabilities, you’re watching hype.
Practical advice for teams and investors: separate your analysis into two tracks.
- What cryptographic or architectural primitive does this system use?
- What is the user value without the token?
If you can’t answer (1) clearly and (2 sounds like a normal product, the token is likely just a financing mechanism.
Learning the Right Stuff Without Getting Burned⌗
If you want to build with integrity in this space, you don’t need to memorize every new chain or token standard. You need to learn the underlying concepts that survive every hype cycle.
A smart developer path looks like this:
- Cryptographic fundamentals: hashing, signatures, commitments, and threat models.
- Content addressing: how hashes act as references; how immutability-by-reference changes system design.
- Proof systems at a high level: what it means to prove computation, what verification costs look like, and where proofs can replace trust.
- Smart contract basics as state machines: determinism, gas costs, failure modes, and secure interfaces.
Then keep one cultural discipline: ship small, verifiable slices. If your system can’t be inspected, tested, or audited meaningfully, it’s not mature enough to justify the complexity it adds.
And treat the token ecosystem as optional background noise. You can learn from the primitives without joining the casino.
Conclusion: Ignore the Noise, Build the Primitives⌗
Web3 is mostly nonsense—but not because the technology is fake. It’s mostly nonsense because most builders are using a ledger as a replacement for engineering judgment and because tokens have become a reflexive layer.
The good news is that the interesting ideas are real and practical: content-addressed storage for integrity and long-lived references, verifiable computation for correctness without re-running everything, and programmable state machines for enforceable coordination. Focus on those primitives, demand clear trust properties, and you’ll be positioned to build systems that deserve decentralization—rather than ones that just announce it.