Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.
Abstract
Semaphore is a zero-knowledge (zk) protocol that allows users to prove their membership in a group and send messages such as votes or feedback without revealing their identity.
It also provides a simple mechanism to prevent double-signaling, which means that the same proof cannot be verified twice.
Motivation
Privacy remains a significant challenge in the digital world, with existing solutions often being limited, hard to extend, and overly complex. These limitations make it difficult to create privacy-preserving applications and prevent users from securely interacting without exposing their identities. Semaphore addresses these issues by enabling the sharing of anonymous messages, solving the critical need for privacy while maintaining transparency.