Semaphore
A privacy gadget for creating anonymous proof of membership on Ethereum.
| Semaphore is a zero-knowledge gadget which allows Ethereum users to prove their membership of a set without revealing their original identity. At the same time, it allows users to signal their endorsement of an arbitrary string. It is designed to be a simple and generic privacy layer for Ethereum DApps. Use cases include private voting, whistleblowing, mixers, and anonymous authentication. |
|---|
The core of the Semaphore protocol is in the circuit logic. However Semaphore also provides Solidity contracts and JavaScript libraries (i.e. @zk-kit/identity and @zk-kit/protocols) to make the steps for offchain proof creation and onchain verification easier. To learn more about Semaphore visit https://semaphore.appliedzkp.org.
⚠️ Semaphore V2 has not yet been audited. Please do not use it in production. You can find Semaphore V1 on version/1.0.0.
Deployed contracts
Verifiers
Each Verifier.sol contract can be used with a binary tree of a certain depth. If depth = 20 the tree can have maximum 2^20 leaves (a group of 1048576 members).
| Depth | Kovan | Goerli | Arbitrum One |
|---|---|---|---|
| 20 | 0xed75...0E18 | 0xEFD8...aCe5 |
Semaphore
Semaphore also provides a Semaphore.sol contract where you can create groups and verify zero-knowledge proof.
| Kovan | Goerli | Arbitrum One |
|---|---|---|
| 0x1972...8793 | 0x4400...dE0b |