Stop fraudsters
your peers
already caught.
Members hash identifiers locally and check them against a synced 4-byte prefix DB. Raw emails and phones never leave your servers — trustdb only sees a 4-byte prefix on probable hits.
Modeled on
Safe Browsing.
A two-step lookup. Common case offline. Rare hits reveal almost nothing.
- 01 client-side
Hash locally
Your server computes PBKDF2-SHA256 with the network salt. Raw identifiers never leave your infrastructure.
h = pbkdf2(email, salt) - 02 offline
Check the local prefix DB
Keep a local set of every reported hash truncated to 4 bytes. The common no-match path makes no network call.
prefix = h[:4] if prefix in local_db: - 03 1 request
Confirm with trustdb
On a prefix hit, fetch all full hashes sharing that prefix and compare client-side. trustdb only sees the 4-byte value.
full = trustdb.lookup(prefix) if h in full: - 04 your call
Act on a confirmed match
On a confirmed match, you get the metadata other members reported — severity, category, timestamp — to enforce on.
report = full[h] block(user, report)
-
Hashes only.
PBKDF2-SHA256, public salt. No raw PII stored or transmitted.
-
Prefix collisions are the point.
A 4-byte prefix collides across many identifiers — trustdb can't tell which one you checked.
-
You own your reports.
Each member contributes and revokes at will. No central editorial layer.
Hash
in your
browser.
The widget on the right runs PBKDF2-SHA256 entirely client-side via the Web Crypto API. Nothing is sent anywhere — open the network tab and check.
- algorithm
- PBKDF2-SHA256
- salt
- trustdb-network-v1
- iterations
- 100,000
- output
- 256-bit hex
⊥ Runs on Web Crypto. trustdb never sees your input. In the real protocol, only the highlighted prefix is transmitted — and only when it matches your local database.
Request
access.
trustdb is invite-only. Tell us a little about your team and the surface you're protecting. We reply by email — usually within a few working days.