Web2 vs Web3 vs ZK Applications

Before you write your first circuit, you need to answer one question clearly in your head:

> What actually changes when an app uses zero knowledge?

Not just "it's more private" — but architecturally, at the level of how data moves, who trusts who, and what gets stored where.

Let's build that picture from scratch.

Start Here: The Login Box

You've built this a hundred times.

A user types their username and password. Your server checks if it matches what's in the database. If yes — access granted.

Simple. Familiar. But look at what's actually happening under the hood.

You, the server, see the password. You hash it before storing it, sure. But during that login request, the raw credential travels to you. You are the trusted party. The user has no choice but to trust that you handle it responsibly.

That single assumption — trust the server — is the foundation of almost every Web2 app ever built. And it's also its biggest weakness.

Web2: Trust the Server

In a Web2 app, the architecture looks like this:

Web2 App Architecture

The server is the brain. It holds the state, runs the logic, and stores everything. Users interact with it through APIs.

What the server knows: - Who you are (your account, your IP, your device) - What you do (every action you take is logged) - What you own (your data lives on their infrastructure)

This isn't necessarily malicious — it's just how the model works. Centralized servers are fast, easy to build, and simple to update. But trust is the price of entry. Every time you sign up for an app, you're handing data to a company and hoping they don't misuse it, get hacked, or get acquired.

The core problem: The server sees everything. You just have to trust it won't.

Web3: Trust the Chain

Web3 apps shifted the trust model. Instead of trusting a company's server, you trust a public blockchain — a network of nodes running the same code, where no single party is in control.

Web3 App Architecture

The "server" is now a smart contract. The logic is public. The state is public. Anyone can verify what happened.

What changes: - No central party controls the data - Every transaction is transparent and auditable - Code, once deployed, runs exactly as written — no one can secretly change it

This is genuinely powerful. Decentralized finance, NFT ownership, on-chain governance — none of it requires you to trust a company. You trust math and consensus instead.

But there's a catch ~ Everything is public.

Your wallet address, your transaction history, how much you hold, what contracts you've interacted with — all of it is visible to anyone on Earth, forever. The blockchain solved the trust problem but created a privacy problem in its place.

> Web3 gave us verifiability. It took away privacy. ZK gives you both.

ZK Applications: Trust the Proof

Zero knowledge apps introduce a third model. One where you can prove something is true — without revealing the data behind it.

ZKß App Architecture

The key shift: the sensitive data never leaves the user's machine.

What gets sent to the chain (or to any verifier) is just a cryptographic proof — a small piece of data that says "I ran this computation correctly, and the result is valid." The verifier can confirm this without seeing the inputs.

Let's make this concrete.

The Same Scenario, Three Ways

Scenario: Prove you're over 18 without revealing your actual age or identity.

| | Web2 | Web3 | ZK | |---|---|---|---| | How it works | Upload your ID to a server | Submit birthdate on-chain via smart contract | Browser generates a proof locally | | What gets sent | Full name, birthdate, ID number | Birthdate + wallet address | A proof only — no personal data | | What they store | Your data on their servers | Public record on-chain forever | Nothing | | Outcome | ✓ Age verified | ✓ Age verified | ✓ Age verified |

Side by Side

| | Web2 | Web3 | ZK | |---|---|---|---| | Who runs the logic? | Central server | Smart contract | Prover (you) | | Who stores the data? | Company database | Public blockchain | Nobody | | Who do you trust? | The company | The consensus | The math | | Is it transparent? | No | Yes (too much) | Selectively | | Is it private? | Depends on company | No | Yes | | Can you verify it? | No | Yes | Yes |

What Actually Changes When You Build a ZK App

As a developer, this mental shift matters because it changes how you design everything.

In Web2, you write functions that process data and return results. In Web3, you write contracts that change state. In ZK, you write circuits — programs that define what computation must be proven, without executing that computation in the traditional sense.

The data flow is inverted. Instead of sending data to a server and getting a result back, the user runs the computation themselves and sends you proof that they ran it correctly.

This means: - The prover is the user's device — their browser, phone, or local machine - The verifier is lightweight — it just checks the proof, doesn't re-run anything - The circuit is your app's core logic — written once, proven many times

You're not building a server anymore. You're building a proof system.

Answer the quiz correctly to continue →

Video · Quiz1 / 3

In a ZK application, what does the verifier receive instead of the user's sensitive data?