Semaphore primary sources — 2026-05-09

Classification takeaway

Semaphore is best cataloged as anonymous group-membership and private-signaling infrastructure. The key mechanism is not merely “anonymous voting,” but a reusable pattern where identity commitments, Merkle-group membership, scope-bound nullifiers, and proof verification let downstream applications decide who counts as a member and what counts as a one-time anonymous action.

Primary sources reviewed

  1. Official docs overview — https://docs.semaphore.pse.dev/

    • Defines Semaphore as a zero-knowledge protocol that lets a user cast a message as a provable group member without revealing identity.
    • The docs explicitly frame the protocol as a generic privacy layer for dapps rather than a single end-user application.
  2. Public repo README — https://raw.githubusercontent.com/semaphore-protocol/semaphore/main/README.md

    • Describes Semaphore as a generic privacy layer and confirms the public package surface: contracts, identity/group/proof/data libraries, CLI, and supporting developer tooling.
    • Helpful for seeing that the project is an actively maintained package ecosystem rather than only a conceptual spec.
  3. Semaphore V4 specification — https://raw.githubusercontent.com/zkspecs/zkspecs/main/specs/3/README.md

    • This is the most analytically useful primary source because it spells out the protocol flow and control points.
    • The spec defines Semaphore identities, identity commitments, LeanIMT groups, nullifiers, scope, message fields, proof format, and verifier expectations.
    • Especially important: the nullifier is scope-bound, so downstream applications effectively decide what “one anonymous action” means by how they choose scope and root-validity rules.
  4. Trusted setup and audit references surfaced by the docs

Whitepaper / technical-doc status

  • No separate classic whitepaper or litepaper surfaced in this pass.
  • The official docs plus the V4 spec appear to be the canonical source trail.

Why it stays in the active corpus

  • Strong comparison class for identity, attestation, anonymous governance, and proof-of-membership systems because it isolates a reusable privacy primitive rather than bundling identity, credentials, and application logic into one stack.
  • Particularly useful for reasoning about where control centralizes in ostensibly anonymous systems: group admission, root history, scope design, proof verification policy, and any external credential system that feeds group membership.