Privacy-Preserving Sybil Resistance via MPC-TLS and Semaphore Proofs

We propose a solution that allows Internet users to privately prove control over real web accounts (like Uber or GitHub) using MPC-TLS without revealing any personal data. By converting these credentials into unlinkable zero-knowledge group proofs, we can unlock Sybil-resistant airdrops, governance, and access control without compromising user privacy.

Protocol Overview:

┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐│ User Browser │ │ TLS Notary │ │ Web Service ││ Extension │ │ │ │ (e.g. Uber) │└─────────────────┘ └─────────────────┘ └─────────────────┘│ │ ││←──── MPC Protocol ───→│ ││ │ ││←──────── MPC-TLS Session─────────────────────→││ (joint client) ││ │ ││──── Encrypted TLS ───→│ ││ transcript │ ││ │ ││←─── Attestation ─────┤ ││ (garbled circuit) │ ││ │ │▼┌─────────────────┐│ Semaphore ││ Group ││ Commitment │└─────────────────┘

The protocol works as follows (simplified for clarity):

Phase 1: Private Credential Verification

  1. User’s browser extension and TLS Notary cooperatively establish MPC-TLS session with web service
  2. Notary validates ciphertext integrity using garbled circuits, signs attestation over committed fields
  3. Notary sees only encrypted data—never plaintext account information
  4. User receives cryptographic proof of credential without exposing account details

Phase 2: Unlinkable Commitment Generation

commitment = Hash(master_key || credential_group_id || account_id_hash)
  1. User generates unlinkable identity commitment using private Master Key
  2. Commitment is published to corresponding Semaphore group (GitHub credentials → GitHub group, etc.)
  3. Each credential type maps to separate group, enabling granular proof targeting

Phase 3: Providing Zero-Knowledge Group Proofs

  1. For verification, user generates ZK proofs of Semaphore group membership
  2. Proofs confirm credential possession without revealing specific accounts
  3. Verifying parties can combine multiple group proofs for composable trust scores

Privacy Guarantees:

  • Unlinkable: Cannot connect different web accounts to same user
  • Group-anonymous: Individual verifications don’t reveal which specific member of a credential group is generating the proof
  • Untraceable: Cannot track users across different applications
  • Composable: Can prove membership in multiple groups simultaneously

Implementation

We’re building BringID to validate these cryptographic techniques in practice. The implementation leverages existing infrastructure (TLSN for MPC-TLS, Semaphore for ZK group proofs) to minimize novel cryptographic assumptions.

The current design assumes a trusted TLS Notary for attestation verification. We’re exploring various decentralization approaches to minimize this trust requirement in the future, including TEE-backed infrastructure and distributed validator networks.

Economic Security Model

Our approach doesn’t cryptographically prevent Sybils—it makes them economically infeasible. The security assumption is:

Reward value per verified account < Cost of producing a Sybil identity

Web accounts require real-world activity (Uber rides, GitHub commits, Airbnb stays), time investment (account aging, reputation building), and often monetary cost (service usage fees). Applications can combine multiple credential groups and apply time-bounded verification to further increase forgery costs.


Technical Specification: Draft whitepaper
Related Work: TLSN | Semaphore


Source
Disclaimer: The content above is only the author's opinion which does not represent any position of Followin, and is not intended as, and shall not be understood or construed as, investment advice from Followin.
Like
Add to Favorites
Comments