/semaphore

*No admin(for nft group)* A privacy gadget for creating anonymous proof of membership on Ethereum.

Primary LanguageSolidityMIT LicenseMIT

Semaphore

A privacy gadget for creating anonymous proof of membership on Ethereum.

Github license GitHub Workflow test Coveralls Linter eslint Code style prettier

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