You cannot be compelled to hand over what does not exist
Policies and promises matter less than system boundaries. If the product never stores personal identity, breaches, subpoenas, and internal misuse all have less to work with.
Anonymity by design
Most products say they respect privacy while still collecting email addresses, phone numbers, recovery paths, and behavioral logs. That is still possession. A stronger model is to avoid knowing who the user is in the first place and operate on a random account number instead.
Built around the idea that a service should operate on anonymous continuity rather than personal identity, with random account number as the implementation pattern.
Privacy theater
Random account number architecture
Policies and promises matter less than system boundaries. If the product never stores personal identity, breaches, subpoenas, and internal misuse all have less to work with.
Traditional security assumes you will collect sensitive data and defend it forever. An anonymity-first design removes much of that attack surface by not collecting identity data at all.
The moment an account depends on email recovery, the system has a durable way to tie service activity back to a person. That may be acceptable for regulated products, but it is not anonymity.
If the user loses the only credential that proves continuity, recovery may be impossible by design. That is not a bug in the model. It is the cost of a system that does not know who the user is.
Implementation example
The role of a random account number is to give the backend a stable handle for account state without collecting the user’s private identity.
Reference: rehacktive/unknown_id
A passkey, random credential, wallet, or device-bound secret shows that the same account holder returned, without asking who that person is.
The identifier is stable inside the product, meaningless outside it, and unsuitable as a real-world identity handle.
Purchases, quotas, feature access, and preferences are linked to the random account number. The service can operate normally without names, inboxes, or phone numbers.
Support does not fall back to “prove it’s you with your email” because that would reintroduce identity. The system is safer precisely because staff cannot override anonymity so easily.
An identity-free account model from signup through authentication and request verification.
flowchart TD
A["Client: signup or first use
nickname or device proof
no email or phone"] -->|POST /users| B["Backend: create anonymous account"]
B --> C["Store account state
internal_id
public_id
empty profile shell"]
C --> D["Bind credential
passkey, wallet proof,
or device secret"]
D --> E["Persisted account record
anonymous account number
credential verifier or pubkey
prefs, quotas, purchases"]
E -. "Not stored" .-> F["email
phone
legal name
identity recovery inbox"]
G["Returning user
login with credential"] -->|POST /auth| H["Backend verifies challenge or proof"]
H --> I["Map proof to anonymous account"]
I --> J["Issue signed token
expiry + scoped claims"]
K["Protected request
Authorization: Bearer token"] -->|POST /verify| L["Verify signature and expiry"]
J --> K
L --> M["Read public_id and entitlements"]
M --> N["Allow or deny request
without real-world identity lookup"]
Data protection
If personal data never enters the core account model, retention, access requests, breach disclosure, and internal access control all become simpler. There is less sensitive context to govern.
Security
Attackers can still target infrastructure, but a table full of opaque IDs and service state is materially less valuable than a dataset full of contact details and identity signals.
Privacy
If there is no email reset path, no phone checkpoint, and no support-led identity matching, the service has fewer ways to correlate activity back to a real person.
UX
Onboarding can skip forms and identity rituals, but users must treat credentials seriously. A product can be simpler to enter and less forgiving to lose.
Many products collect identity because legacy account design assumes they should, not because the service actually needs it.
Yes. Billing can be handled by a payment processor while your application stores only the resulting entitlement state against the random account number. The core product does not need to keep private billing identity to function.
Recovery is weaker by design. If you want staff to restore access through identity checks, then the system has to know more about the user. If you want stronger anonymity, recovery must be limited and explicit.
No. Infrastructure still emits network signals, abuse still exists, and systems still require security controls. The point is narrower: the company should not hold unnecessary identity data just because it is convenient.