A zero-knowledge protocol for anonymous interactions.
Semaphore is a zero-knowledge protocol that allows you to cast a message (for example, a vote or endorsement) as a provable group member without revealing your identity. Additionally, it provides a simple mechanism to prevent double-signaling. Use cases include private voting, whistleblowing, anonymous DAOs and mixers.
Semaphore is designed to be a simple and generic privacy layer for decentralized applications (dApps) on Ethereum. It encourages modular application design, allowing dApp developers to choose and customize the on-chain and off-chain components they need.
The core of the protocol is the circuit logic. In addition to circuits, Semaphore provides Solidity contracts and JavaScript libraries that allow developers to generate zero-knowledge proofs and verify them with minimal effort.
With Semaphore, you can allow your users to do the following:
When a user broadcasts a message, Semaphore zero-knowledge proofs can ensure that the user has joined the group and hasn't already cast a message with their nullifier. Semaphore uses on-chain Solidity contracts and off-chain JavaScript libraries that work in tandem.
An open-source system for managing privacy-preserving groups of anonymous individuals.
Users of Jubmoji.quest tap NFC cards to collect signatures. By collecting these signatures, they complete quests.