The term started in cryptography papers, then went marketing-mainstream. Here is the strict definition and how to test for it.
Updated May 18, 2026
"Zero-knowledge" is one of the more abused phrases in privacy marketing. The term comes from formal cryptography (Goldwasser, Micali, Rackoff, 1985) where it has a strict mathematical definition. In file-sharing land it's been stretched to mean almost anything.
Let's separate the real thing from the marketing.
In cryptography, a zero-knowledge proof lets one party prove something to another without revealing how they know it. In product terms, the practical use is simpler: a zero-knowledge service is one where the service operator has zero ability to read user content. Not "we promise not to look." Not "we encrypt at rest." Zero — as in mathematically impossible without the user's key.
The architecture has three parts:
#k=. Browsers don't transmit fragments. The recipient's browser parses the fragment locally and uses it to decrypt.The result: our database stores opaque ciphertext. Our logs contain hashes, not plaintext. Our admin panel can't decrypt anything. That's E2EE, expressed differently.
Open the upload page in Chrome DevTools. Watch the Network tab when you upload. Real zero-knowledge services upload random-looking bytes. You should see no plaintext filename, MIME type, or content in the request bodies.
Look at the share URL after upload. Real zero-knowledge services put the decryption key in the URL fragment (after #). Without that fragment, the file is unrecoverable — by anyone, including the service.
Ask: "if I lose this URL, can the service recover my file?" If the answer is yes, they have your key — not zero-knowledge. If the answer is "no, that's gone forever," you're on the real thing.
Plenty of "zero-knowledge" services still know plenty about you. Honest disclosure:
Zero-knowledge applies to file content. It doesn't mean we know absolutely nothing about your usage patterns. Be wary of services that claim total opacity — they're either lying or have built something that doesn't work as a usable product.
It's a strong-sounding term that's hard for users to verify. Adding it to a landing page costs nothing. Some specific abuses to watch for:
Real zero-knowledge has real costs:
| Service | Claims ZK? | Actually ZK on file content? |
|---|---|---|
| Zippd | Yes | Yes (AES-256 key in fragment) |
| Mega | Yes | Yes (AES-128 key in fragment) |
| Proton Drive | Yes | Yes (uses Proton's open-source crypto) |
| WeTransfer | No | No |
| Dropbox Transfer | No | No |
| Firefox Send (RIP) | Yes | Yes |
Often used interchangeably, with a subtle distinction: E2EE describes the transit model (encrypted between endpoints). Zero-knowledge describes the service's position (cannot read user content). A correctly-built E2EE service is also zero-knowledge.
The crypto runs in browser JavaScript you can audit. Open DevTools, look at our crypto.js, follow the data flow. Independent audit isn't on the public roadmap yet but the design is verifiable individually.
Recipient-side reports. The share URL is public; abuse reporters submit the URL and we delete the ciphertext. We can act on the public ID without ever needing to see contents. Anti-abuse architecture explained.
Ciphertext size, public ID, upload timestamp, expiry, owner ID (if registered), HMAC of IP. Nothing about the file itself.
Upload a file and watch DevTools while it goes. You'll see only ciphertext leave your machine.
Most "anonymous" services log enough to identify you. Here is what real anonymous file sha...
When encryption happens in your browser instead of on the server, the security model funda...
A plain-English explanation of AES-256-GCM, why it beats older modes, and how to know your...
Same zero-knowledge encryption Mega is known for. No bulky desktop client. No account requ...