Skip to content
The Carpocratian Church presents


The Carpocratian Church of
Commonality & Equality


Presents

πŸ•ŠοΈ Freebird

Authorization tokens designed to separate issuance from redemption.

Freebird uses unforgeable, one-time authorization tokens to prove permission without placing an application identity in the token. It separates issuance from redemption at the token layer. Network, timing, application, admission, and audit data remain visible to the surrounding deployment.

The Problem

Online authorization commonly connects access to accounts and operational records. Freebird addresses one specific part of that system: separating token issuance from later redemption.

A deployment may still collect network, timing, application, admission, and audit data. Those surrounding records remain outside the token protocol.

Traditional System:

User ──────────────────────────▢ Server
      "I am alice@example.com"
      "Give me access"
                                    β”‚
Server logs:                        β–Ό
βœ— Who you are                    Access
βœ— When you accessed              Granted
βœ— What you accessed              (maybe)
βœ— Your usage patterns
βœ— Your IP address
βœ— Everything, forever

Freebird's Answer

Freebird currently exposes two experimental token modes. V4 uses a Freebird-specific P-256 VOPRF-like construction with DLEQ-style proofs and is not interoperable with RFC 9497 implementations. V5 uses Blind RSA signatures described by RFC 9474 for public bearer passes. Each mode has its own wire format and operating assumptions.

Freebird is a prototype privacy layer for authorization. A finalized token can prove issuer authorization without containing an application identity. The surrounding deployment can still observe and correlate metadata.

Freebird:

        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β”‚                                                         β”‚
        β”‚   User              Issuer              Verifier        β”‚
        β”‚     β”‚                 β”‚                    β”‚            β”‚
        β”‚     │──[blind data]──▢│                    β”‚            β”‚
        β”‚     β”‚                 β”‚ signs without      β”‚            β”‚
        β”‚     β”‚                 β”‚ seeing content     β”‚            β”‚
        β”‚     │◀─[signed blob]──│                    β”‚            β”‚
        β”‚     β”‚                 β”‚                    β”‚            β”‚
        β”‚     β”‚ unblinds to     β”‚                    β”‚            β”‚
        β”‚     β”‚ get token       β”‚                    β”‚            β”‚
        β”‚     β”‚                 β”‚                    β”‚            β”‚
        β”‚     │───────[identity-free token] ────────▢│            β”‚
        β”‚     β”‚                                      β”‚            β”‚
        β”‚     β”‚                              βœ“ Valid signature    β”‚
        β”‚     β”‚                              βœ“ No app identity    β”‚
        β”‚     β”‚                                                   β”‚
        β”‚                                                         β”‚
        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Freebird reduces linkability at the token layer; network, device, and application metadata remain deployment responsibilities.

Token Properties & Operating Limits

These properties describe the protocol boundary and its deployment-dependent limits. Freebird is pre-1.0 and has not received an external security audit.

❌ Traditional "Privacy"

Data handling depends on policy

Logs remain under operator control

Changes require continued trust

Records may be exposed or correlated

βœ“ Freebird

Less identity in the token path

Cryptographic separation to review

Operational records still require policy

Token privacy within a defined boundary

Property Guarantee Mechanism
Unlinkability Designed to resist direct issuance-to-redemption linkage at the token layer Blinding; deployment and metadata limits apply
Anonymity Token contains no application identity by design Token format; surrounding systems may identify or correlate users
Unforgeability Can't create tokens without issuer key P-256 ECDLP hardness (V4) / RSA-FDH (V5)
Replay Protection Replay can be rejected when nullifier storage is configured correctly Nullifier store; in-memory state is not restart-safe
Verifiability Clients verify correct computation DLEQ zero-knowledge proofs

Private Access and Issuance Patterns

Freebird is built for evaluation and low-stakes deployments. These patterns show how its issuer, verifier, tokens, and admission controls can fit into real products.

πŸ“ Privacy-Preserving Feedback Collect feedback or survey responses with verifiable tokens and configurable replay protection.
🀝 Token-Gated Communities Let a verifier admit token holders while issuance is gated by invitations, passkeys, proof of work, or rate limits.
πŸ“š Library & Community Passes Issue limited or time-bound passes for library collections, community spaces, and shared resources.
πŸ“Ά Public Wi-Fi Portals Use verifiable, rate-limited access tokens to support captive-portal and public network flows.
🎟️ Limited-Distribution Access Distribute a controlled quantity of aid or access tokens for bounded programs and resource releases.
πŸ” Passkey-Gated Issuance Require WebAuthn or hardware-backed credentials before issuing tokens for protected resources.
🌐 Social-Trust Onboarding Use short-lived attestations from a Social Graph Attester to guide trusted community onboarding.
πŸ§ͺ Developer Evaluation Testbed Explore blind issuance, token verification, replay handling, and privacy-focused access flows with the SDK.

Configurable Admission Controls

Freebird includes configurable admission mechanisms that can raise abuse costs or limit issuance. They are local controls. They do not prove a unique human or remove operational metadata.

Invitation System (Trust Graphs)

Users invite others. Operators can trace invitation relationships in admission records and cut off branches. This provides local social trust; it does not provide identity-free accountability or a global anti-abuse guarantee.

Proof of Work

Each token carries a computational cost. This can raise the cost of bot activity without collecting user identity data.

WebAuthn / Hardware Keys

WebAuthn or hardware authenticators can gate issuance. They do not prove humanity; credential and deployment records remain part of the operator's state.

Rate Limiting

IP-based throttling provides basic protection and necessarily uses network identity. It can be stacked with other mechanisms.

Social Graph Attestation

A separate Social Graph Attester service evaluates signed trust edges (compatible with Clout social graphs) and issues short-lived attestations proving a user stands within a trusted social graph, without revealing which node they are. The issuer verifies the attester's Ed25519 signature, policy, expiry, and eligibility level; the underlying graph stays with the attester.

Progressive Trust

Trust can accumulate through configured account age and usage history. New accounts may receive limited quotas. The mechanism uses local records and does not provide global anonymity.

Proof of Diversity

Experimental mechanism that scores requests on behavioral diversity signals to detect coordinated bot campaigns without fingerprinting individuals.

Multi-Party Vouching

N-of-M endorsement: a token is issued only when a quorum of existing trusted members vouch for the requester. No single party can approve or block.

Composable Combiners

Stack mechanisms with OR (any must pass), AND (all must pass), or Threshold (at least N of M). OR inherits the strength of its easiest mechanism, while AND is strictest. Proof replay protection and restart safety depend on the configured store.

Technical Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                         Freebird System                             β”‚
β”‚                                                                     β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚   β”‚    Issuer    β”‚  β”‚   Verifier   β”‚  β”‚   Redis    β”‚  β”‚ Attesterβ”‚   β”‚
β”‚   β”‚   (Rust)     β”‚  β”‚   (Rust)     β”‚  β”‚  (State)   β”‚  β”‚ (Rust)  β”‚   β”‚
β”‚   β”‚              β”‚  β”‚              β”‚  β”‚            β”‚  β”‚ optionalβ”‚   β”‚
β”‚   β”‚ - VOPRF eval β”‚  β”‚ - Token auth β”‚  β”‚ - Nulls    β”‚  β”‚ - Trust β”‚   β”‚
β”‚   β”‚ - Blind RSA  β”‚  β”‚ - Multi-     β”‚  β”‚ - Invites  β”‚  β”‚   graph β”‚   β”‚
β”‚   β”‚ - Sybil gatesβ”‚  β”‚   issuer     β”‚  β”‚ - WebAuthn β”‚  β”‚ -Scoringβ”‚   β”‚
β”‚   β”‚ - Key mgmt   β”‚  β”‚   federation β”‚  β”‚            β”‚  β”‚ - JWKS  β”‚   β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚          β”‚                  β”‚                 β”‚               β”‚     β”‚
β”‚          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜               β”‚     β”‚
β”‚                             β”‚                                 β”‚     β”‚
β”‚                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”                        β”‚     β”‚
β”‚                    β”‚   TypeScript    β”‚β—€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚
β”‚                    β”‚      SDK        β”‚                              β”‚
β”‚                    β”‚                 β”‚                              β”‚
β”‚                    β”‚ Browser/Node.js β”‚                              β”‚
β”‚                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
Component Language Purpose
Core Crypto Rust VOPRF, blind RSA, DLEQ proofs, P-256 operations
Issuer Service Rust Token issuance (VOPRF + blind RSA), key rotation, Sybil gates
Verifier Service Rust Token validation, multi-issuer federation
Social Graph Attester Rust Trust-graph scoring, JWKS publication, social Sybil attestations
Client SDK TypeScript Browser/Node.js integration
Admin CLI Rust Key management, invitation admin

Current Experimental Implementation

These labels describe code present in the current experimental tree. They do not indicate an external audit, production readiness, or support for a planned profile.

Feature Status
P-256 VOPRF with DLEQ proofs βœ“ Implemented experimentally
Batch issuance (rayon parallelization) βœ“ Implemented experimentally
Zero-downtime key rotation βœ“ Implemented experimentally
Multi-issuer federation βœ“ Implemented experimentally
Invitation system with ban trees βœ“ Implemented experimentally
WebAuthn/FIDO2 integration βœ“ Implemented experimentally
TypeScript SDK βœ“ Implemented experimentally
Admin dashboard UI βœ“ Implemented experimentally
Prometheus metrics βœ“ Implemented experimentally
HSM/PKCS#11 issuer integration Not supported by issuer
Social Graph Attester service βœ“ Implemented experimentally
Blind RSA / V5 public bearer passes βœ“ Implemented experimentally
Audit logging βœ“ Implemented experimentally
Documentation In Progress
Reference integrations In Progress
Browser playground Planned

Why Open Infrastructure Matters

Freebird is infrastructure that organizations can inspect, operate, and adapt themselves.

Funding Goals

Funding supports evaluation, documentation, test coverage, reference prototypes, and independent review of this experimental project.

Documentation & Tutorials

Lower the barrier for municipalities and community organizations. Step-by-step deployment guides. Integration cookbooks for common scenarios.

Reference Implementations

Working low-stakes prototypes beyond the current demo: feedback systems and token-gated forums. They will show the token flow and its operational limits.

Browser Playground

Try Freebird without installing anything. Interactive demo that shows the cryptography working in real-time.

Security Audit

Commission an independent third-party review of the cryptographic implementation.

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
./launch.sh up

The launch.sh helper handles .env setup and ADMIN_API_KEY generation for you. 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 uses established cryptographic standards and related protocol designs: