Freebird
Authorization without identity. Privacy without compromise.
Every digital interaction today demands you prove who you are before proving what you can do. We've accepted total surveillance as the price of functional systems. This is a false choice.
The Problem
The internet has a surveillance problem baked into its infrastructure. Not because of malicious actors, but because useful systems require identity by default.
- Rate limiting requires tracking users
- Access control requires accounts
- Spam prevention requires surveillance
- Resource allocation requires registration
- "One person, one vote" requires identity databases
Even privacy-respecting services must collect your data to function. The architecture demands it.
Freebird's Answer
Freebird uses VOPRF cryptography (Verifiable Oblivious Pseudorandom Function) to separate "can you?" from "who are you?" for the first time in a practical, deployable way.
Think of it as anonymous digital cash for authorization. Users receive unforgeable, unlinkable tokens that prove permission while revealing nothing about identity.
- Prove you're authorized without revealing who you are
- Rate limiting without tracking
- Access control without accounts
- Spam prevention without surveillance
- One person, one voteβanonymously
Cryptographic Guarantees
Not privacy theater. Not "we promise not to look." Mathematical impossibility of surveillance.
β Traditional "Privacy"
"We won't share your data"
"Trust our policy"
"We anonymize logs"
Until subpoena, hack, acquisition, policy change...
β Freebird
No data to share
No policy to trust
No logs to anonymize
Can't surveil what doesn't exist
| Property | Guarantee | Mechanism |
|---|---|---|
| Unlinkability | Issuer can't link issuance to usage | Random blinding factors |
| Anonymity | Verifier can't identify token holder | No identity in tokens |
| Unforgeability | Can't create tokens without issuer key | P-256 ECDLP hardness |
| Replay Protection | Each token works exactly once | Nullifier-based detection |
| Verifiability | Clients verify correct computation | DLEQ zero-knowledge proofs |
Real-World Applications
Freebird isn't theoretical. It solves concrete problems for municipalities, healthcare systems, educators, and communities.
Sybil Resistance
"Anonymous" doesn't mean "unlimited." Freebird includes multiple mechanisms to prevent abuse without surveillance:
Invitation System (Trust Graphs)
Users invite others. Abuse traces back through the invitation chain. Bad actors get cut offβalong with everyone they invited. Social accountability without identity.
Proof of Work
Computational cost per token. Prevents bot farms without collecting data.
WebAuthn / Hardware Keys
"Proof of humanity" via hardware authenticators. No biometrics stored, no accounts created.
Rate Limiting
IP-based throttling for basic protection. Stackable with other mechanisms.
Technical Architecture
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β Freebird System β β β β ββββββββββββββββ ββββββββββββββββ ββββββββββββββ β β β Issuer β β Verifier β β Redis β β β β (Rust) β β (Rust) β β (State) β β β β β β β β β β β β - VOPRF eval β β - Token auth β β - Nulls β β β β - Sybil β β - Multi- β β - Invites β β β β checks β β issuer β β - WebAuthn β β β β - Key mgmt β β federation β β β β β ββββββββββββββββ ββββββββββββββββ ββββββββββββββ β β β β β β β ββββββββββββββββββββββββββ΄ββββββββββββββββββββββββ β β β β β ββββββββββΌβββββββββ β β β TypeScript β β β β SDK β β β β β β β β Browser/Node.js β β β βββββββββββββββββββ β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Component | Language | Purpose |
|---|---|---|
| Core Crypto | Rust | VOPRF, DLEQ proofs, P-256 operations |
| Issuer Service | Rust | Token issuance, key rotation, Sybil checks |
| Verifier Service | Rust | Token validation, multi-issuer federation |
| Client SDK | TypeScript | Browser/Node.js integration |
| Admin CLI | Rust | Key management, invitation admin |
Implementation Status
| Feature | Status |
|---|---|
| P-256 VOPRF with DLEQ proofs | β Complete |
| Batch issuance (rayon parallelization) | β Complete |
| Zero-downtime key rotation | β Complete |
| Multi-issuer federation | β Complete |
| Invitation system with ban trees | β Complete |
| WebAuthn/FIDO2 integration | β Complete |
| TypeScript SDK | β Complete |
| Admin dashboard UI | β Complete |
| Prometheus metrics | β Complete |
| HSM/PKCS#11 support | β Complete |
| Documentation | In Progress |
| Reference integrations | In Progress |
| Browser playground | Planned |
Why Open Infrastructure Matters
Privacy technology that requires trusting a company is privacy theater. Freebird is infrastructure, not a service.
- Self-hostable: Run your own issuer. No dependencies on us.
- Federated: Multiple issuers can exist. Verifiers choose whom to trust.
- Auditable: Every line of code is public. Every cryptographic claim is verifiable.
- Forkable: Don't like our decisions? Fork it. The protocol is the product.
This aligns with Mozilla's vision of an internet that's open, accessible, and respects users. It aligns with NLnet's mission of trustworthy, open infrastructure. Privacy shouldn't be a product you buyβit should be infrastructure everyone can build on.
Funding Goals
Freebird's core technology works. Funding accelerates adoption and hardening.
Documentation & Tutorials
Lower the barrier for municipalities and community organizations. Step-by-step deployment guides. Integration cookbooks for common scenarios.
Reference Implementations
Working examples beyond the current demo: anonymous feedback system, token-gated forum, municipal service portal. Proof that this works in production.
Browser Playground
Try Freebird without installing anything. Interactive demo that shows the cryptography working in real-time.
Security Audit
Third-party cryptographic audit. We believe the implementation is correctβlet's prove it.
Community Building
Outreach to municipalities, libraries, healthcare organizations who could benefit. Help them understand that privacy-preserving systems are possible.
Try It
git clone https://github.com/flammafex/freebird cd freebird docker compose up
That's it. Issuer on localhost:8081, verifier on localhost:8082.
# Get a token
curl -X POST http://localhost:8081/v1/oprf/issue \
-H "Content-Type: application/json" \
-d '{"blinded_element": "..."}'
# Verify it
curl -X POST http://localhost:8082/v1/verify \
-H "Content-Type: application/json" \
-d '{"token": "..."}'
Full documentation at github.com/flammafex/freebird/docs.
Standards & Prior Art
Freebird implements established cryptographic standards:
- IETF CFRG VOPRF Draft β The core protocol
- Privacy Pass Protocol β Related work from Cloudflare/Apple
- RFC 9380 β Hash-to-curve specification
- FIPS 186-5 β P-256 curve specification
We're not inventing cryptography. We're making existing, peer-reviewed cryptography deployable.
Team
Built by The Carpocratian Church of Commonality and Equalityβa 501(c)(3) religious nonprofit building infrastructure for digital dignity.
Other projects: Clout (trust-graph social network), HyperToken (distributed simulation engine).